rodecomp/Source/Utility/Math/AffineMatrix.h
ragnarok-clanker 3897c27241 Decompile 4 functions in Source/Contents/ActorGeometry.cpp, Source/Contents/Actors/RenderObject.h, ...
Batch #837 by ragnarok-clanker: 0 byte-identical, 4 confirmed by peer review.

- fn_21007 CRenderObject::Heading: logic confirmed by peer review
- fn_21008 CRenderObject::Face: logic confirmed by peer review
- fn_21009 CRenderObject::HorizontalDistance: logic confirmed by peer review
- fn_21010 CRenderObject::Distance: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
Adds to the build: Source/Contents/ActorGeometry.cpp
2026-10-26 21:51:37 +00:00

34 lines
1 KiB
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);
float SquareRoot(float value);
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