group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
WeaponHoldPose.cpp File Reference

TOML loader/saver for per-weapon third-person FK hold poses. More...

#include "ecs/components/WeaponHoldPose.hpp"
#include <SDL3/SDL_log.h>
#include <array>
#include <cstdio>
#include <filesystem>
#include <fstream>
#include <toml++/toml.hpp>
Include dependency graph for WeaponHoldPose.cpp:

Functions

bool loadWeaponHoldPose (const std::string &path, WeaponHoldPose &out)
 Load a hold pose from a TOML side-table (see WeaponHoldPose.cpp for the schema).
bool saveWeaponHoldPose (const std::string &path, const WeaponHoldPose &pose)
 Save a hold pose to a TOML file (atomic temp-write + rename).

Detailed Description

TOML loader/saver for per-weapon third-person FK hold poses.

Schema (all angles degrees, [pitch, yaw, roll]; a 2-element [pitch, yaw] entry is still accepted and treated as roll = 0):

[weapon]
offset = [x, y, z] # Spine2-local weapon translation
rotation = [w, x, y, z] # Spine2-local weapon rotation quaternion
scale = 39.4 # weapon mesh scale
[right_arm]
bones = [[p,y,r],[p,y,r],[p,y,r],[p,y,r]] # Shoulder, UpperArm, ForeArm, Hand
[right_arm.thumb]
joints = [[p,y,r],[p,y,r],[p,y,r],[p,y,r]]
[right_arm.index] ... # middle, ring, pinky
[left_arm] ... # same shape

Function Documentation

◆ loadWeaponHoldPose()

bool loadWeaponHoldPose ( const std::string & path,
WeaponHoldPose & out )

Load a hold pose from a TOML side-table (see WeaponHoldPose.cpp for the schema).

Missing sections keep their default (zeroed) values; returns false only when the file cannot be parsed at all.

Here is the caller graph for this function:

◆ saveWeaponHoldPose()

bool saveWeaponHoldPose ( const std::string & path,
const WeaponHoldPose & pose )

Save a hold pose to a TOML file (atomic temp-write + rename).

Returns false on filesystem failure.