CKinematics::~CKinematics () { IBoneInstances_Destroy (); // wallmarks ClearWallmarks (); if(m_lod) ::Render->model_Delete(m_lod); }
void CKinematics::Spawn () { inherited::Spawn (); // bones for (u32 i=0; i<bones->size(); i++) bone_instances[i].construct(); Update_Callback = NULL; CalculateBones_Invalidate (); // wallmarks ClearWallmarks (); Visibility_Invalidate (); }
void CKinematics::Depart () { inherited::Depart (); // wallmarks ClearWallmarks (); // unmask all bones visimask.zero (); if(bones) { for (u32 b=0; b<bones->size(); b++) visimask.set((u64(1)<<b),TRUE); } // visibility children.insert (children.end(),children_invisible.begin(),children_invisible.end()); children_invisible.clear (); }
CKinematics::~CKinematics () { IBoneInstances_Destroy (); // wallmarks ClearWallmarks (); if(m_lod) { if ( CKinematics* lod_kinematics = dynamic_cast<CKinematics*>(m_lod) ) { if ( lod_kinematics->m_is_original_lod ) { lod_kinematics->Release(); } } xr_delete(m_lod); } }
void CKinematics::Depart () { inherited::Depart (); // wallmarks ClearWallmarks (); // unmask all bones visimask.zero (); if(bones) { u32 count = bones->size(); #ifdef DEBUG if (count > 64) Msg("ahtung !!! %d", count); #endif // #ifdef DEBUG for (u32 b=0; b<count; b++) visimask.set((u64(1)<<b),TRUE); } // visibility children.insert (children.end(),children_invisible.begin(),children_invisible.end()); children_invisible.clear (); }