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>2009-10-19 21:20:09 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-10-19 21:20:09 +0400
commit031da438e47a2cf88bf81f7c2c7a3274cfe97e63 (patch)
tree8d949d787c33756a86a6b608a6b8a159333b0d8b /source/blender
parent5821e0ddf7b54c0f827b875ca3ee8302d0784a86 (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.c4
-rw-r--r--source/blender/editors/transform/transform_snap.c12
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 ) {