[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24136] trunk/blender: - 'id_data' attribute for py rna api, so you can get the Mesh from a face, Armature from a bone, etc.

Campbell Barton ideasman42 at gmail.com
Wed Oct 28 12:31:24 CET 2009


Revision: 24136
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24136
Author:   campbellbarton
Date:     2009-10-28 12:31:24 +0100 (Wed, 28 Oct 2009)

Log Message:
-----------
- 'id_data' attribute for py rna api, so you can get the Mesh from a face, Armature from a bone, etc.
- fixed crash when adjusting added objects settngs from the toolbar.

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/bpy_ops.py
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/release/scripts/modules/bpy_ops.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_ops.py	2009-10-28 10:16:49 UTC (rev 24135)
+++ trunk/blender/release/scripts/modules/bpy_ops.py	2009-10-28 11:31:24 UTC (rev 24136)
@@ -364,6 +364,7 @@
 	__label__ = "Edit Documentation"
 	__props__ = [doc_id, doc_new]
 	
+	
 	def _send_xmlrpc(self, data_dict):		
 		print("sending data:", data_dict)
 		

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2009-10-28 10:16:49 UTC (rev 24135)
+++ trunk/blender/source/blender/editors/object/object_add.c	2009-10-28 11:31:24 UTC (rev 24136)
@@ -123,10 +123,8 @@
 		}
 		
 		if (U.flag & USER_ADD_VIEWALIGNED) {
-			ARegion *ar= CTX_wm_region(C);
-			if(ar) {
-				RegionView3D *rv3d= ar->regiondata;
-				
+			RegionView3D *rv3d = CTX_wm_region_view3d(C);
+			if(rv3d) {
 				rv3d->viewquat[0]= -rv3d->viewquat[0];
 				QuatToEul(rv3d->viewquat, ob->rot);
 				rv3d->viewquat[0]= -rv3d->viewquat[0];

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c	2009-10-28 10:16:49 UTC (rev 24135)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2009-10-28 11:31:24 UTC (rev 24136)
@@ -1178,7 +1178,6 @@
 	return PyBool_FromLong(hidden);
 }
 
-
 static PyObject *pyrna_struct_dir(BPy_StructRNA * self)
 {
 	PyObject *ret, *dict;
@@ -1263,6 +1262,13 @@
 		BLI_freelistN(&lb);
 	}
 	
+	/* Hard coded names */
+	{
+		pystring = PyUnicode_FromString("id_data");
+		PyList_Append(ret, pystring);
+		Py_DECREF(pystring);
+	}
+
 	return ret;
 }
 
@@ -1319,6 +1325,16 @@
 
 		BLI_freelistN(&newlb);
 	}
+	else if (strcmp(name, "id_data")==0) { /* XXX - hard coded */
+		if(self->ptr.id.data) {
+			PointerRNA id_ptr;
+			RNA_id_pointer_create((ID *)self->ptr.id.data, &id_ptr);
+			return pyrna_struct_CreatePyObject(&id_ptr);
+		}
+		else {
+			Py_RETURN_NONE;
+		}
+	}
 	else {
 		PyErr_Format( PyExc_AttributeError, "StructRNA - Attribute \"%.200s\" not found", name);
 		ret = NULL;





More information about the Bf-blender-cvs mailing list