Exemplo n.º 1
0
CKinematics::~CKinematics	()
{
	IBoneInstances_Destroy	();
	// wallmarks
	ClearWallmarks			();

	if(m_lod)
		::Render->model_Delete(m_lod);
}
Exemplo n.º 2
0
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		();
}
Exemplo n.º 3
0
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	();
}
Exemplo n.º 4
0
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);
	}
}
Exemplo n.º 5
0
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	();
}