Ejemplo n.º 1
0
//public
void SkeletalMeshNode::SetBufferCollection(BufferCollection& bc)
{
	assert(bc.size());
	m_defaultBuffers = &bc;
	m_jointList = bc[0]->GetJoints().get();

	//copy mesh data to animatable buffer
	m_animatedBuffers.clear();
	for (auto& b : bc)
	{
		BufferPtr mb = std::make_shared<MeshBuffer>();
		mb->SetVertices(b->GetVertices());
		mb->GetFaces() = b->GetFaces();
		mb->GetNormals() = b->GetNormals();
		mb->SetJoints(b->GetJoints());
		mb->GetWeights() = b->GetWeights();
		mb->Allocate(false);
		m_animatedBuffers.push_back(mb);
	}
	m_SetBufferCollection(&m_animatedBuffers);

	m_CreateBindPose();
}