18#include <Threedim/HumanoidPose.hpp>
26using HumanoidBoneMap = std::array<
28 std::size_t(humanoid_bone_index::Count)>;
30enum class HumanoidRigPreset : uint8_t
43inline constexpr HumanoidBoneMap kMixamoBoneMap = {
50 "mixamorig:LeftShoulder",
52 "mixamorig:LeftForeArm",
55 "mixamorig:RightShoulder",
57 "mixamorig:RightForeArm",
58 "mixamorig:RightHand",
60 "mixamorig:LeftUpLeg",
63 "mixamorig:LeftToeBase",
65 "mixamorig:RightUpLeg",
67 "mixamorig:RightFoot",
68 "mixamorig:RightToeBase",
75inline constexpr HumanoidBoneMap kVRMBoneMap = {
108inline constexpr HumanoidBoneMap kUnrealMannequinBoneMap = {
136inline constexpr const HumanoidBoneMap&
137humanoidBoneMap(HumanoidRigPreset preset)
noexcept
141 case HumanoidRigPreset::Mixamo:
142 return kMixamoBoneMap;
143 case HumanoidRigPreset::VRM:
145 case HumanoidRigPreset::UnrealMannequin:
146 return kUnrealMannequinBoneMap;
147 case HumanoidRigPreset::Count:
150 return kMixamoBoneMap;