rodecomp/Source/Utility/Math/AffineMatrix.h
ragnarok-clanker e168b4e4a6 Restore translation-unit ownership and publish verified source corrections
Owner-authorized source migration: 31 helper-only translation units were merged into their callers or existing inline headers; both build manifests updated. Includes the preserved source payload, Lua configuration matching wowdecomp, and exact malloca expansion without diagnostic pragmas.

449 native units compiled locally and 449 staged units compiled by the pinned server toolchain. No previously byte-matched function regressed. Compiler mapping diagnostics remain recorded as needs_cleanup, not accepted or peer-confirmed. Existing independent review records are preserved. README.md is intentionally unchanged.
2026-10-25 15:42:21 +00:00

33 lines
993 B
C

#ifndef RAGNAROK_SOURCE_UTILITY_MATH_AFFINEMATRIX_H
#define RAGNAROK_SOURCE_UTILITY_MATH_AFFINEMATRIX_H
extern const float g_identityMatrix[12];
float ClientSin(float radians);
float ClientCos(float radians);
float ClientRadians(int degrees);
float ClientSine(int degrees);
float ClientCosine(int degrees);
struct AffineMatrix {
float values[12];
void Identity();
void SetXRotation(float radians);
void SetYRotation(float radians);
void SetZRotation(float radians);
void RotateX(float radians);
void RotateY(float radians);
void RotateZ(float radians);
void SetTranslation(float x, float y, float z);
void SetScale(float x, float y, float z);
void Scale(float x, float y, float z);
void Translate(const float* position);
void Compose(const AffineMatrix& first, const AffineMatrix& second);
void Inverse(const AffineMatrix& source);
void LookAt(const float* origin, const float* target, const float* up);
};
static_assert(sizeof(AffineMatrix) == 48);
#endif