[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38720] trunk/blender: py api:
Campbell Barton
ideasman42 at gmail.com
Tue Jul 26 09:39:01 CEST 2011
Revision: 38720
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38720
Author: campbellbarton
Date: 2011-07-26 07:39:00 +0000 (Tue, 26 Jul 2011)
Log Message:
-----------
py api:
- added menu templates
- move template menu into the header of the text editor (so users will find more easily)
- updated mathutils examples, switching the order of multiplication.
Modified Paths:
--------------
trunk/blender/doc/python_api/examples/mathutils.Vector.py
trunk/blender/release/scripts/startup/bl_ui/space_text.py
trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c
Added Paths:
-----------
trunk/blender/release/scripts/templates/ui_menu.py
trunk/blender/release/scripts/templates/ui_menu_simple.py
trunk/blender/release/scripts/templates/ui_panel_simple.py
Removed Paths:
-------------
trunk/blender/release/scripts/templates/panel_simple.py
Modified: trunk/blender/doc/python_api/examples/mathutils.Vector.py
===================================================================
--- trunk/blender/doc/python_api/examples/mathutils.Vector.py 2011-07-26 06:10:05 UTC (rev 38719)
+++ trunk/blender/doc/python_api/examples/mathutils.Vector.py 2011-07-26 07:39:00 UTC (rev 38720)
@@ -1,15 +1,15 @@
import mathutils
# zero length vector
-vec = mathutils.Vector((0, 0, 1))
+vec = mathutils.Vector((0.0, 0.0, 1.0))
# unit length vector
vec_a = vec.copy().normalize()
-vec_b = mathutils.Vector((0, 1, 2))
+vec_b = mathutils.Vector((0.0, 1.0, 2.0))
-vec2d = mathutils.Vector((1, 2))
-vec3d = mathutils.Vector((1, 0, 0))
+vec2d = mathutils.Vector((1.0, 2.0))
+vec3d = mathutils.Vector((1.0, 0.0, 0.0))
vec4d = vec_a.to_4d()
# other mathutuls types
@@ -34,9 +34,9 @@
vec_a - vec_b
vec_a * vec_b
vec_a * 10.0
-vec_a * matrix
+matrix * vec_a
+quat * vec_a
vec_a * vec_b
-vec_a * quat
-vec_a
@@ -44,6 +44,7 @@
x = vec_a[0]
len(vec)
vec_a[:] = vec_b
+vec_a[:] = 1.0, 2.0, 3.0
vec2d[:] = vec3d[:2]
Modified: trunk/blender/release/scripts/startup/bl_ui/space_text.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_text.py 2011-07-26 06:10:05 UTC (rev 38719)
+++ trunk/blender/release/scripts/startup/bl_ui/space_text.py 2011-07-26 07:39:00 UTC (rev 38720)
@@ -16,7 +16,7 @@
#
# ##### END GPL LICENSE BLOCK #####
-# <pep8 compliant>
+# <pep8-80 compliant>
import bpy
@@ -36,10 +36,13 @@
sub = row.row(align=True)
sub.menu("TEXT_MT_view")
sub.menu("TEXT_MT_text")
+
if text:
sub.menu("TEXT_MT_edit")
sub.menu("TEXT_MT_format")
+ sub.menu("TEXT_MT_templates")
+
if text and text.is_modified:
row = layout.row()
row.alert = True
@@ -63,11 +66,13 @@
row = layout.row()
if text.filepath:
if text.is_dirty:
- row.label(text="File: *%s (unsaved)" % text.filepath)
+ row.label(text="File: *%r (unsaved)" % text.filepath)
else:
- row.label(text="File: %s" % text.filepath)
+ row.label(text="File: %r" % text.filepath)
else:
- row.label(text="Text: External" if text.library else "Text: Internal")
+ row.label(text="Text: External"
+ if text.library
+ else "Text: Internal")
class TEXT_PT_properties(bpy.types.Panel):
@@ -150,8 +155,12 @@
layout.separator()
- layout.operator("text.move", text="Top of File").type = 'FILE_TOP'
- layout.operator("text.move", text="Bottom of File").type = 'FILE_BOTTOM'
+ layout.operator("text.move",
+ text="Top of File",
+ ).type = 'FILE_TOP'
+ layout.operator("text.move",
+ text="Bottom of File",
+ ).type = 'FILE_BOTTOM'
class TEXT_MT_text(bpy.types.Menu):
@@ -185,19 +194,15 @@
# XXX uiMenuItemO(head, 0, "text.refresh_pyconstraints");
#endif
- layout.separator()
- layout.menu("TEXT_MT_templates")
-
-
class TEXT_MT_templates(bpy.types.Menu):
- '''
- Creates the menu items by scanning scripts/templates
- '''
- bl_label = "Script Templates"
+ bl_label = "Templates"
def draw(self, context):
- self.path_menu(bpy.utils.script_paths("templates"), "text.open", {"internal": True})
+ self.path_menu(bpy.utils.script_paths("templates"),
+ "text.open",
+ {"internal": True},
+ )
class TEXT_MT_edit_select(bpy.types.Menu):
@@ -246,8 +251,12 @@
def draw(self, context):
layout = self.layout
- layout.operator("text.to_3d_object", text="One Object").split_lines = False
- layout.operator("text.to_3d_object", text="One Object Per Line").split_lines = True
+ layout.operator("text.to_3d_object",
+ text="One Object",
+ ).split_lines = False
+ layout.operator("text.to_3d_object",
+ text="One Object Per Line",
+ ).split_lines = True
class TEXT_MT_edit(bpy.types.Menu):
Deleted: trunk/blender/release/scripts/templates/panel_simple.py
===================================================================
--- trunk/blender/release/scripts/templates/panel_simple.py 2011-07-26 06:10:05 UTC (rev 38719)
+++ trunk/blender/release/scripts/templates/panel_simple.py 2011-07-26 07:39:00 UTC (rev 38720)
@@ -1,33 +0,0 @@
-import bpy
-
-
-class OBJECT_PT_hello(bpy.types.Panel):
- bl_label = "Hello World Panel"
- bl_space_type = "PROPERTIES"
- bl_region_type = "WINDOW"
- bl_context = "object"
-
- def draw(self, context):
- layout = self.layout
-
- obj = context.object
-
- row = layout.row()
- row.label(text="Hello world!", icon='WORLD_DATA')
-
- row = layout.row()
- row.label(text="Active object is: " + obj.name)
- row = layout.row()
- row.prop(obj, "name")
-
-
-def register():
- bpy.utils.register_class(OBJECT_PT_hello)
-
-
-def unregister():
- bpy.utils.unregister_class(OBJECT_PT_hello)
-
-
-if __name__ == "__main__":
- register()
Added: trunk/blender/release/scripts/templates/ui_menu.py
===================================================================
--- trunk/blender/release/scripts/templates/ui_menu.py (rev 0)
+++ trunk/blender/release/scripts/templates/ui_menu.py 2011-07-26 07:39:00 UTC (rev 38720)
@@ -0,0 +1,49 @@
+import bpy
+
+
+class CustomMenu(bpy.types.Menu):
+ bl_label = "Custom Menu"
+ bl_idname = "OBJECT_MT_custom_menu"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator("wm.open_mainfile")
+ layout.operator("wm.save_as_mainfile").copy = True
+
+ layout.operator("object.shade_smooth")
+
+ layout.label(text="Hello world!", icon='WORLD_DATA')
+
+ # use an operator enum property to populate a submenu
+ layout.operator_menu_enum("object.select_by_type",
+ property="type",
+ text="Select All by Type...",
+ )
+
+ # call another menu
+ layout.operator("wm.call_menu", text="Unwrap").name = "VIEW3D_MT_uv_map"
+
+
+def draw_item(self, context):
+ layout = self.layout
+ layout.menu(CustomMenu.bl_idname)
+
+
+def register():
+ bpy.utils.register_class(CustomMenu)
+
+ # lets add ourselves to the file menu
+ bpy.types.INFO_HT_header.append(draw_item)
+
+
+def unregister():
+ bpy.utils.unregister_class(CustomMenu)
+
+ bpy.types.INFO_HT_header.remove(draw_item)
+
+if __name__ == "__main__":
+ register()
+
+ # The menu can also be called from scripts
+ bpy.ops.wm.call_menu(name=CustomMenu.bl_idname)
Added: trunk/blender/release/scripts/templates/ui_menu_simple.py
===================================================================
--- trunk/blender/release/scripts/templates/ui_menu_simple.py (rev 0)
+++ trunk/blender/release/scripts/templates/ui_menu_simple.py 2011-07-26 07:39:00 UTC (rev 38720)
@@ -0,0 +1,26 @@
+import bpy
+
+
+class SimpleCustomMenu(bpy.types.Menu):
+ bl_label = "Simple Custom Menu"
+ bl_idname = "OBJECT_MT_simple_custom_menu"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator("wm.open_mainfile")
+ layout.operator("wm.save_as_mainfile")
+
+
+def register():
+ bpy.utils.register_class(SimpleCustomMenu)
+
+
+def unregister():
+ bpy.utils.unregister_class(SimpleCustomMenu)
+
+if __name__ == "__main__":
+ register()
+
+ # The menu can also be called from scripts
+ bpy.ops.wm.call_menu(name=SimpleCustomMenu.bl_idname)
Copied: trunk/blender/release/scripts/templates/ui_panel_simple.py (from rev 38718, trunk/blender/release/scripts/templates/panel_simple.py)
===================================================================
--- trunk/blender/release/scripts/templates/ui_panel_simple.py (rev 0)
+++ trunk/blender/release/scripts/templates/ui_panel_simple.py 2011-07-26 07:39:00 UTC (rev 38720)
@@ -0,0 +1,34 @@
+import bpy
+
+
+class HelloWorldPanel(bpy.types.Panel):
+ bl_label = "Hello World Panel"
+ bl_idname = "OBJECT_PT_hello"
+ bl_space_type = "PROPERTIES"
+ bl_region_type = "WINDOW"
+ bl_context = "object"
+
+ def draw(self, context):
+ layout = self.layout
+
+ obj = context.object
+
+ row = layout.row()
+ row.label(text="Hello world!", icon='WORLD_DATA')
+
+ row = layout.row()
+ row.label(text="Active object is: " + obj.name)
+ row = layout.row()
+ row.prop(obj, "name")
+
+
+def register():
+ bpy.utils.register_class(HelloWorldPanel)
+
+
+def unregister():
+ bpy.utils.unregister_class(HelloWorldPanel)
+
+
+if __name__ == "__main__":
+ register()
Modified: trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
--- trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c 2011-07-26 06:10:05 UTC (rev 38719)
+++ trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c 2011-07-26 07:39:00 UTC (rev 38720)
@@ -136,7 +136,6 @@
struct Scene *RE_GetScene(struct Render *re){return (struct Scene *) NULL;}
void RE_Database_Free(struct Render *re){}
void RE_FreeRender(struct Render *re){}
-void RE_shade_external(struct Render *re, struct ShadeInput *shi, struct ShadeResult *shr){}
void RE_DataBase_GetView(struct Render *re, float mat[][4]){}
int externtex(struct MTex *mtex, float *vec, float *tin, float *tr, float *tg, float *tb, float *ta){return 0;}
float texture_value_blend(float tex, float out, float fact, float facg, int blendtype, int flip){return 0.0f;}
More information about the Bf-blender-cvs
mailing list