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.
This commit is contained in:
Sergey Sharybin
2012-03-14 08:55:57 +00:00
parent bbb76ccb25
commit b745621038
2 changed files with 34 additions and 24 deletions

View File

@@ -21,12 +21,15 @@
__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):
"""
@@ -120,7 +123,8 @@ def object_data_add(context, obdata, operator=None, use_active_layer=True):
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 @@ def object_data_add(context, obdata, operator=None, use_active_layer=True):
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',
)