コード例 #1
0
ファイル: Animator.cpp プロジェクト: a-laine/GolemFactory
bool Animator::isAnimationRunning(Entity* object, const std::string& animationName)
{
	AnimationComponent* animationComp = object->getComponent<AnimationComponent>();
	if(animationComp && animationComp->isValid())
		return animationComp->isAnimationRunning(animationName);
	return false;
}
コード例 #2
0
ファイル: Animator.cpp プロジェクト: a-laine/GolemFactory
void Animator::animate(Entity* object, float step)
{
	AnimationComponent* animationComp = object->getComponent<AnimationComponent>();
	SkeletonComponent* skeletonComp = object->getComponent<SkeletonComponent>();
	if(!skeletonComp || !skeletonComp->isValid())
		return;

	if(!animationComp || !animationComp->isValid())
	{
		skeletonComp->initToBindPose();
		return;
	}

	animationComp->updateAnimations(step);

	if(!animationComp->isAnimationRunning())
		return;

	std::vector<JointPose> blendPose(skeletonComp->getNbJoints());
	animationComp->blendAnimations(blendPose);
	animationComp->cleanAnimationTracks(step);

	skeletonComp->computePose(blendPose);
}