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:
authorCampbell Barton <ideasman42@gmail.com>2010-02-17 22:50:42 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-02-17 22:50:42 +0300
commitc72ab0a39e2b0894c3ae0d27afeb0779b947853a (patch)
treeadb3f903dadbc8fb87e49adce0798cfff0af5591 /source/blender/editors/mesh/editmesh_mods.c
parent1a6f683b437ff4aa79b7f122b590acd6fce2fc54 (diff)
topology based mirror, (from apricot branch)
- correct errors with non-mirrored meshes - mirror weight paint on asymmetrical meshes
Diffstat (limited to 'source/blender/editors/mesh/editmesh_mods.c')
-rw-r--r--source/blender/editors/mesh/editmesh_mods.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c
index b2ae7ddf7e0..c5ec1214be9 100644
--- a/source/blender/editors/mesh/editmesh_mods.c
+++ b/source/blender/editors/mesh/editmesh_mods.c
@@ -104,14 +104,15 @@ static int pupmenu() {return 0;}
void EM_cache_x_mirror_vert(struct Object *ob, struct EditMesh *em)
{
EditVert *eve, *eve_mirror;
+ int index= 0;
for(eve= em->verts.first; eve; eve= eve->next) {
eve->tmp.v= NULL;
}
- for(eve= em->verts.first; eve; eve= eve->next) {
+ for(eve= em->verts.first; eve; eve= eve->next, index++) {
if(eve->tmp.v==NULL) {
- eve_mirror = editmesh_get_x_mirror_vert(ob, em, eve->co);
+ eve_mirror = editmesh_get_x_mirror_vert(ob, em, eve, eve->co, index);
if(eve_mirror) {
eve->tmp.v= eve_mirror;
eve_mirror->tmp.v = eve;
@@ -4239,6 +4240,7 @@ static int smooth_vertex(bContext *C, wmOperator *op)
float fvec[3];
int teller=0;
ModifierData *md;
+ int index;
/* count */
eve= em->verts.first;
@@ -4313,13 +4315,14 @@ static int smooth_vertex(bContext *C, wmOperator *op)
eed= eed->next;
}
+ index= 0;
eve= em->verts.first;
while(eve) {
if(eve->f & SELECT) {
if(eve->f1) {
if (((Mesh *)obedit->data)->editflag & ME_EDIT_MIRROR_X) {
- eve_mir= editmesh_get_x_mirror_vert(obedit, em, eve->co);
+ eve_mir= editmesh_get_x_mirror_vert(obedit, em, eve, eve->co, index);
}
adr = eve->tmp.p;
@@ -4352,6 +4355,7 @@ static int smooth_vertex(bContext *C, wmOperator *op)
}
eve->tmp.p= NULL;
}
+ index++;
eve= eve->next;
}
MEM_freeN(adror);