forked from bartvdbraak/blender
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.
This commit is contained in:
parent
71260b6603
commit
2e96728843
@ -2506,10 +2506,10 @@ static PyObject *Material_setTexture( BPy_Material * self, PyObject * args )
|
||||
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 );
|
||||
|
||||
|
@ -4239,7 +4239,7 @@ static int MFace_setTransp( BPy_MFace *self, PyObject *value )
|
||||
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 @@ static PyObject *M_Mesh_FaceTranspModesDict( void )
|
||||
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;
|
||||
|
@ -85,6 +85,7 @@ done once.
|
||||
- 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.
|
||||
|
@ -998,6 +998,7 @@ PyMethodDef KX_GameObject::Methods[] = {
|
||||
{"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 @@ bool KX_GameObject::ConvertPythonVectorArgs(PyObject* args,
|
||||
}
|
||||
*/
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
|
@ -801,6 +801,7 @@ public:
|
||||
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);
|
||||
|
@ -30,6 +30,11 @@ class KX_GameObject:
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user