CStaticMesh_DX8::CStaticMesh_DX8(CEntity_StaticMesh* in_pMesh) :
	m_pStaticMesh(in_pMesh)
{
	assert(m_pStaticMesh);

	// construct shadow for skeleton

	const std::vector< CBone* >& rSrcBones = m_pStaticMesh->GetSkeleton().GetBoneIDs();
	m_Skeleton.m_BoneIDs.resize( rSrcBones.size() );
	for( size_t i=0; i<rSrcBones.size(); ++i )
		m_Skeleton.m_BoneIDs[i] = NULL;

	CBone* pSrcRootBone = m_pStaticMesh->GetSkeleton().GetRootBone();
	if(pSrcRootBone) {
		
		m_Skeleton.m_pRootBone = CreateBoneShadowRecurse( pSrcRootBone, NULL );
		
		assert( !rSrcBones.empty() );
		for( size_t i=0; i<rSrcBones.size(); ++i ) {
			assert( m_Skeleton.m_BoneIDs[i] != NULL );
			if( m_Skeleton.m_BoneIDs[i]->m_BoneID == pSrcRootBone->GetID() ) {
				m_Skeleton.m_pRootBone = m_Skeleton.m_BoneIDs[i];
			}
		}
	}
}