52
52
// void SetArmatureController (BL_ArmatureController *cont);
53
virtual void Relink(GEN_Map<class GEN_HashedPtr, void*>*map)
55
void **h_obj = (*map)[m_armobj];
57
SetArmature( (BL_ArmatureObject*)(*h_obj) );
53
virtual void Relink(GEN_Map<class GEN_HashedPtr, void*>*map);
62
54
void SetArmature (class BL_ArmatureObject *armobj);
64
BL_SkinDeformer(struct Object *bmeshobj,
56
BL_SkinDeformer(BL_DeformableGameObject *gameobj,
57
struct Object *bmeshobj,
65
58
class BL_SkinMeshObject *mesh,
66
BL_ArmatureObject* arma = NULL)
68
BL_MeshDeformer(bmeshobj, mesh),
71
m_defbase(&bmeshobj->defbase),
72
m_releaseobject(false),
59
BL_ArmatureObject* arma = NULL);
77
61
/* this second constructor is needed for making a mesh deformable on the fly. */
78
BL_SkinDeformer(struct Object *bmeshobj_old,
62
BL_SkinDeformer(BL_DeformableGameObject *gameobj,
63
struct Object *bmeshobj_old,
79
64
struct Object *bmeshobj_new,
80
65
class BL_SkinMeshObject *mesh,
81
66
bool release_object,
82
67
BL_ArmatureObject* arma = NULL);
84
69
virtual void ProcessReplica();
85
virtual RAS_Deformer *GetReplica();
70
virtual RAS_Deformer *GetReplica(class KX_GameObject* replica);
86
71
virtual ~BL_SkinDeformer();
88
73
bool Apply (class RAS_IPolyMaterial *polymat);
74
bool PoseUpdated(void)
76
if (m_armobj && m_lastArmaUpdate!=m_armobj->GetLastFrame()) {
84
m_lastArmaUpdate = -1.0;
91
88
BL_ArmatureObject* m_armobj; // Our parent object
90
double m_lastArmaUpdate;
94
91
ListBase* m_defbase;
95
float m_obmat[4][4]; // the original object matrice in case of dynamic mesh replacement
92
float m_obmat[4][4]; // the reference matrix for skeleton deform
97
93
bool m_releaseobject;