[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25010] trunk/blender: - new objects added from the rna api defaulted to quat rotation, not even using an identity quat.

Campbell Barton ideasman42 at gmail.com
Mon Nov 30 00:14:41 CET 2009


Revision: 25010
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25010
Author:   campbellbarton
Date:     2009-11-30 00:14:41 +0100 (Mon, 30 Nov 2009)

Log Message:
-----------
- new objects added from the rna api defaulted to quat rotation, not even using an identity quat.
- making meshes in python isnt nice at the moment, added a helper function.
    mesh.from_pydata(verts, edges, faces)

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/bpy_types.py
    trunk/blender/source/blender/blenkernel/intern/object.c

Modified: trunk/blender/release/scripts/modules/bpy_types.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_types.py	2009-11-29 22:42:33 UTC (rev 25009)
+++ trunk/blender/release/scripts/modules/bpy_types.py	2009-11-29 23:14:41 UTC (rev 25010)
@@ -128,6 +128,32 @@
     return i2,i1
 
 class Mesh(bpy_types.ID):
+    
+    def from_pydata(self, verts, edges, faces):
+        '''
+        Make a mesh from a list of verts/edges/faces
+        Until we have a nicer way to make geometry, use this.
+        '''
+        self.add_geometry(len(verts), len(edges), len(faces))
+        
+        verts_flat = [f for v in verts for f in v]
+        self.verts.foreach_set("co", verts_flat)
+        del verts_flat
+        
+        edges_flat = [i for e in edges for i in e]
+        self.edges.foreach_set("verts", edges_flat)
+        del edges_flat
+        
+        def treat_face(f):
+            if len(f) == 3:
+                return f[0], f[1], f[2], 0
+            elif f[3] == 0:
+                return f[3], f[0], f[1], f[2]
+            return f
+        
+        faces_flat = [v for f in faces for v in treat_face(f)]
+        self.faces.foreach_set("verts_raw", faces_flat)
+        del faces_flat
 
     @property
     def edge_keys(self):

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2009-11-29 22:42:33 UTC (rev 25009)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2009-11-29 23:14:41 UTC (rev 25010)
@@ -963,6 +963,7 @@
 	/* default object vars */
 	ob->type= type;
 	/* ob->transflag= OB_QUAT; */
+	ob->rotmode= ROT_MODE_EUL;
 
 #if 0 /* not used yet */
 	unit_qt(ob->quat);





More information about the Bf-blender-cvs mailing list