[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1271] contrib/py/scripts/addons: Adding support for Lattice point animation, thanks to Joshua Leung for

Daniel Salazar zanqdo at gmail.com
Mon Dec 13 22:31:52 CET 2010


Revision: 1271
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=1271
Author:   zanqdo
Date:     2010-12-13 22:31:51 +0100 (Mon, 13 Dec 2010)

Log Message:
-----------
Adding support for Lattice point animation, thanks to Joshua Leung for
support in animsys

Added Paths:
-----------
    contrib/py/scripts/addons/animation_animall.py

Removed Paths:
-------------
    contrib/py/scripts/addons/animation_animesh.py

Copied: contrib/py/scripts/addons/animation_animall.py (from rev 1270, contrib/py/scripts/addons/animation_animesh.py)
===================================================================
--- contrib/py/scripts/addons/animation_animall.py	                        (rev 0)
+++ contrib/py/scripts/addons/animation_animall.py	2010-12-13 21:31:51 UTC (rev 1271)
@@ -0,0 +1,258 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+bl_addon_info = {
+    'name': 'AnimAll',
+    'author': 'Daniel Salazar <zanqdo at gmail.com>',
+    'version': (0, 2),
+    'blender': (2, 5, 5),
+    'api': 33625,
+    'location': 'Select a Mesh: Toolbar > AnimAll panel',
+    'description': 'Allows animation of mesh and lattice data (Verts, VCols, VGroups, UVs)',
+    'warning': 'Blender API has some bugs around this still',
+    'wiki_url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Animation/AnimAll',
+    'tracker_url': 'http://projects.blender.org/tracker/index.php?'\
+        'func=detail&aid=24874&group_id=153&atid=468',
+    'category': 'Animation'}
+
+'''-------------------------------------------------------------------------
+Thanks to Campbell Barton and Joshua Leung for hes API additions and fixes
+Daniel 'ZanQdo' Salazar
+
+Rev 0.1 initial release
+Rev 0.2 added support for animating UVs, VCols, VGroups
+Rev 0.3 added support for animating Lattice points
+-------------------------------------------------------------------------'''
+
+import bpy
+from bpy.props import *
+
+
+#
+# Property Definitions
+#
+bpy.types.WindowManager.key_points = BoolProperty(
+    name="Points",
+    description="Insert keyframes on point locations",
+    default=True)
+
+bpy.types.WindowManager.key_uvs = BoolProperty(
+    name="UVs",
+    description="Insert keyframes on active UV coordinates",
+    default=False)
+
+bpy.types.WindowManager.key_vcols = BoolProperty(
+    name="VCols",
+    description="Insert keyframes on active Vertex Color values",
+    default=False)
+
+bpy.types.WindowManager.key_vgroups = BoolProperty(
+    name="VGroups",
+    description="Insert keyframes on active Vertex Group values",
+    default=False)
+
+
+#
+# GUI (Panel)
+#
+class VIEW3D_PT_animall(bpy.types.Panel):
+
+    bl_space_type = 'VIEW_3D'
+    bl_region_type = 'TOOLS'
+    bl_label = 'AnimAll'
+
+    # show this add-on only in the Camera-Data-Panel
+    @classmethod
+    def poll(self, context):
+        if context.active_object:
+            return context.active_object.type  == 'MESH'\
+				or context.active_object.type  == 'LATTICE'
+    
+    # draw the gui
+    def draw(self, context):
+        layout = self.layout
+        
+        col = layout.column(align=True)
+        
+        #col.label(text="Keyframing:")
+        row = col.row()
+        row.prop(context.window_manager, "key_points")
+        if context.active_object.type == 'MESH':
+            row.prop(context.window_manager, "key_uvs")
+            row = col.row()
+            row.prop(context.window_manager, "key_vcols")
+            row.prop(context.window_manager, "key_vgroups")
+        
+        row = col.row()
+        row.operator('anim.insert_keyframe_animall')
+        row.operator('anim.delete_keyframe_animall')
+        row = layout.row()
+        row.operator('anim.clear_animation_animall')
+
+
+class ANIM_OT_insert_keyframe_animall(bpy.types.Operator):
+    bl_label = 'Insert'
+    bl_idname = 'anim.insert_keyframe_animall'
+    bl_description = 'Insert a Keyframe'
+    bl_options = {'REGISTER', 'UNDO'}
+    
+    
+    # on mouse up:
+    def invoke(self, context, event):
+
+        self.execute(context)
+
+        return {'FINISHED'}
+
+
+    def execute(op, context):
+        
+        Obj = context.active_object
+        
+        if Obj.type == 'MESH':
+            Mode = False
+            if context.mode == 'EDIT_MESH':
+                Mode = not Mode
+                bpy.ops.object.editmode_toggle()
+            
+            Data = Obj.data
+            
+            if context.window_manager.key_points or context.window_manager.key_vgroups:
+                for Vert in Data.vertices:
+                    if context.window_manager.key_points:
+                        Vert.keyframe_insert('co')
+                    if context.window_manager.key_vgroups:
+                        for Group in Vert.groups:
+                            Group.keyframe_insert('weight')
+                    
+            if context.window_manager.key_uvs:
+                for UVLayer in Data.uv_textures:
+                    if UVLayer.active: # only insert in active UV layer
+                        for Data in UVLayer.data:
+                            Data.keyframe_insert('uv')
+
+            if context.window_manager.key_vcols:
+                for VColLayer in Data.vertex_colors:
+                    if VColLayer.active: # only insert in active VCol layer
+                        for Data in VColLayer.data:
+                            Data.keyframe_insert('color1')
+                            Data.keyframe_insert('color2')
+                            Data.keyframe_insert('color3')
+                            Data.keyframe_insert('color4')
+            
+            if Mode:
+                bpy.ops.object.editmode_toggle()
+        
+        if Obj.type == 'LATTICE':
+            for Point in Obj.data.points:
+                Point.keyframe_insert('co_deform')
+
+
+        return {'FINISHED'}
+
+
+class ANIM_OT_delete_keyframe_animall(bpy.types.Operator):
+    bl_label = 'Delete'
+    bl_idname = 'anim.delete_keyframe_animall'
+    bl_description = 'Delete a Keyframe'
+    bl_options = {'REGISTER', 'UNDO'}
+    
+    
+    # on mouse up:
+    def invoke(self, context, event):
+
+        self.execute(context)
+
+        return {'FINISHED'}
+
+
+    def execute(op, context):
+        
+        Obj = context.active_object
+        
+        if Obj.type == 'MESH':
+            Mode = False
+            if context.mode == 'EDIT_MESH':
+                Mode = not Mode
+                bpy.ops.object.editmode_toggle()
+            
+            Data = Obj.data
+            
+            if context.window_manager.key_points or context.window_manager.key_vgroups:
+                for Vert in Data.vertices:
+                    if context.window_manager.key_points:
+                        Vert.keyframe_delete('co')
+                    if context.window_manager.key_vgroups:
+                        for Group in Vert.groups:
+                            Group.keyframe_delete('weight')
+                    
+            if context.window_manager.key_uvs:
+                for UVLayer in Data.uv_textures:
+                    if UVLayer.active: # only delete in active UV layer
+                        for Data in UVLayer.data:
+                            Data.keyframe_delete('uv')
+
+            if context.window_manager.key_vcols:
+                for VColLayer in Data.vertex_colors:
+                    if VColLayer.active: # only delete in active VCol layer
+                        for Data in VColLayer.data:
+                            Data.keyframe_delete('color1')
+                            Data.keyframe_delete('color2')
+                            Data.keyframe_delete('color3')
+                            Data.keyframe_delete('color4')
+            
+            
+            if Mode:
+                bpy.ops.object.editmode_toggle()
+
+        if Obj.type == 'LATTICE':
+            for Point in Obj.data.points:
+                Point.keyframe_delete('co_deform')
+
+        return {'FINISHED'}
+
+
+class ANIM_OT_clear_animation_animall(bpy.types.Operator):
+    bl_label = 'Clear Animation'
+    bl_idname = 'anim.clear_animation_animall'
+    bl_description = 'Clear all animation'
+    bl_options = {'REGISTER', 'UNDO'}
+
+    # on mouse up:
+    def invoke(self, context, event):
+        
+        wm = context.window_manager
+        return wm.invoke_confirm(self, event)
+    
+    
+    def execute(op, context):
+        
+        Data = context.active_object.data
+        Data.animation_data_clear()
+        
+        return {'FINISHED'}
+
+
+def register():
+    pass
+    
+def unregister():
+    pass
+    
+if __name__ == "__main__":
+    register()

Deleted: contrib/py/scripts/addons/animation_animesh.py
===================================================================
--- contrib/py/scripts/addons/animation_animesh.py	2010-12-12 00:29:28 UTC (rev 1270)
+++ contrib/py/scripts/addons/animation_animesh.py	2010-12-13 21:31:51 UTC (rev 1271)
@@ -1,249 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  This program is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU General Public License
-#  as published by the Free Software Foundation; either version 2
-#  of the License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-bl_addon_info = {
-    'name': 'AniMesh',
-    'author': 'Daniel Salazar <zanqdo at gmail.com>',
-    'version': (0, 2),
-    'blender': (2, 5, 5),
-    'api': 33232,
-    'location': 'Select a Mesh: Toolbar > AniMesh panel',
-    'description': 'Allows animation of mesh data (Verts, VCols, VGroups, UVs)',
-    'warning': 'Blender API has some bugs around this still',

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list