Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-04-17 17:07:13 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-04-17 17:07:13 +0400
commite4734d3d01a72a765aab3dad7da23b447f7018fe (patch)
tree472e24af669818a0b82ba5aff3bf8a2b11386d94 /source/blender/blenkernel/intern/editderivedmesh.c
parent3d2f1fd8f9ce19ef4444c1dc84a087704cb38685 (diff)
Fix part of #30982: dupliface object with modifiers did not show duplis correct
while in edit mode.
Diffstat (limited to 'source/blender/blenkernel/intern/editderivedmesh.c')
-rw-r--r--source/blender/blenkernel/intern/editderivedmesh.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c
index a504a6bd39d..3556b1ff5be 100644
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@ -1320,6 +1320,8 @@ static void emDM_getVert(DerivedMesh *dm, int index, MVert *vert_r)
ev = BM_vert_at_index(bmdm->tc->bm, index); /* warning, does list loop, _not_ ideal */
bmvert_to_mvert(bmdm->tc->bm, ev, vert_r);
+ if(bmdm->vertexCos)
+ copy_v3_v3(vert_r->co, bmdm->vertexCos[index]);
}
static void emDM_getEdge(DerivedMesh *dm, int index, MEdge *edge_r)
@@ -1378,13 +1380,18 @@ static void emDM_getTessFace(DerivedMesh *dm, int index, MFace *face_r)
static void emDM_copyVertArray(DerivedMesh *dm, MVert *vert_r)
{
- BMesh *bm = ((EditDerivedBMesh *)dm)->tc->bm;
+ EditDerivedBMesh *bmdm = (EditDerivedBMesh *)dm;
+ BMesh *bm = bmdm->tc->bm;
BMVert *ev;
BMIter iter;
+ int i;
ev = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
- for ( ; ev; ev = BM_iter_step(&iter), ++vert_r) {
- copy_v3_v3(vert_r->co, ev->co);
+ for (i = 0 ; ev; ev = BM_iter_step(&iter), ++vert_r, ++i) {
+ if (bmdm->vertexCos)
+ copy_v3_v3(vert_r->co, bmdm->vertexCos[i]);
+ else
+ copy_v3_v3(vert_r->co, ev->co);
normal_float_to_short_v3(vert_r->no, ev->no);