diff options
Diffstat (limited to 'source/blender/src/transform_generics.c')
-rw-r--r-- | source/blender/src/transform_generics.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c index a22d8ccdbf9..d0ca1f4cd74 100644 --- a/source/blender/src/transform_generics.c +++ b/source/blender/src/transform_generics.c @@ -44,6 +44,7 @@ #include "DNA_modifier_types.h" #include "DNA_object_types.h" #include "DNA_object_force.h" +#include "DNA_particle_types.h" #include "DNA_screen_types.h" #include "DNA_space_types.h" #include "DNA_scene_types.h" @@ -59,6 +60,7 @@ #include "BIF_editmesh.h" #include "BIF_editnla.h" #include "BIF_editsima.h" +#include "BIF_editparticle.h" #include "BIF_meshtools.h" #include "BIF_retopo.h" @@ -188,6 +190,8 @@ static void clipMirrorModifier(TransInfo *t, Object *ob) break; if (td->loc==NULL) break; + if (td->flag & TD_SKIP) + continue; VecCopyf(loc, td->loc); VecCopyf(iloc, td->iloc); @@ -246,6 +250,8 @@ static void editmesh_apply_to_mirror(TransInfo *t) break; if (td->loc==NULL) break; + if (td->flag & TD_SKIP) + continue; eve= td->tdmir; if(eve) { @@ -468,6 +474,9 @@ void recalcData(TransInfo *t) else where_is_pose(ob); } + else if(G.f & G_PARTICLEEDIT) { + flushTransParticles(t); + } else { for(base= FIRSTBASE; base; base= base->next) { Object *ob= base->object; @@ -561,6 +570,7 @@ void initTrans (TransInfo *t) { /* moving: is shown in drawobject() (transform color) */ if(G.obedit || (t->flag & T_POSE) ) G.moving= G_TRANSFORM_EDIT; + else if(G.f & G_PARTICLEEDIT) G.moving= G_TRANSFORM_PARTICLE; else G.moving= G_TRANSFORM_OBJ; t->data = NULL; @@ -708,7 +718,7 @@ static void restoreElement(TransData *td) { if (td->val) { *td->val = td->ival; } - if (td->ext) { + if (td->ext && (td->flag&TD_NO_EXT)==0) { if (td->ext->rot) { VECCOPY(td->ext->rot, td->ext->irot); } |