diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-10-19 21:20:09 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-10-19 21:20:09 +0400 |
commit | 031da438e47a2cf88bf81f7c2c7a3274cfe97e63 (patch) | |
tree | 8d949d787c33756a86a6b608a6b8a159333b0d8b /source/blender | |
parent | 5821e0ddf7b54c0f827b875ca3ee8302d0784a86 (diff) |
- enable snap to work for particle editmode so you can snap onto the emitter.
theeth: maybe there needs to be a new SnapMode for this? - SNAP_SELF?, like editmode but without setting t->editob
- dont run special_aftertrans_update on scene objects when after sequencer transform
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 4 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_snap.c | 12 |
2 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 63361e31c6e..2e4111cee40 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4572,6 +4572,10 @@ void special_aftertrans_update(TransInfo *t) } } } + else if (t->spacetype == SPACE_SEQ) { + /* freeSeqData in transform_conversions.c does this + * keep here so the else at the end wont run... */ + } else if (t->spacetype == SPACE_ACTION) { SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; Scene *scene; diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 6cfffd1ade7..b9b9ca034cf 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -1453,9 +1453,19 @@ int snapObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, float mv if (mode == SNAP_ALL && obedit) { Object *ob = obedit; - + retval |= snapObject(scene, ar, ob, 1, ob->obmat, ray_start, ray_normal, mval, loc, no, dist, &depth); } + + /* This isn't so great, particles only need to snap with the mesh object + * that emits them, but this doesnt fit into a current snap mode + * */ + if(BASACT->object && BASACT->object->mode & OB_MODE_PARTICLE_EDIT) + { + Object *ob = BASACT->object; + + retval |= snapObject(scene, ar, ob, 0, ob->obmat, ray_start, ray_normal, mval, loc, no, dist, &depth); + } base= FIRSTBASE; for ( base = FIRSTBASE; base != NULL; base = base->next ) { |