[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17201] trunk/blender/source: face transp option CLIP wasnt added to the py api.

Campbell Barton ideasman42 at gmail.com
Mon Oct 27 16:47:58 CET 2008


Revision: 17201
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17201
Author:   campbellbarton
Date:     2008-10-27 16:47:58 +0100 (Mon, 27 Oct 2008)

Log Message:
-----------
face transp option CLIP wasnt added to the py api.
added gameObject.replaceMesh(meshname)  - needed this for an automatically generated scene where 100's of objects would have needed logic bricks automatically added. Quicker to run replace mesh on all of them from 1 script.

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/Material.c
    trunk/blender/source/blender/python/api2_2x/Mesh.c
    trunk/blender/source/blender/python/api2_2x/doc/Mesh.py
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.h
    trunk/blender/source/gameengine/PyDoc/KX_GameObject.py

Modified: trunk/blender/source/blender/python/api2_2x/Material.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Material.c	2008-10-27 15:22:55 UTC (rev 17200)
+++ trunk/blender/source/blender/python/api2_2x/Material.c	2008-10-27 15:47:58 UTC (rev 17201)
@@ -2506,10 +2506,10 @@
 	if( !PyArg_ParseTuple( args, "iO!|ii", &texnum, &Texture_Type, &pytex,
 			       &texco, &mapto ) )
 		return EXPP_ReturnPyObjError( PyExc_TypeError,
-					      "expected int in [0,9] and Texture" );
+					      "expected int in [0,17] and Texture" );
 	if( ( texnum < 0 ) || ( texnum >= MAX_MTEX ) )
 		return EXPP_ReturnPyObjError( PyExc_TypeError,
-					      "expected int in [0,9] and Texture" );
+					      "expected int in [0,17] and Texture" );
 
 	bltex = Texture_FromPyObject( pytex );
 

Modified: trunk/blender/source/blender/python/api2_2x/Mesh.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Mesh.c	2008-10-27 15:22:55 UTC (rev 17200)
+++ trunk/blender/source/blender/python/api2_2x/Mesh.c	2008-10-27 15:47:58 UTC (rev 17201)
@@ -4239,7 +4239,7 @@
 		return -1;
 
 	return EXPP_setIValueRange( value,
-			&self->mesh->mtface[self->index].transp, TF_SOLID, TF_SUB, 'b' );
+			&self->mesh->mtface[self->index].transp, TF_SOLID, TF_CLIP, 'b' );
 }
 
 /*
@@ -8743,6 +8743,7 @@
 		PyConstant_Insert( d, "ADD", PyInt_FromLong( TF_ADD ) );
 		PyConstant_Insert( d, "ALPHA", PyInt_FromLong( TF_ALPHA ) );
 		PyConstant_Insert( d, "SUB", PyInt_FromLong( TF_SUB ) );
+		PyConstant_Insert( d, "CLIP", PyInt_FromLong( TF_CLIP ) );
 	}
 
 	return FTM;

Modified: trunk/blender/source/blender/python/api2_2x/doc/Mesh.py
===================================================================
--- trunk/blender/source/blender/python/api2_2x/doc/Mesh.py	2008-10-27 15:22:55 UTC (rev 17200)
+++ trunk/blender/source/blender/python/api2_2x/doc/Mesh.py	2008-10-27 15:47:58 UTC (rev 17201)
@@ -85,6 +85,7 @@
 		- ADD - add to background (halo).
 		- ALPHA - draw with transparency.
 		- SUB - subtract from background.
+		- CLIP - Clipped alpha.
 @var EdgeFlags: The available edge flags.
 		- SELECT - selected (B{deprecated}).  Use edge.sel attribute instead.
 		- EDGEDRAW - edge is drawn out of edition mode.

Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2008-10-27 15:22:55 UTC (rev 17200)
+++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2008-10-27 15:47:58 UTC (rev 17201)
@@ -998,6 +998,7 @@
 	{"getMesh", (PyCFunction)KX_GameObject::sPyGetMesh,METH_VARARGS},
 	{"getPhysicsId", (PyCFunction)KX_GameObject::sPyGetPhysicsId,METH_NOARGS},
 	{"getPropertyNames", (PyCFunction)KX_GameObject::sPyGetPropertyNames,METH_NOARGS},
+	{"replaceMesh",(PyCFunction) KX_GameObject::sPyReplaceMesh, METH_O},
 	{"endObject",(PyCFunction) KX_GameObject::sPyEndObject, METH_NOARGS},
 	KX_PYMETHODTABLE(KX_GameObject, rayCastTo),
 	KX_PYMETHODTABLE(KX_GameObject, rayCast),
@@ -1024,6 +1025,28 @@
 }
 */
 
+PyObject* KX_GameObject::PyReplaceMesh(PyObject* self, PyObject* value)
+{
+	KX_Scene *scene = PHY_GetActiveScene();
+	char* meshname;
+	void* mesh_pt;
+
+	meshname = PyString_AsString(value);
+	if (meshname==NULL) {
+		PyErr_SetString(PyExc_ValueError, "Expected a mesh name");
+		return NULL;
+	}
+	mesh_pt = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname));
+	
+	if (mesh_pt==NULL) {
+		PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist");
+		return NULL;
+	}
+	scene->ReplaceMesh(this, (class RAS_MeshObject*)mesh_pt);
+	
+	Py_RETURN_NONE;
+}
+
 PyObject* KX_GameObject::PyEndObject(PyObject* self)
 {
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_GameObject.h	2008-10-27 15:22:55 UTC (rev 17200)
+++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.h	2008-10-27 15:47:58 UTC (rev 17201)
@@ -801,6 +801,7 @@
 	KX_PYMETHOD_VARARGS(KX_GameObject,GetMesh);
 	KX_PYMETHOD_NOARGS(KX_GameObject,GetPhysicsId);
 	KX_PYMETHOD_NOARGS(KX_GameObject,GetPropertyNames);
+	KX_PYMETHOD_O(KX_GameObject,ReplaceMesh);
 	KX_PYMETHOD_NOARGS(KX_GameObject,EndObject);
 	KX_PYMETHOD_DOC(KX_GameObject,rayCastTo);
 	KX_PYMETHOD_DOC(KX_GameObject,rayCast);

Modified: trunk/blender/source/gameengine/PyDoc/KX_GameObject.py
===================================================================
--- trunk/blender/source/gameengine/PyDoc/KX_GameObject.py	2008-10-27 15:22:55 UTC (rev 17200)
+++ trunk/blender/source/gameengine/PyDoc/KX_GameObject.py	2008-10-27 15:47:58 UTC (rev 17201)
@@ -30,6 +30,11 @@
 		Delete this object, can be used inpace of the EndObject Actuator.
 		The actual removal of the object from the scene is delayed.
 		"""	
+	def replaceMesh(mesh_name):
+		"""
+		Replace the mesh of this object with a new mesh. This works the same was as the actuator.
+		@type mesh_name: string
+		"""	
 	def getVisible():
 		"""
 		Gets the game object's visible flag.





More information about the Bf-blender-cvs mailing list