void AnimOverlay::buildUpperBodyBoneSet() { assert(_skeleton); buildEmptyBoneSet(); int spineJoint = _skeleton->nameToJointIndex("Spine"); for_each_child_joint(_skeleton, spineJoint, [&](int i) { _boneSetVec[i] = 1.0f; }); }
void AnimOverlay::buildAboveTheHeadBoneSet() { assert(_skeleton); buildEmptyBoneSet(); int headJoint = _skeleton->nameToJointIndex("Head"); for_each_child_joint(_skeleton, headJoint, [&](int i) { _boneSetVec[i] = 1.0f; }); }
void AnimOverlay::buildLeftArmBoneSet() { assert(_skeleton); buildEmptyBoneSet(); int leftShoulderJoint = _skeleton->nameToJointIndex("LeftShoulder"); for_each_child_joint(_skeleton, leftShoulderJoint, [&](int i) { _boneSetVec[i] = 1.0f; }); }
void AnimOverlay::buildRightHandBoneSet() { assert(_skeleton); buildEmptyBoneSet(); int handJoint = _skeleton->nameToJointIndex("RightHand"); for_each_child_joint(_skeleton, handJoint, [&](int i) { _boneSetVec[i] = 1.0f; }); }
void AnimOverlay::buildBothFeetBoneSet() { assert(_skeleton); buildEmptyBoneSet(); int rightFoot = _skeleton->nameToJointIndex("RightFoot"); for_each_child_joint(_skeleton, rightFoot, [&](int i) { _boneSetVec[i] = 1.0f; }); int leftFoot = _skeleton->nameToJointIndex("LeftFoot"); for_each_child_joint(_skeleton, leftFoot, [&](int i) { _boneSetVec[i] = 1.0f; }); }
void AnimOverlay::buildBoneSet(BoneSet boneSet) { assert(_skeleton); switch (boneSet) { case FullBodyBoneSet: buildFullBodyBoneSet(); break; case UpperBodyBoneSet: buildUpperBodyBoneSet(); break; case LowerBodyBoneSet: buildLowerBodyBoneSet(); break; case RightArmBoneSet: buildRightArmBoneSet(); break; case LeftArmBoneSet: buildLeftArmBoneSet(); break; case AboveTheHeadBoneSet: buildAboveTheHeadBoneSet(); break; case BelowTheHeadBoneSet: buildBelowTheHeadBoneSet(); break; case HeadOnlyBoneSet: buildHeadOnlyBoneSet(); break; case SpineOnlyBoneSet: buildSpineOnlyBoneSet(); break; default: case EmptyBoneSet: buildEmptyBoneSet(); break; } }
void AnimOverlay::buildSpineOnlyBoneSet() { assert(_skeleton); buildEmptyBoneSet(); int spineJoint = _skeleton->nameToJointIndex("Spine"); _boneSetVec[spineJoint] = 1.0f; }
void AnimOverlay::buildHeadOnlyBoneSet() { assert(_skeleton); buildEmptyBoneSet(); int headJoint = _skeleton->nameToJointIndex("Head"); _boneSetVec[headJoint] = 1.0f; }