group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
WeaponHoldPose.hpp
Go to the documentation of this file.
1
18
19#pragma once
20
22
23#include <array>
24#include <cstddef>
25#include <glm/glm.hpp>
26#include <glm/gtc/quaternion.hpp>
27#include <string>
28
30inline constexpr std::size_t kArmHoldBoneCount = 4;
31
34inline constexpr std::array<const char*, kArmHoldBoneCount> kArmHoldBoneSuffixes{
35 "Shoulder", "Arm", "ForeArm", "Hand"};
36
38inline constexpr std::array<const char*, kArmHoldBoneCount> kArmHoldBoneDisplayNames{
39 "Shoulder (clavicle)", "Upper Arm", "Forearm", "Hand (wrist)"};
40
50{
51 std::array<glm::vec3, kArmHoldBoneCount> boneAngles{};
52 std::array<glm::vec3, kGripPoseJointCount> fingerAngles{};
53};
54
57{
58 glm::vec3 spineOffset{0.0f};
59 glm::quat spineRotation{1.0f, 0.0f, 0.0f, 0.0f};
60 float scale = 1.0f;
63};
64
68bool loadWeaponHoldPose(const std::string& path, WeaponHoldPose& out);
69
72bool saveWeaponHoldPose(const std::string& path, const WeaponHoldPose& pose);
Authored per-weapon hand grip poses (Phase C of the AAA IK overhaul).
constexpr std::array< const char *, kArmHoldBoneCount > kArmHoldBoneDisplayNames
Human-readable labels for the arm-chain bones (tweaker UI).
Definition WeaponHoldPose.hpp:38
constexpr std::size_t kArmHoldBoneCount
Number of arm-chain bones the FK hold pose drives, ordered root → tip.
Definition WeaponHoldPose.hpp:30
bool saveWeaponHoldPose(const std::string &path, const WeaponHoldPose &pose)
Save a hold pose to a TOML file (atomic temp-write + rename).
Definition WeaponHoldPose.cpp:148
bool loadWeaponHoldPose(const std::string &path, WeaponHoldPose &out)
Load a hold pose from a TOML side-table (see WeaponHoldPose.cpp for the schema).
Definition WeaponHoldPose.cpp:110
constexpr std::array< const char *, kArmHoldBoneCount > kArmHoldBoneSuffixes
Mixamo bone-name suffixes for the arm chain (prefixed with mixamorig:<Side> at runtime),...
Definition WeaponHoldPose.hpp:34
One arm's authored 3-DOF FK pose.
Definition WeaponHoldPose.hpp:50
std::array< glm::vec3, kArmHoldBoneCount > boneAngles
Definition WeaponHoldPose.hpp:51
std::array< glm::vec3, kGripPoseJointCount > fingerAngles
Definition WeaponHoldPose.hpp:52
Authored per-weapon third-person hold pose (see file header).
Definition WeaponHoldPose.hpp:57
ArmHoldPose rightArm
Definition WeaponHoldPose.hpp:61
glm::vec3 spineOffset
Spine2-local weapon translation (rig/model units).
Definition WeaponHoldPose.hpp:58
ArmHoldPose leftArm
Definition WeaponHoldPose.hpp:62
glm::quat spineRotation
Spine2-local weapon rotation.
Definition WeaponHoldPose.hpp:59
float scale
Weapon mesh scale.
Definition WeaponHoldPose.hpp:60