diff options
Diffstat (limited to 'source/blender/blenkernel/intern/object_dupli.cc')
-rw-r--r-- | source/blender/blenkernel/intern/object_dupli.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/object_dupli.cc b/source/blender/blenkernel/intern/object_dupli.cc index 54a26a897d8..2979a3cf1ff 100644 --- a/source/blender/blenkernel/intern/object_dupli.cc +++ b/source/blender/blenkernel/intern/object_dupli.cc @@ -67,6 +67,7 @@ #include "RNA_types.h" using blender::Array; +using blender::float2; using blender::float3; using blender::float4x4; using blender::Span; @@ -1043,7 +1044,7 @@ struct FaceDupliData_Mesh { const MLoop *mloop; const MVert *mvert; const float (*orco)[3]; - const MLoopUV *mloopuv; + const float2 *mloopuv; }; struct FaceDupliData_EditMesh { @@ -1193,7 +1194,7 @@ static void make_child_duplis_faces_from_mesh(const DupliContext *ctx, const MLoop *mloop = fdd->mloop; const MVert *mvert = fdd->mvert; const float(*orco)[3] = fdd->orco; - const MLoopUV *mloopuv = fdd->mloopuv; + const float2 *mloopuv = fdd->mloopuv; const int totface = fdd->totface; const bool use_scale = fdd->params.use_scale; int a; @@ -1218,7 +1219,7 @@ static void make_child_duplis_faces_from_mesh(const DupliContext *ctx, } if (mloopuv) { for (int j = 0; j < mp->totloop; j++) { - madd_v2_v2fl(dob->uv, mloopuv[mp->loopstart + j].uv, w); + madd_v2_v2fl(dob->uv, mloopuv[mp->loopstart + j], w); } } } @@ -1278,7 +1279,7 @@ static void make_duplis_faces(const DupliContext *ctx) FaceDupliData_Params fdd_params = {ctx, (parent->transflag & OB_DUPLIFACES_SCALE) != 0}; if (em != nullptr) { - const int uv_idx = CustomData_get_render_layer(&em->bm->ldata, CD_MLOOPUV); + const int uv_idx = CustomData_get_render_layer(&em->bm->ldata, CD_PROP_FLOAT2); FaceDupliData_EditMesh fdd{}; fdd.params = fdd_params; fdd.em = em; @@ -1286,20 +1287,20 @@ static void make_duplis_faces(const DupliContext *ctx) fdd.has_orco = (vert_coords != nullptr); fdd.has_uvs = (uv_idx != -1); fdd.cd_loop_uv_offset = (uv_idx != -1) ? - CustomData_get_n_offset(&em->bm->ldata, CD_MLOOPUV, uv_idx) : + CustomData_get_n_offset(&em->bm->ldata, CD_PROP_FLOAT2, uv_idx) : -1; make_child_duplis(ctx, &fdd, make_child_duplis_faces_from_editmesh); } else { - const int uv_idx = CustomData_get_render_layer(&me_eval->ldata, CD_MLOOPUV); + const int uv_idx = CustomData_get_render_layer(&me_eval->ldata, CD_PROP_FLOAT2); FaceDupliData_Mesh fdd{}; fdd.params = fdd_params; fdd.totface = me_eval->totpoly; fdd.mpoly = me_eval->polys().data(); fdd.mloop = me_eval->loops().data(); fdd.mvert = me_eval->verts().data(); - fdd.mloopuv = (uv_idx != -1) ? (const MLoopUV *)CustomData_get_layer_n( - &me_eval->ldata, CD_MLOOPUV, uv_idx) : + fdd.mloopuv = (uv_idx != -1) ? (const float2 *)CustomData_get_layer_n( + &me_eval->ldata, CD_PROP_FLOAT2, uv_idx) : nullptr; fdd.orco = (const float(*)[3])CustomData_get_layer(&me_eval->vdata, CD_ORCO); |