38 void calcMatrix(std::vector<Bone>& allbones, ssize_t anim,
size_t time,
bool rotate =
true);
Generic animated value class that reads keyframe data from M2 files.
Represents a single bone in a WoW M2 model skeleton.
void calcMatrix(std::vector< Bone > &allbones, ssize_t anim, size_t time, bool rotate=true)
Compute the bone matrix from parent bones and animation data.
bool billboard
Whether this bone is billboarded.
Animated< glm::fquat, PACK_QUATERNION, Quat16ToQuat32 > rot
Rotation animation track (packed 16-bit).
glm::vec3 transPivot
Pivot point and translated pivot.
int16 parent
Parent bone index (-1 if root).
Animated< glm::vec3 > trans
Translation animation track.
glm::mat4 mat
Computed transformation matrix.
Animated< glm::vec3 > scale
Scale animation track.
glm::mat4 mrot
Computed rotation-only matrix.
ModelBoneDef boneDef
Raw bone definition from the M2 file.
bool calc
Whether this bone has been calculated for the current frame.
void initV3(GameFile &f, ModelBoneDef &b, const modelAnimData &data)
Initialise the bone from an M2 v3+ file.
Abstract base class representing a file within the game data archive.
Core WoW .m2 model: geometry, animation, textures, and character data.
Holds per-model animation metadata: index-to-id mapping, external anim files, and global sequences.
On-disk bone definition (block E) in an M2 file.