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:
authorTon Roosendaal <ton@blender.org>2006-11-07 21:34:32 +0300
committerTon Roosendaal <ton@blender.org>2006-11-07 21:34:32 +0300
commit2e93510a6b137487c89d35f09065f9f1cad81c72 (patch)
tree648f6383668fbbe2219f1e584982f506d1b95fab /source/blender/src/editipo_mods.c
parenta221ddcf9bb44d81037fa1cff3fddb70e4e3f521 (diff)
Patch #5028. by Joshua Leung (aligorith)
Key snapping in Action Window, cleanup and added option to snap to current frame.
Diffstat (limited to 'source/blender/src/editipo_mods.c')
-rw-r--r--source/blender/src/editipo_mods.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/source/blender/src/editipo_mods.c b/source/blender/src/editipo_mods.c
index 39a05573145..581d293b079 100644
--- a/source/blender/src/editipo_mods.c
+++ b/source/blender/src/editipo_mods.c
@@ -555,16 +555,33 @@ void sethandles_ipo_keys(Ipo *ipo, int code)
}
}
-static int snap_bezier(BezTriple *bezt)
+static int snap_bezier_nearest(BezTriple *bezt)
{
if(bezt->f2 & SELECT)
bezt->vec[1][0]= (float)(floor(bezt->vec[1][0]+0.5));
return 0;
}
-void snap_ipo_keys(Ipo *ipo)
+static int snap_bezier_cframe(BezTriple *bezt)
{
- ipo_keys_bezier_loop(ipo, snap_bezier, calchandles_ipocurve);
+ if(bezt->f2 & SELECT)
+ bezt->vec[1][0]= (float)CFRA;
+ return 0;
+}
+
+void snap_ipo_keys(Ipo *ipo, short snaptype)
+{
+ switch (snaptype) {
+ case 1: /* snap to nearest */
+ ipo_keys_bezier_loop(ipo, snap_bezier_nearest, calchandles_ipocurve);
+ break;
+ case 2: /* snap to current frame */
+ ipo_keys_bezier_loop(ipo, snap_bezier_cframe, calchandles_ipocurve);
+ break;
+ default: /* just in case */
+ ipo_keys_bezier_loop(ipo, snap_bezier_nearest, calchandles_ipocurve);
+ break;
+ }
}
static void ipo_curves_auto_horiz(void)