Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendon Murphy <meta.androcto1@gmail.com>2010-06-07 09:50:15 +0400
committerBrendon Murphy <meta.androcto1@gmail.com>2010-06-07 09:50:15 +0400
commitf2326c2096a209bb9356b44944b9ce93b2832ff6 (patch)
treed5e60578250c25799ddf01499a33a2e737f548a9
parent5e3749b878c536a048525b55993290753ac0f40c (diff)
moved trunk/py/scripts/addons/add_edit_object_parameters.py
to repair_holding/add_edit_object_parameters.py keeping this script here until I remove the recall function from add mesh scripts. then it will be permanently deleted. [[Split portion of a mixed commit.]]
-rw-r--r--add_edit_object_parameters.py262
1 files changed, 0 insertions, 262 deletions
diff --git a/add_edit_object_parameters.py b/add_edit_object_parameters.py
deleted file mode 100644
index 5b55e712..00000000
--- a/add_edit_object_parameters.py
+++ /dev/null
@@ -1,262 +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 #####
-
-import bpy
-from mathutils import *
-from math import *
-from bpy.props import *
-
-bl_addon_info = {
- 'name': 'Edit Object Parameters (Search: Recall)',
- 'author': 'Buerbaum Martin (Pontiac)',
- 'version': '0.1.3',
- 'blender': (2, 5, 3),
- 'location': 'View3D > Tool Shelf > Edit Object Parameters',
- 'description': 'Re-call an object menu that was created' \
- ' with an Add Mesh operator. This operator must have stored'\
- ' the recall data though.',
- 'wiki_url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/' \
- 'Scripts/3D_interaction/Edit_Object_Parameters',
- 'category': 'Add Mesh'}
-
-
-__bpydoc__ = """
-Edit object parameters
-
-Recalls the "add mesh" object operator.
-
-Generic functions to re-create an object that was created
-with a "Add Mesh" operator.
-
-The "Add Mesh" operator has to store the "recall" information
-in the object properties for this to work.
-
-Usage:
-
-Select an "recall enabled" object and click the "Edit" button
-in the "Edit Object Parameters" panel of the Tool Shelf.
-
-Known issues:
-
-The recall doesn't take the rotation/scaling of the
-exiting object into account.
-i.e. The new object will be created as if it's created
-manually at the location of the exiting object.
-This also means that "align to view" may affect
-rotation of the new object.
-
-v0.1.3 - Display operator name and stored recall parameters.
-v0.1.2 - Changed the name of the operator(s) ('Edit object parameters')
- Added warning about mesh-deletion.
-v0.1.1 - Removed changes to 3D cursor.
- Removed removal of objects (Has to be handled in "Add Mesh" operator now.)
-v0.1 - Initial revision
-"""
-
-
-# Find operator by bl_idname.
-# Independent from the format of bl_idname.
-# <SPACE>_OT_xxxx and <space>.xxxx are supported.
-def get_operator_by_idname(bl_idname):
- list = bl_idname.split(".")
-
- # Check if splitting didn't work.
- if len(list) <= 1:
- # String format was NOT <space>.xxxx.
- list = bl_idname.split("_OT_")
-
- # Check if splitting didn't work.
- if len(list) <= 1:
- # String format was NOT <SPACE>_OT_xxxx.
- return None
-
- # Splitting by _OT_ worked.
- # Make space type lowercase
- list[0] = list[0].lower()
-
- space_type = getattr(bpy.ops, list[0], None)
- if not space_type:
- return None
-
- op = getattr(space_type, list[1], None)
- if not op:
- return None
-
- return op
-
-
-# Find operator class by bl_idname.
-# <SPACE>_OT_xxxx
-def get_operator_class_by_idname(bl_idname):
- type = getattr(bpy.types, bl_idname, None)
-
- if not type:
- return None
-
- return type
-
-
-class VIEW3D_OT_recall_object_operator(bpy.types.Operator):
- '''Recall object operator'''
- bl_idname = "view3d.recall_object_operator"
- bl_label = "Recall/re-execute operator for the selected object."
- bl_options = {'REGISTER'}
-
- def execute(self, context):
- scene = context.scene
- ob = scene.objects.active
-
- if (ob
- and len(context.selected_objects) == 1
- and ob == context.selected_objects[0]
- and ob.items()):
-
- if 'recall' in ob:
- recall_props = ob['recall'].convert_to_pyobject()
-
- # Check if an operator string was defined.
- if 'op' in recall_props:
- op_idname = recall_props['op']
- op_args = recall_props['args']
-
- print("Recalling operator: " + op_idname)
-
- # Find and recall operator
- op = get_operator_by_idname(op_idname)
- if op:
- # Prepare the stored data as arguments for the op.
- args = dict([(k[0], k[1]) for k in op_args.items()])
-
- # Execute the operator with the unpacked parameters.
- op(**args)
-
- else:
- print("No operator found for idname " + op_idname)
- return {'CANCELLED'}
-
- else:
- print("No operator prop found in recall data!")
- return {'CANCELLED'}
-
- else:
- print("No recall information found in object!")
- return {'CANCELLED'}
-
- return {'FINISHED'}
-
- return {'CANCELLED'}
-
-
-class VIEW3D_OT_edit_object_parameters(bpy.types.Panel):
- bl_space_type = "VIEW_3D"
- bl_region_type = "TOOLS"
- bl_context = "objectmode"
- bl_label = "Edit Object Parameters"
-
- def poll(self, context):
- scene = context.scene
- ob = scene.objects.active
-
- # Only show this panel if the object has "recall" data.
- if (ob
- and len(context.selected_objects) == 1
- and ob == context.selected_objects[0]
- and 'recall' in ob):
- return True
-
- return False
-
- def draw(self, context):
- layout = self.layout
- row = layout.row()
- row.operator("view3d.recall_object_operator",
- text="Edit")
-
- row = layout.row()
- row.label(text="Warning:",
- icon='INFO')
- row = layout.row()
- row.label(text="Manual changes to the mesh geometry will be lost!")
-
- scene = context.scene
- ob = scene.objects.active
-
- if ob:
- row = layout.row()
-
- recall_props = ob['recall']
- if 'op' in recall_props:
- op_idname = recall_props['op']
- op_args = recall_props['args']
-
- # Find and recall operator
- type = get_operator_class_by_idname(op_idname)
-
- if type:
- row.label(text="Operator:")
-
- box = layout.column().box()
- column = box.column()
- row = column.row()
-
- row.label(text=type.bl_label)
-
- if op_args:
- row = layout.row()
- row.label(text="Properties:")
-
- box = layout.column().box()
- column = box.column()
- row = column.row()
-
- for prop_name, prop_val in op_args.items():
- row = column.row()
- name = prop_name
- if hasattr(type, prop_name):
- at = getattr(type, prop_name)
- prop_full_name = at[1]["name"]
- if prop_full_name != "":
- name = prop_full_name
-
- row.label(text=name)
- row.label(text=str(prop_val))
-
- else:
- row.label(text="Could not find operator "
- + op_idname + "!",
- icon='ERROR')
- else:
- row.label(text="Could not find operatorID in object.",
- icon='ERROR')
-
-################################
-
-
-def register():
- # Register the operators/menus.
- bpy.types.register(VIEW3D_OT_recall_object_operator)
- bpy.types.register(VIEW3D_OT_edit_object_parameters)
-
-
-def unregister():
- # Unregister the operators/menus.
- bpy.types.unregister(VIEW3D_OT_recall_object_operator)
- bpy.types.unregister(VIEW3D_OT_edit_object_parameters)
-
-if __name__ == "__main__":
- register()