[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26909] trunk/blender/release/scripts: rename euler_filter.py -> fcurve_euler_filter.py
Campbell Barton
ideasman42 at gmail.com
Mon Feb 15 09:17:57 CET 2010
Revision: 26909
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26909
Author: campbellbarton
Date: 2010-02-15 09:17:57 +0100 (Mon, 15 Feb 2010)
Log Message:
-----------
rename euler_filter.py -> fcurve_euler_filter.py
check if the .Blog file exists rather then using an exception.
Modified Paths:
--------------
trunk/blender/release/scripts/ui/space_info.py
Added Paths:
-----------
trunk/blender/release/scripts/op/fcurve_euler_filter.py
Removed Paths:
-------------
trunk/blender/release/scripts/op/euler_filter.py
Deleted: trunk/blender/release/scripts/op/euler_filter.py
===================================================================
--- trunk/blender/release/scripts/op/euler_filter.py 2010-02-15 06:01:13 UTC (rev 26908)
+++ trunk/blender/release/scripts/op/euler_filter.py 2010-02-15 08:17:57 UTC (rev 26909)
@@ -1,65 +0,0 @@
-from math import *
-import bpy
-from Mathutils import *
-
-def main(context):
- def cleanupEulCurve(fcv):
- keys = []
-
- for k in fcv.keyframe_points:
- keys.append([k.handle1.copy(), k.co.copy(), k.handle2.copy()])
- print(keys)
-
- for i in range(len(keys)):
- cur = keys[i]
- prev = keys[i-1] if i > 0 else None
- next = keys[i+1] if i < len(keys)-1 else None
-
- if prev == None:
- continue
-
- th = pi
- if abs(prev[1][1] - cur[1][1]) >= th: # more than 180 degree jump
- fac = pi*2
- if prev[1][1] > cur[1][1]:
- while abs(cur[1][1]-prev[1][1]) >= th: # < prev[1][1]:
- cur[0][1] += fac
- cur[1][1] += fac
- cur[2][1] += fac
- elif prev[1][1] < cur[1][1]:
- while abs(cur[1][1]-prev[1][1]) >= th:
- cur[0][1] -= fac
- cur[1][1] -= fac
- cur[2][1] -= fac
-
- for i in range(len(keys)):
- for x in range(2):
- fcv.keyframe_points[i].handle1[x] = keys[i][0][x]
- fcv.keyframe_points[i].co[x] = keys[i][1][x]
- fcv.keyframe_points[i].handle2[x] = keys[i][2][x]
-
- flist = bpy.context.active_object.animation_data.action.fcurves
- for f in flist:
- if f.selected and f.data_path.endswith("rotation_euler"):
- cleanupEulCurve(f)
-
-class DiscontFilterOp(bpy.types.Operator):
- """Fixes the most common causes of gimbal lock in the fcurves of the active bone"""
- bl_idname = "graph.discont_filter"
- bl_label = "Filter out discontinuities in the active fcurves"
-
- def poll(self, context):
- return context.active_object != None
-
- def execute(self, context):
- main(context)
- return {'FINISHED'}
-
-def register():
- bpy.types.register(DiscontFilterOp)
-
-def unregister():
- bpy.types.unregister(DiscontFilterOp)
-
-if __name__ == "__main__":
- bpy.ops.graph.discont_filter()
Copied: trunk/blender/release/scripts/op/fcurve_euler_filter.py (from rev 26908, trunk/blender/release/scripts/op/euler_filter.py)
===================================================================
--- trunk/blender/release/scripts/op/fcurve_euler_filter.py (rev 0)
+++ trunk/blender/release/scripts/op/fcurve_euler_filter.py 2010-02-15 08:17:57 UTC (rev 26909)
@@ -0,0 +1,65 @@
+from math import *
+import bpy
+from Mathutils import *
+
+def main(context):
+ def cleanupEulCurve(fcv):
+ keys = []
+
+ for k in fcv.keyframe_points:
+ keys.append([k.handle1.copy(), k.co.copy(), k.handle2.copy()])
+ print(keys)
+
+ for i in range(len(keys)):
+ cur = keys[i]
+ prev = keys[i-1] if i > 0 else None
+ next = keys[i+1] if i < len(keys)-1 else None
+
+ if prev == None:
+ continue
+
+ th = pi
+ if abs(prev[1][1] - cur[1][1]) >= th: # more than 180 degree jump
+ fac = pi*2
+ if prev[1][1] > cur[1][1]:
+ while abs(cur[1][1]-prev[1][1]) >= th: # < prev[1][1]:
+ cur[0][1] += fac
+ cur[1][1] += fac
+ cur[2][1] += fac
+ elif prev[1][1] < cur[1][1]:
+ while abs(cur[1][1]-prev[1][1]) >= th:
+ cur[0][1] -= fac
+ cur[1][1] -= fac
+ cur[2][1] -= fac
+
+ for i in range(len(keys)):
+ for x in range(2):
+ fcv.keyframe_points[i].handle1[x] = keys[i][0][x]
+ fcv.keyframe_points[i].co[x] = keys[i][1][x]
+ fcv.keyframe_points[i].handle2[x] = keys[i][2][x]
+
+ flist = bpy.context.active_object.animation_data.action.fcurves
+ for f in flist:
+ if f.selected and f.data_path.endswith("rotation_euler"):
+ cleanupEulCurve(f)
+
+class DiscontFilterOp(bpy.types.Operator):
+ """Fixes the most common causes of gimbal lock in the fcurves of the active bone"""
+ bl_idname = "graph.discont_filter"
+ bl_label = "Filter out discontinuities in the active fcurves"
+
+ def poll(self, context):
+ return context.active_object != None
+
+ def execute(self, context):
+ main(context)
+ return {'FINISHED'}
+
+def register():
+ bpy.types.register(DiscontFilterOp)
+
+def unregister():
+ bpy.types.unregister(DiscontFilterOp)
+
+if __name__ == "__main__":
+ bpy.ops.graph.discont_filter()
Modified: trunk/blender/release/scripts/ui/space_info.py
===================================================================
--- trunk/blender/release/scripts/ui/space_info.py 2010-02-15 06:01:13 UTC (rev 26908)
+++ trunk/blender/release/scripts/ui/space_info.py 2010-02-15 08:17:57 UTC (rev 26909)
@@ -123,13 +123,16 @@
import os
layout = self.layout
layout.operator_context = 'EXEC_AREA'
- try:
- file = open(os.path.join(bpy.app.home, ".Blog"), "rU")
+
+ path = os.path.join(bpy.app.home, ".Blog")
+
+ if os.path.isfile(path):
+ file = open(path, "rU")
for line in file:
line = line.rstrip()
layout.operator("wm.open_mainfile", text=line, icon='FILE_BLEND').path = line
file.close()
- except:
+ else:
layout.label(text='No recent files')
More information about the Bf-blender-cvs
mailing list