[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44875] trunk/blender/release/scripts: Changes to python-defined add object operators:
Sergey Sharybin
sergey.vfx at gmail.com
Wed Mar 14 09:56:10 CET 2012
Revision: 44875
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44875
Author: nazgul
Date: 2012-03-14 08:55:57 +0000 (Wed, 14 Mar 2012)
Log Message:
-----------
Changes to python-defined add object operators:
- Reset rotation value when toggling Align to View property
which correctly re-alignes object on continuous property
toggling and fixes issue
#30510: [2.62] Add Mesh - Torus - "Align to View" cannot be switched back when toggling off
- Moves all generic object-add properties into a helper function
which might be easily re-used.
Modified Paths:
--------------
trunk/blender/release/scripts/modules/bpy_extras/object_utils.py
trunk/blender/release/scripts/startup/bl_operators/add_mesh_torus.py
Modified: trunk/blender/release/scripts/modules/bpy_extras/object_utils.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_extras/object_utils.py 2012-03-14 08:14:03 UTC (rev 44874)
+++ trunk/blender/release/scripts/modules/bpy_extras/object_utils.py 2012-03-14 08:55:57 UTC (rev 44875)
@@ -21,13 +21,16 @@
__all__ = (
"add_object_align_init",
"object_data_add",
+ "object_generic_transform_prop",
)
import bpy
import mathutils
+from bpy.props import (BoolProperty, FloatVectorProperty)
+
def add_object_align_init(context, operator):
"""
Return a matrix using the operator settings and view context.
@@ -120,7 +123,8 @@
base.layers_from_view(context.space_data)
base.layers[scene.active_layer] = True
else:
- base.layers = [True if i == scene.active_layer else False for i in range(len(scene.layers))]
+ base.layers = [True if i == scene.active_layer
+ else False for i in range(len(scene.layers))]
if v3d:
base.layers_from_view(context.space_data)
@@ -163,3 +167,23 @@
bpy.ops.object.mode_set(mode='EDIT')
return base
+
+
+class AddObjectHelper:
+ def view_align_update_callback(self, context):
+ if not self.view_align:
+ self.rotation.zero()
+
+ view_align = BoolProperty(
+ name="Align to View",
+ default=False,
+ update=view_align_update_callback,
+ )
+ location = FloatVectorProperty(
+ name="Location",
+ subtype='TRANSLATION',
+ )
+ rotation = FloatVectorProperty(
+ name="Rotation",
+ subtype='EULER',
+ )
Modified: trunk/blender/release/scripts/startup/bl_operators/add_mesh_torus.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/add_mesh_torus.py 2012-03-14 08:14:03 UTC (rev 44874)
+++ trunk/blender/release/scripts/startup/bl_operators/add_mesh_torus.py 2012-03-14 08:55:57 UTC (rev 44875)
@@ -21,7 +21,15 @@
from bpy.types import Operator
import mathutils
+from bpy.props import (FloatProperty,
+ IntProperty,
+ BoolProperty,
+ FloatVectorProperty,
+ )
+from bpy_extras import object_utils
+
+
def add_torus(major_rad, minor_rad, major_seg, minor_seg):
from math import cos, sin, pi
@@ -75,14 +83,8 @@
return verts, faces
-from bpy.props import (FloatProperty,
- IntProperty,
- BoolProperty,
- FloatVectorProperty,
- )
-
-class AddTorus(Operator):
+class AddTorus(Operator, object_utils.AddObjectHelper):
'''Add a torus mesh'''
bl_idname = "mesh.primitive_torus_add"
bl_label = "Add Torus"
@@ -131,22 +133,7 @@
default=0.5,
)
- # generic transform props
- view_align = BoolProperty(
- name="Align to View",
- default=False,
- )
- location = FloatVectorProperty(
- name="Location",
- subtype='TRANSLATION',
- )
- rotation = FloatVectorProperty(
- name="Rotation",
- subtype='EULER',
- )
-
def execute(self, context):
-
if self.use_abso == True:
extra_helper = (self.abso_major_rad - self.abso_minor_rad) * 0.5
self.major_radius = self.abso_minor_rad + extra_helper
@@ -166,7 +153,6 @@
mesh.faces.foreach_set("vertices_raw", faces)
mesh.update()
- from bpy_extras import object_utils
object_utils.object_data_add(context, mesh, operator=self)
return {'FINISHED'}
More information about the Bf-blender-cvs
mailing list