当前位置: 首页>>代码示例>>C++>>正文


C++ Animation::addBonePosition方法代码示例

本文整理汇总了C++中Animation::addBonePosition方法的典型用法代码示例。如果您正苦于以下问题:C++ Animation::addBonePosition方法的具体用法?C++ Animation::addBonePosition怎么用?C++ Animation::addBonePosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Animation的用法示例。


在下文中一共展示了Animation::addBonePosition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: loadAnimation

Animation* ModelInterface::loadAnimation(const aiAnimation* ai_animation, const int index)
{
    QString animation_name(ai_animation->mName.data);

    double duration = ai_animation->mDuration;
    //qDebug() << "Animation: " + animation_name + " duration " + QString::number(duration);

    Animation* animation = new Animation(animation_name, duration, index);
    animation->setBoneCount(bones->getBoneNames().size());

    for(uint bone_index = 0; bone_index < ai_animation->mNumChannels; ++bone_index)
    {
        aiNodeAnim* channel = ai_animation->mChannels[bone_index];

        QString bone_name(channel->mNodeName.data);

        if(!bones->hasBone(bone_name))
            continue;

        int bone_id = bones->getBone(bone_name)->getId();

        animation->registerBone(bone_id);

        for(uint i = 0; i < channel->mNumPositionKeys; ++i)
        {
            aiVectorKey pos_key = channel->mPositionKeys[i];

            animation->addBonePosition(bone_id, float(pos_key.mTime), QVector3D(pos_key.mValue.x, pos_key.mValue.y, pos_key.mValue.z));
        }

        for(uint i = 0; i < channel->mNumRotationKeys; ++i)
        {
            aiQuatKey rot_key = channel->mRotationKeys[i];

            animation->addBoneRotation(bone_id, float(rot_key.mTime), QQuaternion(rot_key.mValue.w, rot_key.mValue.x, rot_key.mValue.y, rot_key.mValue.z));
        }

        for(uint i = 0; i < channel->mNumScalingKeys; ++i)
        {
            aiVectorKey scale_key = channel->mScalingKeys[i];

            animation->addBoneScaling(bone_id, float(scale_key.mTime), QVector3D(scale_key.mValue.x, scale_key.mValue.y, scale_key.mValue.z));
        }
    }

    return animation;
}
开发者ID:glararan,项目名称:QEditor,代码行数:47,代码来源:modelinterface.cpp


注:本文中的Animation::addBonePosition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。