本文整理汇总了C++中SkeletonAnimation::Optimize方法的典型用法代码示例。如果您正苦于以下问题:C++ SkeletonAnimation::Optimize方法的具体用法?C++ SkeletonAnimation::Optimize怎么用?C++ SkeletonAnimation::Optimize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SkeletonAnimation
的用法示例。
在下文中一共展示了SkeletonAnimation::Optimize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _dumpAnimation
void MeshExporter::_dumpAnimation(IGameControl * pGameControl, int boneId)
{
int start = ExportConfig::Instance()->GetFrameRange().x;
int end = ExportConfig::Instance()->GetFrameRange().y;
start *= GetTicksPerFrame();
end *= GetTicksPerFrame();
if ((pGameControl->IsAnimated(IGAME_POS)) || pGameControl->IsAnimated(IGAME_ROT) || pGameControl->IsAnimated(IGAME_SCALE))
{
IGameKeyTab Key;
if(pGameControl->GetFullSampledKeys(Key, 1, IGAME_TM, true) )
{
SkeletonAnimation * skelAnim = new SkeletonAnimation(boneId);
int count = Key.Count();
for(int i=0;i<count;i++)
{
if (Key[i].t >= start && Key[i].t <= end)
{
float time = (float)Key[i].t / (float)GetTicksPerFrame() / (float)GetFrameRate();
SkeletonAnimation::KeyFrame * kf = skelAnim->CreateKeyFrame(time);
kf->position = Utility::ToFloat3(Key[i].sampleKey.gval.Translation());
kf->rotation = Utility::ToQuat(Key[i].sampleKey.gval.Rotation());
kf->scale = Utility::ToFloat3(Key[i].sampleKey.gval.Scaling());
}
}
skelAnim->Optimize();
_getAnimation()->AddSkeletonAnimation(skelAnim);
}
}
}