[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19872] trunk/blender/source/gameengine: BGE: some more cleanup in GetReplica/ProcessReplica of deformers: make them consistent with the other classes.
Benoit Bolsee
benoit.bolsee at online.be
Wed Apr 22 18:26:23 CEST 2009
Revision: 19872
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19872
Author: ben2610
Date: 2009-04-22 18:26:22 +0200 (Wed, 22 Apr 2009)
Log Message:
-----------
BGE: some more cleanup in GetReplica/ProcessReplica of deformers: make them consistent with the other classes.
Modified Paths:
--------------
trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.cpp
trunk/blender/source/gameengine/Converter/BL_MeshDeformer.h
trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.cpp
trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.h
trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.cpp
trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.h
trunk/blender/source/gameengine/Converter/BL_SkinDeformer.cpp
trunk/blender/source/gameengine/Converter/BL_SkinDeformer.h
trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
trunk/blender/source/gameengine/Rasterizer/RAS_Deformer.h
Modified: trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.cpp 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.cpp 2009-04-22 16:26:22 UTC (rev 19872)
@@ -46,7 +46,7 @@
KX_GameObject::ProcessReplica();
if (m_pDeformer)
- m_pDeformer= (BL_MeshDeformer*)m_pDeformer->GetReplica(this);
+ m_pDeformer= (BL_MeshDeformer*)m_pDeformer->GetReplica();
}
CValue* BL_DeformableGameObject::GetReplica()
Modified: trunk/blender/source/gameengine/Converter/BL_MeshDeformer.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_MeshDeformer.h 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_MeshDeformer.h 2009-04-22 16:26:22 UTC (rev 19872)
@@ -64,7 +64,8 @@
virtual void SetSimulatedTime(double time){};
virtual bool Apply(class RAS_IPolyMaterial *mat);
virtual bool Update(void){ return false; };
- virtual RAS_Deformer* GetReplica(class KX_GameObject* replica){return NULL;};
+ virtual RAS_Deformer* GetReplica(){return NULL;};
+ virtual void ProcessReplica() { };
struct Mesh* GetMesh() { return m_bmesh; };
// virtual void InitDeform(double time){};
Modified: trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.cpp 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.cpp 2009-04-22 16:26:22 UTC (rev 19872)
@@ -76,7 +76,7 @@
}
};
-RAS_Deformer *BL_ModifierDeformer::GetReplica(class KX_GameObject* replica)
+RAS_Deformer *BL_ModifierDeformer::GetReplica()
{
BL_ModifierDeformer *result;
Modified: trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.h 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.h 2009-04-22 16:26:22 UTC (rev 19872)
@@ -73,7 +73,7 @@
};
virtual void ProcessReplica();
- virtual RAS_Deformer *GetReplica(class KX_GameObject* replica);
+ virtual RAS_Deformer *GetReplica();
virtual ~BL_ModifierDeformer();
virtual bool UseVertexArray()
{
Modified: trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.cpp 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.cpp 2009-04-22 16:26:22 UTC (rev 19872)
@@ -68,7 +68,7 @@
{
};
-RAS_Deformer *BL_ShapeDeformer::GetReplica(class KX_GameObject* replica)
+RAS_Deformer *BL_ShapeDeformer::GetReplica()
{
BL_ShapeDeformer *result;
@@ -77,11 +77,6 @@
return result;
}
-void BL_ShapeDeformer::ProcessReplica()
-{
- BL_SkinDeformer::ProcessReplica();
-}
-
bool BL_ShapeDeformer::LoadShapeDrivers(Object* arma)
{
IpoCurve *icu;
Modified: trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.h 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.h 2009-04-22 16:26:22 UTC (rev 19872)
@@ -66,8 +66,7 @@
{
};
- virtual void ProcessReplica();
- virtual RAS_Deformer *GetReplica(class KX_GameObject* replica);
+ virtual RAS_Deformer *GetReplica();
virtual ~BL_ShapeDeformer();
bool Update (void);
Modified: trunk/blender/source/gameengine/Converter/BL_SkinDeformer.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_SkinDeformer.cpp 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_SkinDeformer.cpp 2009-04-22 16:26:22 UTC (rev 19872)
@@ -108,7 +108,7 @@
void **h_obj = (*map)[m_armobj];
if (h_obj)
- SetArmature( (BL_ArmatureObject*)(*h_obj) );
+ m_armobj = (BL_ArmatureObject*)(*h_obj);
else
m_armobj=NULL;
}
@@ -151,21 +151,16 @@
return true;
}
-RAS_Deformer *BL_SkinDeformer::GetReplica(class KX_GameObject* replica)
+RAS_Deformer *BL_SkinDeformer::GetReplica()
{
BL_SkinDeformer *result;
result = new BL_SkinDeformer(*this);
- /* Not inherited from PyObjectPlus so this isnt needed */
- /* Just call a dummy function below, will be optimized out */
+ /* there is m_armobj that must be fixed but we cannot do it now, it will be done in Relink */
result->ProcessReplica();
return result;
}
-void BL_SkinDeformer::ProcessReplica()
-{
-}
-
//void where_is_pose (Object *ob);
//void armature_deform_verts(Object *armOb, Object *target, float (*vertexCos)[3], int numVerts, int deformflag);
bool BL_SkinDeformer::Update(void)
Modified: trunk/blender/source/gameengine/Converter/BL_SkinDeformer.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_SkinDeformer.h 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Converter/BL_SkinDeformer.h 2009-04-22 16:26:22 UTC (rev 19872)
@@ -67,8 +67,7 @@
bool recalc_normal,
BL_ArmatureObject* arma = NULL);
- virtual void ProcessReplica();
- virtual RAS_Deformer *GetReplica(class KX_GameObject* replica);
+ virtual RAS_Deformer *GetReplica();
virtual ~BL_SkinDeformer();
bool Update (void);
bool Apply (class RAS_IPolyMaterial *polymat);
Modified: trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp 2009-04-22 16:26:22 UTC (rev 19872)
@@ -34,7 +34,7 @@
// defines USE_ODE to choose physics engine
#include "KX_ConvertPhysicsObject.h"
-#include "KX_GameObject.h"
+#include "BL_DeformableGameObject.h"
#include "RAS_MeshObject.h"
#include "KX_Scene.h"
#include "SYS_System.h"
@@ -670,11 +670,11 @@
class KX_SoftBodyDeformer : public RAS_Deformer
{
- class RAS_MeshObject* m_pMeshObject;
- class KX_GameObject* m_gameobj;
+ class RAS_MeshObject* m_pMeshObject;
+ class BL_DeformableGameObject* m_gameobj;
public:
- KX_SoftBodyDeformer(RAS_MeshObject* pMeshObject,KX_GameObject* gameobj)
+ KX_SoftBodyDeformer(RAS_MeshObject* pMeshObject,BL_DeformableGameObject* gameobj)
:m_pMeshObject(pMeshObject),
m_gameobj(gameobj)
{
@@ -687,7 +687,15 @@
};
virtual void Relink(GEN_Map<class GEN_HashedPtr, void*>*map)
{
- //printf("relink\n");
+ void **h_obj = (*map)[m_gameobj];
+
+ if (h_obj) {
+ m_gameobj = (BL_DeformableGameObject*)(*h_obj);
+ m_pMeshObject = m_gameobj->GetMesh(0);
+ } else {
+ m_gameobj = NULL;
+ m_pMeshObject = NULL;
+ }
}
virtual bool Apply(class RAS_IPolyMaterial *polymat)
{
@@ -751,12 +759,16 @@
//printf("update\n");
return true;//??
}
- virtual RAS_Deformer *GetReplica(class KX_GameObject* replica)
+ virtual RAS_Deformer *GetReplica()
{
- KX_SoftBodyDeformer* deformer = new KX_SoftBodyDeformer(replica->GetMesh(0),replica);
+ KX_SoftBodyDeformer* deformer = new KX_SoftBodyDeformer(*this);
+ deformer->ProcessReplica();
return deformer;
}
-
+ virtual void ProcessReplica()
+ {
+ // we have two pointers to deal with but we cannot do it now, will be done in Relink
+ }
virtual bool SkipVertexTransform()
{
return true;
@@ -1187,9 +1199,8 @@
if (softBody && gameobj->GetMesh(0))//only the first mesh, if any
{
//should be a mesh then, so add a soft body deformer
- KX_SoftBodyDeformer* softbodyDeformer = new KX_SoftBodyDeformer( gameobj->GetMesh(0),gameobj);
+ KX_SoftBodyDeformer* softbodyDeformer = new KX_SoftBodyDeformer( gameobj->GetMesh(0),(BL_DeformableGameObject*)gameobj);
gameobj->SetDeformer(softbodyDeformer);
-
}
}
Modified: trunk/blender/source/gameengine/Rasterizer/RAS_Deformer.h
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_Deformer.h 2009-04-22 14:42:00 UTC (rev 19871)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_Deformer.h 2009-04-22 16:26:22 UTC (rev 19872)
@@ -44,7 +44,8 @@
virtual void Relink(GEN_Map<class GEN_HashedPtr, void*>*map)=0;
virtual bool Apply(class RAS_IPolyMaterial *polymat)=0;
virtual bool Update(void)=0;
- virtual RAS_Deformer *GetReplica(class KX_GameObject* replica)=0;
+ virtual RAS_Deformer *GetReplica()=0;
+ virtual void ProcessReplica()=0;
virtual bool SkipVertexTransform()
{
return false;
More information about the Bf-blender-cvs
mailing list