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. _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs