[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25858] trunk/blender: RNA/Py API

Campbell Barton ideasman42 at gmail.com
Sun Jan 10 00:44:01 CET 2010


Revision: 25858
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25858
Author:   campbellbarton
Date:     2010-01-10 00:44:01 +0100 (Sun, 10 Jan 2010)

Log Message:
-----------
RNA/Py API
change how data is added. eg.
 bpy.data.add_mesh(name) --> bpy.data.meshes.new(name)
 bpy.data.remove_lamp(lamp) --> bpy.data.lamps.remove(lamp)


image and texture stil use add_* funcs

Modified Paths:
--------------
    trunk/blender/release/scripts/io/engine_render_pov.py
    trunk/blender/release/scripts/io/export_3ds.py
    trunk/blender/release/scripts/io/export_fbx.py
    trunk/blender/release/scripts/io/export_obj.py
    trunk/blender/release/scripts/io/export_ply.py
    trunk/blender/release/scripts/io/export_x3d.py
    trunk/blender/release/scripts/io/import_scene_3ds.py
    trunk/blender/release/scripts/io/import_scene_obj.py
    trunk/blender/release/scripts/modules/retopo.py
    trunk/blender/release/scripts/modules/rigify/__init__.py
    trunk/blender/release/scripts/op/add_mesh_torus.py
    trunk/blender/release/scripts/op/object.py
    trunk/blender/release/scripts/ui/space_nla.py
    trunk/blender/release/scripts/ui/space_view3d_toolbar.py
    trunk/blender/source/blender/editors/interface/interface_regions.c
    trunk/blender/source/blender/makesrna/intern/rna_internal.h
    trunk/blender/source/blender/makesrna/intern/rna_main.c
    trunk/blender/source/blender/makesrna/intern/rna_main_api.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/release/scripts/io/engine_render_pov.py
===================================================================
--- trunk/blender/release/scripts/io/engine_render_pov.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/engine_render_pov.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -537,7 +537,7 @@
             writeMatrix(matrix)
             file.write('}\n')
 
-            bpy.data.remove_mesh(me)
+            bpy.data.meshes.remove(me)
 
     def exportWorld(world):
         if not world:

