forked from bartvdbraak/blender
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r21908:22075
This commit is contained in:
commit
c371f49d9a
@ -65,8 +65,7 @@ struct CollisionTree;
|
||||
#elif defined (__sun) || defined (__sun__)
|
||||
# define DO_INLINE
|
||||
#else
|
||||
# define DO_INLINE inline
|
||||
# define LINUX
|
||||
# define DO_INLINE static inline
|
||||
#endif
|
||||
|
||||
#define CLOTH_MAX_THREAD 2
|
||||
|
@ -2134,7 +2134,10 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
|
||||
glRects(xco, yco-ysize, xco+width, yco);
|
||||
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
|
||||
|
||||
uiDefIDPoinBut(block, test_meshpoin_but, ID_ME, 1, "ME:", xco+40, yco-44, (width-80), 19, &(eoa->me), "replace the existing mesh with this one");
|
||||
uiDefIDPoinBut(block, test_meshpoin_but, ID_ME, 1, "ME:", xco+40, yco-44, (width-80)/2, 19, &(eoa->me), "replace the existing, when left blank 'Phys' will remake the existing physics mesh");
|
||||
|
||||
uiDefButBitS(block, TOGN, ACT_EDOB_REPLACE_MESH_NOGFX, 0, "Gfx", xco+40 + (width-80)/2, yco-44, (width-80)/4, 19, &eoa->flag, 0, 0, 0, 0, "Replace the display mesh");
|
||||
uiDefButBitS(block, TOG, ACT_EDOB_REPLACE_MESH_PHYS, 0, "Phys", xco+40 + (width-80)/2 +(width-80)/4, yco-44, (width-80)/4, 19, &eoa->flag, 0, 0, 0, 0, "Replace the physics mesh (triangle bounds only. compound shapes not supported)");
|
||||
}
|
||||
else if(eoa->type==ACT_EDOB_TRACK_TO) {
|
||||
ysize= 48;
|
||||
|
@ -405,6 +405,10 @@ typedef struct FreeCamera {
|
||||
/* editObjectActuator->flag */
|
||||
#define ACT_TRACK_3D 1
|
||||
|
||||
/* editObjectActuator->flag for replace mesh actuator */
|
||||
#define ACT_EDOB_REPLACE_MESH_NOGFX 2 /* use for replace mesh actuator */
|
||||
#define ACT_EDOB_REPLACE_MESH_PHYS 4
|
||||
|
||||
/* SceneActuator->type */
|
||||
#define ACT_SCENE_RESTART 0
|
||||
#define ACT_SCENE_SET 1
|
||||
|
@ -404,7 +404,6 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, int alw
|
||||
{
|
||||
// convert and add scene
|
||||
sceneconverter->ConvertScene(
|
||||
startscenename,
|
||||
startscene,
|
||||
dictionaryobject,
|
||||
keyboarddevice,
|
||||
@ -717,7 +716,6 @@ extern "C" void StartKetsjiShellSimulation(struct wmWindow *win,
|
||||
{
|
||||
// convert and add scene
|
||||
sceneconverter->ConvertScene(
|
||||
startscenename,
|
||||
startscene,
|
||||
dictionaryobject,
|
||||
keyboarddevice,
|
||||
|
@ -325,7 +325,6 @@ bool ConvertMaterial(
|
||||
MFace* mface,
|
||||
MCol* mmcol,
|
||||
int lightlayer,
|
||||
Object* blenderobj,
|
||||
MTF_localLayer *layers,
|
||||
bool glslmat)
|
||||
{
|
||||
@ -751,11 +750,11 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
|
||||
// Determine if we need to make a skinned mesh
|
||||
if (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj))
|
||||
{
|
||||
meshobj = new BL_SkinMeshObject(mesh, lightlayer);
|
||||
meshobj = new BL_SkinMeshObject(mesh);
|
||||
skinMesh = true;
|
||||
}
|
||||
else
|
||||
meshobj = new RAS_MeshObject(mesh, lightlayer);
|
||||
meshobj = new RAS_MeshObject(mesh);
|
||||
|
||||
// Extract avaiable layers
|
||||
MTF_localLayer *layers = new MTF_localLayer[MAX_MTFACE];
|
||||
@ -860,7 +859,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools*
|
||||
if (!bl_mat)
|
||||
bl_mat = new BL_Material();
|
||||
ConvertMaterial(bl_mat, ma, tface, tfaceName, mface, mcol,
|
||||
lightlayer, blenderobj, layers, converter->GetGLSLMaterials());
|
||||
lightlayer, layers, converter->GetGLSLMaterials());
|
||||
|
||||
visible = ((bl_mat->ras_mode & POLY_VIS)!=0);
|
||||
collider = ((bl_mat->ras_mode & COLLIDER)!=0);
|
||||
@ -1686,8 +1685,7 @@ static KX_GameObject *gameobject_from_blenderobject(
|
||||
Object *ob,
|
||||
KX_Scene *kxscene,
|
||||
RAS_IRenderTools *rendertools,
|
||||
KX_BlenderSceneConverter *converter,
|
||||
Scene *blenderscene)
|
||||
KX_BlenderSceneConverter *converter)
|
||||
{
|
||||
KX_GameObject *gameobj = NULL;
|
||||
|
||||
@ -1747,7 +1745,7 @@ static KX_GameObject *gameobject_from_blenderobject(
|
||||
|
||||
if (bHasModifier) {
|
||||
BL_ModifierDeformer *dcont = new BL_ModifierDeformer((BL_DeformableGameObject *)gameobj,
|
||||
blenderscene, ob, (BL_SkinMeshObject *)meshobj);
|
||||
kxscene->GetBlenderScene(), ob, (BL_SkinMeshObject *)meshobj);
|
||||
((BL_DeformableGameObject*)gameobj)->SetDeformer(dcont);
|
||||
if (bHasShapeKey && bHasArmature)
|
||||
dcont->LoadShapeDrivers(ob->parent);
|
||||
@ -1786,7 +1784,7 @@ static KX_GameObject *gameobject_from_blenderobject(
|
||||
kxscene,
|
||||
KX_Scene::m_callbacks,
|
||||
ob,
|
||||
blenderscene // handle
|
||||
kxscene->GetBlenderScene() // handle
|
||||
);
|
||||
/* Get the current pose from the armature object and apply it as the rest pose */
|
||||
break;
|
||||
@ -1900,7 +1898,6 @@ KX_GameObject* getGameOb(STR_String busc,CListValue* sumolist){
|
||||
|
||||
// convert blender objects into ketsji gameobjects
|
||||
void BL_ConvertBlenderObjects(struct Main* maggie,
|
||||
const STR_String& scenename,
|
||||
KX_Scene* kxscene,
|
||||
KX_KetsjiEngine* ketsjiEngine,
|
||||
e_PhysicsEngine physics_engine,
|
||||
@ -1913,7 +1910,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
|
||||
)
|
||||
{
|
||||
|
||||
Scene *blenderscene = converter->GetBlenderSceneForName(scenename);
|
||||
Scene *blenderscene = kxscene->GetBlenderScene();
|
||||
// for SETLOOPER
|
||||
Scene *sce;
|
||||
Base *base;
|
||||
@ -2005,8 +2002,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
|
||||
base->object,
|
||||
kxscene,
|
||||
rendertools,
|
||||
converter,
|
||||
blenderscene);
|
||||
converter);
|
||||
|
||||
bool isInActiveLayer = (blenderobject->lay & activeLayerBitInfo) !=0;
|
||||
bool addobj=true;
|
||||
@ -2195,8 +2191,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
|
||||
blenderobject,
|
||||
kxscene,
|
||||
rendertools,
|
||||
converter,
|
||||
blenderscene);
|
||||
converter);
|
||||
|
||||
// this code is copied from above except that
|
||||
// object from groups are never in active layer
|
||||
|
@ -37,7 +37,6 @@
|
||||
class RAS_MeshObject* BL_ConvertMesh(struct Mesh* mesh,struct Object* lightobj,class RAS_IRenderTools* rendertools,class KX_Scene* scene, class KX_BlenderSceneConverter *converter);
|
||||
|
||||
void BL_ConvertBlenderObjects(struct Main* maggie,
|
||||
const STR_String& scenename,
|
||||
class KX_Scene* kxscene,
|
||||
class KX_KetsjiEngine* ketsjiEngine,
|
||||
e_PhysicsEngine physics_engine,
|
||||
|
@ -46,8 +46,8 @@
|
||||
#include "BL_SkinMeshObject.h"
|
||||
#include "BL_DeformableGameObject.h"
|
||||
|
||||
BL_SkinMeshObject::BL_SkinMeshObject(Mesh* mesh, int lightlayer)
|
||||
: RAS_MeshObject (mesh, lightlayer)
|
||||
BL_SkinMeshObject::BL_SkinMeshObject(Mesh* mesh)
|
||||
: RAS_MeshObject (mesh)
|
||||
{
|
||||
m_bDeformed = true;
|
||||
|
||||
|
@ -46,7 +46,7 @@ protected:
|
||||
vector<int> m_cacheWeightIndex;
|
||||
|
||||
public:
|
||||
BL_SkinMeshObject(Mesh* mesh, int lightlayer);
|
||||
BL_SkinMeshObject(Mesh* mesh);
|
||||
~BL_SkinMeshObject();
|
||||
|
||||
void UpdateBuckets(void* clientobj, double* oglmatrix,
|
||||
|
@ -242,15 +242,14 @@ struct BlenderDebugDraw : public btIDebugDraw
|
||||
|
||||
#endif
|
||||
|
||||
void KX_BlenderSceneConverter::ConvertScene(const STR_String& scenename,
|
||||
class KX_Scene* destinationscene,
|
||||
void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene,
|
||||
PyObject* dictobj,
|
||||
class SCA_IInputDevice* keyinputdev,
|
||||
class RAS_IRenderTools* rendertools,
|
||||
class RAS_ICanvas* canvas)
|
||||
{
|
||||
//find out which physics engine
|
||||
Scene *blenderscene = GetBlenderSceneForName(scenename);
|
||||
Scene *blenderscene = destinationscene->GetBlenderScene();
|
||||
|
||||
e_PhysicsEngine physics_engine = UseBullet;
|
||||
bool useDbvtCulling = false;
|
||||
@ -331,7 +330,6 @@ void KX_BlenderSceneConverter::ConvertScene(const STR_String& scenename,
|
||||
}
|
||||
|
||||
BL_ConvertBlenderObjects(m_maggie,
|
||||
scenename,
|
||||
destinationscene,
|
||||
m_ketsjiEngine,
|
||||
physics_engine,
|
||||
|
@ -92,7 +92,6 @@ public:
|
||||
* dictobj: python dictionary (for pythoncontrollers)
|
||||
*/
|
||||
virtual void ConvertScene(
|
||||
const STR_String& scenename,
|
||||
class KX_Scene* destinationscene,
|
||||
PyObject* dictobj,
|
||||
class SCA_IInputDevice* keyinputdev,
|
||||
|
@ -638,7 +638,10 @@ void BL_ConvertActuators(char* maggiename,
|
||||
= new KX_SCA_ReplaceMeshActuator(
|
||||
gameobj,
|
||||
tmpmesh,
|
||||
scene
|
||||
scene,
|
||||
(editobact->flag & ACT_EDOB_REPLACE_MESH_NOGFX)==0,
|
||||
(editobact->flag & ACT_EDOB_REPLACE_MESH_PHYS)!=0
|
||||
|
||||
);
|
||||
|
||||
baseact = tmpreplaceact;
|
||||
|
@ -55,7 +55,7 @@ public:
|
||||
//virtual void DelayedReleaseObject(class CValue* gameobj)=0;
|
||||
|
||||
virtual void ReplaceMesh(class CValue* gameobj,
|
||||
void* meshobj)=0;
|
||||
void* meshobj, bool use_gfx, bool use_phys)=0;
|
||||
std::vector<SCA_DebugProp*>& GetDebugProperties();
|
||||
void AddDebugProperty(class CValue* debugprop,
|
||||
const STR_String &name);
|
||||
|
@ -1388,7 +1388,7 @@ PyMethodDef KX_GameObject::Methods[] = {
|
||||
{"getChildrenRecursive", (PyCFunction)KX_GameObject::sPyGetChildrenRecursive,METH_NOARGS},
|
||||
{"getPhysicsId", (PyCFunction)KX_GameObject::sPyGetPhysicsId,METH_NOARGS},
|
||||
{"getPropertyNames", (PyCFunction)KX_GameObject::sPyGetPropertyNames,METH_NOARGS},
|
||||
{"replaceMesh",(PyCFunction) KX_GameObject::sPyReplaceMesh, METH_O},
|
||||
{"replaceMesh",(PyCFunction) KX_GameObject::sPyReplaceMesh, METH_VARARGS},
|
||||
{"endObject",(PyCFunction) KX_GameObject::sPyEndObject, METH_NOARGS},
|
||||
{"reinstancePhysicsMesh", (PyCFunction)KX_GameObject::sPyReinstancePhysicsMesh,METH_VARARGS},
|
||||
|
||||
@ -1466,15 +1466,21 @@ bool KX_GameObject::ConvertPythonVectorArgs(PyObject* args,
|
||||
}
|
||||
*/
|
||||
|
||||
PyObject* KX_GameObject::PyReplaceMesh(PyObject* value)
|
||||
PyObject* KX_GameObject::PyReplaceMesh(PyObject* args)
|
||||
{
|
||||
KX_Scene *scene = KX_GetActiveScene();
|
||||
RAS_MeshObject* new_mesh;
|
||||
|
||||
PyObject *value;
|
||||
int use_gfx= 1, use_phys= 0;
|
||||
RAS_MeshObject *new_mesh;
|
||||
|
||||
if (!PyArg_ParseTuple(args,"O|ii:replaceMesh", &value, &use_gfx, &use_phys))
|
||||
return NULL;
|
||||
|
||||
if (!ConvertPythonToMesh(value, &new_mesh, false, "gameOb.replaceMesh(value): KX_GameObject"))
|
||||
return NULL;
|
||||
|
||||
scene->ReplaceMesh(this, new_mesh);
|
||||
scene->ReplaceMesh(this, new_mesh, (bool)use_gfx, (bool)use_phys);
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
|
@ -849,7 +849,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_VARARGS(KX_GameObject,ReplaceMesh);
|
||||
KX_PYMETHOD_NOARGS(KX_GameObject,EndObject);
|
||||
KX_PYMETHOD_DOC(KX_GameObject,rayCastTo);
|
||||
KX_PYMETHOD_DOC(KX_GameObject,rayCast);
|
||||
|
@ -47,7 +47,7 @@ public:
|
||||
destinationscene: pass an empty scene, everything goes into this
|
||||
dictobj: python dictionary (for pythoncontrollers)
|
||||
*/
|
||||
virtual void ConvertScene(const STR_String& scenename,
|
||||
virtual void ConvertScene(
|
||||
class KX_Scene* destinationscene,
|
||||
PyObject* dictobj,
|
||||
class SCA_IInputDevice* keyinputdev,
|
||||
|
@ -1599,8 +1599,7 @@ KX_Scene* KX_KetsjiEngine::CreateScene(const STR_String& scenename)
|
||||
scenename,
|
||||
scene);
|
||||
|
||||
m_sceneconverter->ConvertScene(scenename,
|
||||
tmpscene,
|
||||
m_sceneconverter->ConvertScene(tmpscene,
|
||||
m_pythondictionary,
|
||||
m_keyboarddevice,
|
||||
m_rendertools,
|
||||
|
@ -88,6 +88,8 @@ PyMethodDef KX_SCA_ReplaceMeshActuator::Methods[] = {
|
||||
|
||||
PyAttributeDef KX_SCA_ReplaceMeshActuator::Attributes[] = {
|
||||
KX_PYATTRIBUTE_RW_FUNCTION("mesh", KX_SCA_ReplaceMeshActuator, pyattr_get_mesh, pyattr_set_mesh),
|
||||
KX_PYATTRIBUTE_BOOL_RW ("useDisplayMesh", KX_SCA_ReplaceMeshActuator, m_use_gfx),
|
||||
KX_PYATTRIBUTE_BOOL_RW ("usePhysicsMesh", KX_SCA_ReplaceMeshActuator, m_use_phys),
|
||||
{ NULL } //Sentinel
|
||||
};
|
||||
|
||||
@ -156,11 +158,15 @@ KX_PYMETHODDEF_DOC(KX_SCA_ReplaceMeshActuator, instantReplaceMesh,
|
||||
|
||||
KX_SCA_ReplaceMeshActuator::KX_SCA_ReplaceMeshActuator(SCA_IObject *gameobj,
|
||||
class RAS_MeshObject *mesh,
|
||||
SCA_IScene* scene) :
|
||||
SCA_IScene* scene,
|
||||
bool use_gfx,
|
||||
bool use_phys) :
|
||||
|
||||
SCA_IActuator(gameobj),
|
||||
m_mesh(mesh),
|
||||
m_scene(scene)
|
||||
m_scene(scene),
|
||||
m_use_gfx(use_gfx),
|
||||
m_use_phys(use_phys)
|
||||
{
|
||||
} /* End of constructor */
|
||||
|
||||
@ -182,7 +188,8 @@ bool KX_SCA_ReplaceMeshActuator::Update()
|
||||
if (bNegativeEvent)
|
||||
return false; // do nothing on negative events
|
||||
|
||||
if (m_mesh) m_scene->ReplaceMesh(GetParent(),m_mesh);
|
||||
if (m_mesh || m_use_phys) /* NULL mesh is ok if were updating physics */
|
||||
m_scene->ReplaceMesh(GetParent(),m_mesh, m_use_gfx, m_use_phys);
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -204,7 +211,7 @@ CValue* KX_SCA_ReplaceMeshActuator::GetReplica()
|
||||
|
||||
void KX_SCA_ReplaceMeshActuator::InstantReplaceMesh()
|
||||
{
|
||||
if (m_mesh) m_scene->ReplaceMesh(GetParent(),m_mesh);
|
||||
if (m_mesh) m_scene->ReplaceMesh(GetParent(),m_mesh, m_use_gfx, m_use_phys);
|
||||
}
|
||||
|
||||
/* eof */
|
||||
|
@ -50,12 +50,17 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator
|
||||
// mesh reference (mesh to replace)
|
||||
RAS_MeshObject* m_mesh;
|
||||
SCA_IScene* m_scene;
|
||||
bool m_use_phys;
|
||||
bool m_use_gfx;
|
||||
|
||||
public:
|
||||
KX_SCA_ReplaceMeshActuator(
|
||||
SCA_IObject* gameobj,
|
||||
RAS_MeshObject *mesh,
|
||||
SCA_IScene* scene);
|
||||
SCA_IScene* scene,
|
||||
bool use_gfx,
|
||||
bool use_phys
|
||||
);
|
||||
|
||||
~KX_SCA_ReplaceMeshActuator(
|
||||
);
|
||||
@ -69,7 +74,6 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator
|
||||
|
||||
void InstantReplaceMesh();
|
||||
|
||||
/* python api */
|
||||
static PyObject* pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
|
||||
static int pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
|
||||
|
||||
|
@ -1017,17 +1017,18 @@ int KX_Scene::NewRemoveObject(class CValue* gameobj)
|
||||
|
||||
|
||||
|
||||
void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj)
|
||||
void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj, bool use_gfx, bool use_phys)
|
||||
{
|
||||
KX_GameObject* gameobj = static_cast<KX_GameObject*>(obj);
|
||||
RAS_MeshObject* mesh = static_cast<RAS_MeshObject*>(meshobj);
|
||||
|
||||
if(!gameobj || !mesh)
|
||||
{
|
||||
std::cout << "warning: invalid object, mesh will not be replaced" << std::endl;
|
||||
if(!gameobj) {
|
||||
std::cout << "KX_Scene::ReplaceMesh Warning: invalid object, doing nothing" << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if(use_gfx && mesh != NULL)
|
||||
{
|
||||
gameobj->RemoveMeshes();
|
||||
gameobj->AddMesh(mesh);
|
||||
|
||||
@ -1156,6 +1157,11 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj)
|
||||
}
|
||||
|
||||
gameobj->AddMeshUser();
|
||||
}
|
||||
|
||||
if(use_phys) { /* update the new assigned mesh with the physics mesh */
|
||||
KX_ReInstanceBulletShapeFromMesh(gameobj, NULL, use_gfx?NULL:mesh);
|
||||
}
|
||||
}
|
||||
|
||||
KX_Camera* KX_Scene::FindCamera(KX_Camera* cam)
|
||||
|
@ -323,7 +323,7 @@ public:
|
||||
|
||||
int NewRemoveObject(CValue* gameobj);
|
||||
void ReplaceMesh(CValue* gameobj,
|
||||
void* meshobj);
|
||||
void* meshob, bool use_gfx, bool use_phys);
|
||||
/**
|
||||
* @section Logic stuff
|
||||
* Initiate an update of the logic system.
|
||||
|
@ -1642,10 +1642,14 @@ class KX_GameObject(SCA_IObject):
|
||||
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):
|
||||
def replaceMesh(mesh, useDisplayMesh=True, usePhysicsMesh=False):
|
||||
"""
|
||||
Replace the mesh of this object with a new mesh. This works the same was as the actuator.
|
||||
@type mesh: L{KX_MeshProxy} or mesh name
|
||||
@type useDisplayMesh: bool
|
||||
@param useDisplayMesh: when enabled the display mesh will be replaced (optional argument).
|
||||
@type usePhysicsMesh: bool
|
||||
@param usePhysicsMesh: when enabled the physics mesh will be replaced (optional argument).
|
||||
"""
|
||||
def getVisible():
|
||||
"""
|
||||
@ -3791,6 +3795,11 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator):
|
||||
@ivar mesh: L{KX_MeshProxy} or the name of the mesh that will replace the current one
|
||||
Set to None to disable actuator
|
||||
@type mesh: L{KX_MeshProxy} or None if no mesh is set
|
||||
|
||||
@ivar useDisplayMesh: when true the displayed mesh is replaced.
|
||||
@type useDisplayMesh: boolean
|
||||
@ivar usePhysicsMesh: when true the physics mesh is replaced.
|
||||
@type usePhysicsMesh: boolean
|
||||
"""
|
||||
def setMesh(name):
|
||||
"""
|
||||
|
@ -90,9 +90,8 @@ struct RAS_MeshObject::fronttoback
|
||||
|
||||
STR_String RAS_MeshObject::s_emptyname = "";
|
||||
|
||||
RAS_MeshObject::RAS_MeshObject(Mesh* mesh, int lightlayer)
|
||||
: //m_lightlayer(lightlayer),
|
||||
m_bModified(true),
|
||||
RAS_MeshObject::RAS_MeshObject(Mesh* mesh)
|
||||
: m_bModified(true),
|
||||
m_bMeshModified(true),
|
||||
m_mesh(mesh),
|
||||
m_bDeformed(false)
|
||||
|
@ -55,7 +55,6 @@ class RAS_MeshObject
|
||||
{
|
||||
private:
|
||||
unsigned int m_debugcolor;
|
||||
//int m_lightlayer;
|
||||
|
||||
bool m_bModified;
|
||||
bool m_bMeshModified;
|
||||
@ -77,7 +76,7 @@ protected:
|
||||
|
||||
public:
|
||||
// for now, meshes need to be in a certain layer (to avoid sorting on lights in realtime)
|
||||
RAS_MeshObject(Mesh* mesh, int lightlayer);
|
||||
RAS_MeshObject(Mesh* mesh);
|
||||
virtual ~RAS_MeshObject();
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user