[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24063] trunk/blender/source/blender: Bugfixes:

Joshua Leung aligorith at gmail.com
Fri Oct 23 01:23:09 CEST 2009


Revision: 24063
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24063
Author:   aligorith
Date:     2009-10-23 01:23:09 +0200 (Fri, 23 Oct 2009)

Log Message:
-----------
Bugfixes:

* The python 'math' library is now included in the py-namespace used to evaluate button expressions. So it is now possible to do 'radians(somevalue)' to get a rotation value that Blender can understand...

* Shapekey path getting function now uses the appropriate wrapper for grabbing the pointer to the ID block for the ShapeKey

* Made the Graph Editor's minimum zoom size finer...

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_graph/space_graph.c
    trunk/blender/source/blender/makesrna/intern/rna_key.c
    trunk/blender/source/blender/python/intern/bpy_interface.c

Modified: trunk/blender/source/blender/editors/space_graph/space_graph.c
===================================================================
--- trunk/blender/source/blender/editors/space_graph/space_graph.c	2009-10-22 23:22:05 UTC (rev 24062)
+++ trunk/blender/source/blender/editors/space_graph/space_graph.c	2009-10-22 23:23:09 UTC (rev 24063)
@@ -151,8 +151,8 @@
 	
 	ar->v2d.cur= ar->v2d.tot;
 	
-	ar->v2d.min[0]= 0.01f;
-	ar->v2d.min[1]= 0.01f;
+	ar->v2d.min[0]= 0.001f;
+	ar->v2d.min[1]= 0.001f;
 	
 	ar->v2d.max[0]= MAXFRAMEF;
 	ar->v2d.max[1]= 50000.0f;

Modified: trunk/blender/source/blender/makesrna/intern/rna_key.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_key.c	2009-10-22 23:22:05 UTC (rev 24062)
+++ trunk/blender/source/blender/makesrna/intern/rna_key.c	2009-10-22 23:23:09 UTC (rev 24063)
@@ -50,6 +50,17 @@
 #include "WM_api.h"
 #include "WM_types.h"
 
+static Key *rna_ShapeKey_find_key(ID *id)
+{
+	switch(GS(id->name)) {
+		case ID_CU: return ((Curve*)id)->key;
+		case ID_KE: return (Key*)id;
+		case ID_LT: return ((Lattice*)id)->key;
+		case ID_ME: return ((Mesh*)id)->key;
+		default: return NULL;
+	}
+}
+
 void rna_ShapeKey_name_set(PointerRNA *ptr, const char *value)
 {
 	KeyBlock *kb= ptr->data;
@@ -63,7 +74,7 @@
 	
 	/* make sure the name is truly unique */
 	if (ptr->id.data) {
-		Key *key= ptr->id.data;
+		Key *key= rna_ShapeKey_find_key(ptr->id.data);
 		BLI_uniquename(&key->block, kb, "Key", '.', offsetof(KeyBlock, name), 32);
 	}
 	
@@ -86,17 +97,6 @@
 	*max= data->slidermax;
 }
 
-static Key *rna_ShapeKey_find_key(ID *id)
-{
-	switch(GS(id->name)) {
-		case ID_CU: return ((Curve*)id)->key;
-		case ID_KE: return (Key*)id;
-		case ID_LT: return ((Lattice*)id)->key;
-		case ID_ME: return ((Mesh*)id)->key;
-		default: return NULL;
-	}
-}
-
 static PointerRNA rna_ShapeKey_relative_key_get(PointerRNA *ptr)
 {
 	Key *key= rna_ShapeKey_find_key(ptr->id.data);

Modified: trunk/blender/source/blender/python/intern/bpy_interface.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_interface.c	2009-10-22 23:22:05 UTC (rev 24062)
+++ trunk/blender/source/blender/python/intern/bpy_interface.c	2009-10-22 23:23:09 UTC (rev 24063)
@@ -884,7 +884,7 @@
 int BPY_button_eval(bContext *C, char *expr, double *value)
 {
 	PyGILState_STATE gilstate;
-	PyObject *dict, *retval;
+	PyObject *dict, *mod, *retval;
 	int error_ret = 0;
 	
 	if (!value || !expr || expr[0]=='\0') return -1;
@@ -892,6 +892,20 @@
 	bpy_context_set(C, &gilstate);
 	
 	dict= CreateGlobalDictionary(C);
+	
+	/* import some modules: builtins,math*/
+	PyDict_SetItemString(dict, "__builtins__", PyEval_GetBuiltins());
+
+	mod = PyImport_ImportModule("math");
+	if (mod) {
+		PyDict_Merge(dict, PyModule_GetDict(mod), 0); /* 0 - dont overwrite existing values */
+		
+		/* Only keep for backwards compat! - just import all math into root, they are standard */
+		PyDict_SetItemString(dict, "math", mod);
+		PyDict_SetItemString(dict, "m", mod);
+		Py_DECREF(mod);
+	} 
+	
 	retval = PyRun_String(expr, Py_eval_input, dict, dict);
 	
 	if (retval == NULL) {





More information about the Bf-blender-cvs mailing list