diff options
author | Arystanbek Dyussenov <arystan.d@gmail.com> | 2010-09-04 22:49:07 +0400 |
---|---|---|
committer | Arystanbek Dyussenov <arystan.d@gmail.com> | 2010-09-04 22:49:07 +0400 |
commit | 90b464d3728d9ed8ec26fdf59058d236b99dbcd9 (patch) | |
tree | e88cab4fb1358e962b19f658064ca8c9f8d29f5b /release/scripts/templates | |
parent | 08d02dd04d836976b25793bb1d4c6a86b3f924c7 (diff) | |
parent | b0b787ef38f9947b3176642556f5282eb3518f69 (diff) |
COLLADA branch: merge from trunk -r 28015:31610.soc-2009-chingachgook
Diffstat (limited to 'release/scripts/templates')
-rw-r--r-- | release/scripts/templates/gamelogic.py | 4 | ||||
-rw-r--r-- | release/scripts/templates/operator.py | 17 | ||||
-rw-r--r-- | release/scripts/templates/operator_modal.py | 3 | ||||
-rw-r--r-- | release/scripts/templates/operator_modal_draw.py | 21 | ||||
-rw-r--r-- | release/scripts/templates/operator_modal_view3d.py | 53 | ||||
-rw-r--r-- | release/scripts/templates/operator_simple.py | 5 | ||||
-rw-r--r-- | release/scripts/templates/operator_uv.py | 20 | ||||
-rw-r--r-- | release/scripts/templates/panel_simple.py | 2 |
8 files changed, 83 insertions, 42 deletions
diff --git a/release/scripts/templates/gamelogic.py b/release/scripts/templates/gamelogic.py index b4eac81b492..21a901c091b 100644 --- a/release/scripts/templates/gamelogic.py +++ b/release/scripts/templates/gamelogic.py @@ -6,8 +6,8 @@ # for keyboard event comparison # import GameKeys -# support for Vector(), Matrix() types and advanced functions like ScaleMatrix(...) and RotationMatrix(...) -# import Mathutils +# support for Vector(), Matrix() types and advanced functions like Matrix.Scale(...) and Matrix.Rotation(...) +# import mathutils # for functions like getWindowWidth(), getWindowHeight() # import Rasterizer diff --git a/release/scripts/templates/operator.py b/release/scripts/templates/operator.py index 23d75607ba3..5a525784b51 100644 --- a/release/scripts/templates/operator.py +++ b/release/scripts/templates/operator.py @@ -1,7 +1,6 @@ - import bpy -def write_some_data(context, path, use_some_setting): +def write_some_data(context, filepath, use_some_setting): print("running write_some_data...") pass @@ -16,7 +15,7 @@ class ExportSomeData(bpy.types.Operator): # to the class instance from the operator settings before calling. # TODO, add better example props - path = StringProperty(name="File Path", description="File path used for exporting the PLY file", maxlen= 1024, default= "") + filepath = StringProperty(name="File Path", description="File path used for exporting the PLY file", maxlen= 1024, default= "") use_setting = BoolProperty(name="Example Boolean", description="Example Tooltip", default= True) type = bpy.props.EnumProperty(items=(('OPT_A', "First Option", "Description one"), ('OPT_B', "Second Option", "Description two.")), @@ -24,16 +23,17 @@ class ExportSomeData(bpy.types.Operator): description="Choose between two items", default='OPT_A') - def poll(self, context): + @classmethod + def poll(cls, context): return context.active_object != None def execute(self, context): # # Bug, currently isnt working - #if not self.is_property_set("path"): + #if not self.is_property_set("filepath"): # raise Exception("filename not set") - write_some_data(self.properties.path, context, self.properties.use_setting) + write_some_data(self.properties.filepath, context, self.properties.use_setting) return {'FINISHED'} @@ -55,12 +55,9 @@ class ExportSomeData(bpy.types.Operator): return self.execute(context) - -bpy.types.register(ExportSomeData) - # Only needed if you want to add into a dynamic menu menu_func = lambda self, context: self.layout.operator("export.some_data", text="Example Exporter...") bpy.types.INFO_MT_file_export.append(menu_func) if __name__ == "__main__": - bpy.ops.export.some_data('INVOKE_DEFAULT', path="/tmp/test.ply") + bpy.ops.export.some_data('INVOKE_DEFAULT', filepath="/tmp/test.ply") diff --git a/release/scripts/templates/operator_modal.py b/release/scripts/templates/operator_modal.py index b2839efabe4..0c5db47674b 100644 --- a/release/scripts/templates/operator_modal.py +++ b/release/scripts/templates/operator_modal.py @@ -1,3 +1,4 @@ +import bpy from bpy.props import * class ModalOperator(bpy.types.Operator): @@ -33,7 +34,5 @@ class ModalOperator(bpy.types.Operator): return {'CANCELLED'} -bpy.types.register(ModalOperator) - if __name__ == "__main__": bpy.ops.object.modal_operator() diff --git a/release/scripts/templates/operator_modal_draw.py b/release/scripts/templates/operator_modal_draw.py index 3c7c4409f50..56ffb95f555 100644 --- a/release/scripts/templates/operator_modal_draw.py +++ b/release/scripts/templates/operator_modal_draw.py @@ -1,13 +1,16 @@ +import bpy import bgl import blf def draw_callback_px(self, context): print("mouse points", len(self.mouse_path)) + font_id = 0 # XXX, need to find out how best to get this. + # draw some text - blf.position(15, 30, 0) - blf.size(20, 72) - blf.draw("Hello Word " + str(len(self.mouse_path))) + blf.position(font_id, 15, 30, 0) + blf.size(font_id, 20, 72) + blf.draw(font_id, "Hello Word " + str(len(self.mouse_path))) # 50% alpha, 2 pixel width line bgl.glEnable(bgl.GL_BLEND) @@ -61,15 +64,3 @@ class ModalDrawOperator(bpy.types.Operator): else: self.report({'WARNING'}, "View3D not found, cannot run operator") return {'CANCELLED'} - - -def register(): - bpy.types.register(ModalDrawOperator) - - -def unregister(): - bpy.types.unregister(ModalDrawOperator) - - -if __name__ == "__main__": - register() diff --git a/release/scripts/templates/operator_modal_view3d.py b/release/scripts/templates/operator_modal_view3d.py new file mode 100644 index 00000000000..9b49fd947ad --- /dev/null +++ b/release/scripts/templates/operator_modal_view3d.py @@ -0,0 +1,53 @@ +import bpy +from mathutils import Vector +from bpy.props import FloatVectorProperty + +class ViewOperator(bpy.types.Operator): + '''Translate the view using mouse events.''' + bl_idname = "view3d.modal_operator" + bl_label = "Simple View Operator" + + offset = FloatVectorProperty(name="Offset", size=3) + + + def execute(self, context): + v3d = context.space_data + rv3d = v3d.region_3d + + rv3d.view_location = self._initial_location + Vector(self.properties.offset) + + def modal(self, context, event): + v3d = context.space_data + rv3d = v3d.region_3d + + if event.type == 'MOUSEMOVE': + self.properties.offset = (self._initial_mouse - Vector((event.mouse_x, event.mouse_y, 0.0))) * 0.02 + self.execute(context) + + elif event.type == 'LEFTMOUSE': + return {'FINISHED'} + + elif event.type in ('RIGHTMOUSE', 'ESC'): + rv3d.view_location = self._initial_location + return {'CANCELLED'} + + return {'RUNNING_MODAL'} + + def invoke(self, context, event): + + if context.space_data.type == 'VIEW_3D': + v3d = context.space_data + rv3d = v3d.region_3d + + context.manager.add_modal_handler(self) + + if rv3d.view_perspective == 'CAMERA': + rv3d.view_perspective = 'PERSP' + + self._initial_mouse = Vector((event.mouse_x, event.mouse_y, 0.0)) + self._initial_location = rv3d.view_location.copy() + + return {'RUNNING_MODAL'} + else: + self.report({'WARNING'}, "Active space must be a View3d") + return {'CANCELLED'} diff --git a/release/scripts/templates/operator_simple.py b/release/scripts/templates/operator_simple.py index c62d3720d96..853bfa666eb 100644 --- a/release/scripts/templates/operator_simple.py +++ b/release/scripts/templates/operator_simple.py @@ -1,3 +1,4 @@ +import bpy def main(context): for ob in context.scene.objects: @@ -8,14 +9,14 @@ class SimpleOperator(bpy.types.Operator): bl_idname = "object.simple_operator" bl_label = "Simple Object Operator" - def poll(self, context): + @classmethod + def poll(cls, context): return context.active_object != None def execute(self, context): main(context) return {'FINISHED'} -bpy.types.register(SimpleOperator) if __name__ == "__main__": bpy.ops.object.simple_operator() diff --git a/release/scripts/templates/operator_uv.py b/release/scripts/templates/operator_uv.py index 36d8333d49d..305496e31ce 100644 --- a/release/scripts/templates/operator_uv.py +++ b/release/scripts/templates/operator_uv.py @@ -1,3 +1,4 @@ +import bpy def main(context): obj = context.active_object @@ -8,27 +9,29 @@ def main(context): bpy.ops.object.mode_set(mode='OBJECT', toggle=False) - if not mesh.active_uv_texture: - bpy.ops.mesh.uv_texture_add() + if not mesh.uv_textures: + uvtex = bpy.ops.mesh.uv_texture_add() # adjust UVs - for i, uv in enumerate(mesh.active_uv_texture.data): + for i, uv in enumerate(uvtex.data): uvs = uv.uv1, uv.uv2, uv.uv3, uv.uv4 - for j, v_idx in enumerate(mesh.faces[i].verts): - if uv.uv_selected[j]: + for j, v_idx in enumerate(mesh.faces[i].vertices): + if uv.select_uv[j]: # apply the location of the vertex as a UV - uvs[j][:] = mesh.verts[v_idx].co.xy + uvs[j][:] = mesh.vertices[v_idx].co.xy if is_editmode: bpy.ops.object.mode_set(mode='EDIT', toggle=False) + class UvOperator(bpy.types.Operator): - '''''' + '''UV Operator description''' bl_idname = "uv.simple_operator" bl_label = "Simple UV Operator" - def poll(self, context): + @classmethod + def poll(cls, context): obj = context.active_object return (obj and obj.type == 'MESH') @@ -36,7 +39,6 @@ class UvOperator(bpy.types.Operator): main(context) return {'FINISHED'} -bpy.types.register(UvOperator) if __name__ == "__main__": bpy.ops.uv.simple_operator() diff --git a/release/scripts/templates/panel_simple.py b/release/scripts/templates/panel_simple.py index aac4b6e715e..7c73e58a3e5 100644 --- a/release/scripts/templates/panel_simple.py +++ b/release/scripts/templates/panel_simple.py @@ -18,5 +18,3 @@ class OBJECT_PT_hello(bpy.types.Panel): row.label(text="Active object is: " + obj.name) row = layout.row() row.prop(obj, "name") - -bpy.types.register(OBJECT_PT_hello) |