Modified: trunk/blender/release/scripts/io/export_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/export_3ds.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/export_3ds.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -1061,7 +1061,7 @@
         kfdata.add_subchunk(make_kf_obj_node(ob, name_to_id))
         '''
 # 		if not blender_mesh.users:
-        bpy.data.remove_mesh(blender_mesh)
+        bpy.data.meshes.remove(blender_mesh)
 # 		blender_mesh.verts = None
 
         i+=i

Modified: trunk/blender/release/scripts/io/export_fbx.py
===================================================================
--- trunk/blender/release/scripts/io/export_fbx.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/export_fbx.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -2989,7 +2989,7 @@
 
     # Clear mesh data Only when writing with modifiers applied
     for me in meshes_to_clear:
-        bpy.data.remove_mesh(me)
+        bpy.data.meshes.remove(me)
 # 		me.verts = None
 
     # --------------------------- Footer
@@ -3391,8 +3391,7 @@
 
 
     def poll(self, context):
-        print("Poll")
-        return context.active_object != None
+        return context.active_object
 
     def execute(self, context):
         if not self.properties.path:

Modified: trunk/blender/release/scripts/io/export_obj.py
===================================================================
--- trunk/blender/release/scripts/io/export_obj.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/export_obj.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -447,7 +447,7 @@
                         break
 
                 if has_quads:
-                    newob = bpy.data.add_object('MESH', 'temp_object')
+                    newob = bpy.data.objects.new('temp_object', 'MESH')
                     newob.data = me
                     # if we forget to set Object.data - crash
                     scene.objects.link(newob)
@@ -468,7 +468,7 @@
             if not (len(face_index_pairs)+len(edges)+len(me.verts)): # Make sure there is somthing to write
 
                 # clean up
-                bpy.data.remove_mesh(me)
+                bpy.data.meshes.remove(me)
 
                 continue # dont bother with this mesh.
 
@@ -510,24 +510,12 @@
                 # XXX update
                 tface = me.active_uv_texture.data
 
-                # exception only raised if Python 2.3 or lower...
-                try:
-                    face_index_pairs.sort(key = lambda a: (a[0].material_index, tface[a[1]].image, a[0].smooth))
-                except:
-                    face_index_pairs.sort(lambda a,b: cmp((a[0].material_index, tface[a[1]].image, a[0].smooth),
-                                                              (b[0].material_index, tface[b[1]].image, b[0].smooth)))
+                face_index_pairs.sort(key=lambda a: (a[0].material_index, tface[a[1]].image, a[0].smooth))
             elif len(materials) > 1:
-                try:
-                    face_index_pairs.sort(key = lambda a: (a[0].material_index, a[0].smooth))
-                except:
-                    face_index_pairs.sort(lambda a,b: cmp((a[0].material_index, a[0].smooth),
-                                                              (b[0].material_index, b[0].smooth)))
+                face_index_pairs.sort(key = lambda a: (a[0].material_index, a[0].smooth))
             else:
                 # no materials
-                try:
-                    face_index_pairs.sort(key = lambda a: a[0].smooth)
-                except:
-                    face_index_pairs.sort(lambda a,b: cmp(a[0].smooth, b[0].smooth))
+                face_index_pairs.sort(key = lambda a: a[0].smooth)
 #			if EXPORT_KEEP_VERT_ORDER:
 #				pass
 #			elif faceuv:
@@ -609,7 +597,8 @@
             if EXPORT_NORMALS:
                 for f in faces:
                     if f.smooth:
-                        for v in f:
+                        for vIdx in f.verts:
+                            v = me.verts[vIdx]
                             noKey = veckey3d(v.normal)
                             if noKey not in globalNormals:
                                 globalNormals[noKey] = totno
@@ -779,7 +768,7 @@
                 totuvco += uv_unique_count
 
             # clean up
-            bpy.data.remove_mesh(me)
+            bpy.data.meshes.remove(me)
 
         if ob_main.dupli_type != 'NONE':
             ob_main.free_dupli_list()

Modified: trunk/blender/release/scripts/io/export_ply.py
===================================================================
--- trunk/blender/release/scripts/io/export_ply.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/export_ply.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -254,7 +254,7 @@
     print("writing", filename, "done")
 
     if EXPORT_APPLY_MODIFIERS:
-        bpy.data.remove_mesh(mesh)
+        bpy.data.meshes.remove(mesh)
 
     # XXX
     """

Modified: trunk/blender/release/scripts/io/export_x3d.py
===================================================================
--- trunk/blender/release/scripts/io/export_x3d.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/export_x3d.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -879,7 +879,7 @@
 
                     # free mesh created with create_mesh()
                     if me != ob.data:
-                        bpy.data.remove_mesh(me)
+                        bpy.data.meshes.remove(me)
 
                 elif objType == "LAMP":
                 # elif objType == "Lamp":

Modified: trunk/blender/release/scripts/io/import_scene_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/import_scene_3ds.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/import_scene_3ds.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -410,8 +410,7 @@
             myVertMapping = dict( [ (ii, i) for i, ii in enumerate(vertsToUse) ] )
 
             tempName= '%s_%s' % (contextObName, matName) # matName may be None.
-            bmesh = bpy.data.add_mesh(tempName)
-# 			bmesh = bpy.data.meshes.new(tempName)
+            bmesh = bpy.data.meshes.new(tempName)
 
             if matName == None:
                 img = None
@@ -465,7 +464,7 @@
 # 								targetFace.image = img
 
             # bmesh.transform(contextMatrix)
-            ob = bpy.data.add_object("MESH", tempName)
+            ob = bpy.data.objects.new(tempName, 'MESH')
             ob.data = bmesh
             SCN.objects.link(ob)
 # 			ob = SCN_OBJECTS.new(bmesh, tempName)
@@ -766,8 +765,8 @@
             x,y,z = struct.unpack('<3f', temp_data)
             new_chunk.bytes_read += STRUCT_SIZE_3FLOAT
 
-            ob = bpy.data.add_object("LAMP", "Lamp")
-            ob.data = bpy.data.add_lamp("Lamp")
+            ob = bpy.data.objects.new("Lamp", 'LAMP')
+            ob.data = bpy.data.lamps.new("Lamp")
             SCN.objects.link(ob)
 
             contextLamp[1]= ob.data

Modified: trunk/blender/release/scripts/io/import_scene_obj.py
===================================================================
--- trunk/blender/release/scripts/io/import_scene_obj.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/io/import_scene_obj.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -712,8 +712,7 @@
     for name, index in list(material_mapping.items()):
         materials[index]= unique_materials[name]
 
-    me= bpy.data.add_mesh(dataname)
-# 	me= bpy.data.meshes.new(dataname)
+    me= bpy.data.meshes.new(dataname)
 
     # make sure the list isnt too big
     for material in materials[0:16]:
@@ -864,7 +863,7 @@
     me.update()
 # 	me.calcNormals()
 
-    ob= bpy.data.add_object("MESH", "Mesh")
+    ob= bpy.data.objects.new("Mesh", 'MESH')
     ob.data= me
     scn.objects.link(ob)
 # 	ob= scn.objects.new(me)

Modified: trunk/blender/release/scripts/modules/retopo.py
===================================================================
--- trunk/blender/release/scripts/modules/retopo.py	2010-01-09 22:28:05 UTC (rev 25857)
+++ trunk/blender/release/scripts/modules/retopo.py	2010-01-09 23:44:01 UTC (rev 25858)
@@ -318,7 +318,22 @@
         else:
             return b, a
     
-    def test_join(p1a, p1b, p2a, p2b, length_average):
+    #def test_join(p1a, p1b, p2a, p2b, length_average):
+    def test_join(s1, s2, dir1, dir2, length_average):
+        if dir1 is False:
+            p1a = s1.points[0]
+            p1b = s1.points[1]
+        else:
+            p1a = s1.points[-1]
+            p1b = s1.points[-2]
+
+        if dir2 is False:
+            p2a = s2.points[0]
+            p2b = s2.points[1]
+        else:
+            p2a = s2.points[-1]
+            p2b = s2.points[-2]
+        
         # compare length between tips
         if (p1a - p2a).length > (length_average / EPS_SPLINE_DIV):
             return False
@@ -346,7 +361,7 @@
                 if s1 is s2:
                     continue
 
-                length_average = (s1.length + s2.length) / 2.0
+                length_average = min(s1.length, s2.length)
 
                 key2a = s2.points[0].toTuple(HASH_PREC)
                 key2b = s2.points[-1].toTuple(HASH_PREC)
@@ -355,8 +370,7 @@
                 key_pair = sort_pair(key1a, key2a)
                 if key_pair not in comparisons:
                     comparisons.add(key_pair)                
-                    if test_join(s1.points[0], s1.points[1], s2.points[0], s2.points[1], length_average) or \
-                            test_join(s1.points[1], s1.points[2], s2.points[1], s2.points[2], length_average):
+                    if test_join(s1, s2, False, False, length_average):
                         s1.points[:0] = reversed(s2.points)
                         s1.bb += s2.bb
                         s1.calc_length()
@@ -367,8 +381,7 @@

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list