summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMegaMech <inkstudios1@hotmail.com>2025-05-17 16:23:57 -0600
committerMegaMech <inkstudios1@hotmail.com>2025-05-17 16:23:57 -0600
commit640b8976ee6c657733bd8fd706a37d1757be5ec0 (patch)
treea747957c8d8ecc2828cf9bb3595849fafae46f87 /src
parent6bcd9897dc2571c6267d2dad84abaed63eb1e4c4 (diff)
Compile setTransformMatrix
Diffstat (limited to 'src')
-rw-r--r--src/port/interpolation/FrameInterpolation.cpp26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/port/interpolation/FrameInterpolation.cpp b/src/port/interpolation/FrameInterpolation.cpp
index 65de693a4..14f391cc6 100644
--- a/src/port/interpolation/FrameInterpolation.cpp
+++ b/src/port/interpolation/FrameInterpolation.cpp
@@ -165,8 +165,8 @@ union Data {
struct {
Mat4* dest;
- Vec3f orientationVector;
- Vec3f positionVector;
+ Vec3f* orientationVector;
+ Vec3f* positionVector;
u16 rotationAngle;
f32 scaleFactor;
} set_transform_matrix_data;
@@ -457,25 +457,17 @@ struct InterpolateCtx {
}
case Op::SetTransformMatrix: {
- /*
- Mat4 dest, Vec3f orientationVector, Vec3f positionVector, u16 rotationAngle,
- f32 scaleFactor
-
- set_transform_matrix_data
- */
- interpolate_mtxf(&tmp_mtxf, (MtxF *)&old_op.set_transform_matrix_data.dest, (MtxF *)&new_op.set_transform_matrix_data.dest);
- Vec3f orientationVectorTemp;
- lerp_vec3f(&orientationVectorTemp, &old_op.set_transform_matrix_data.orientationVector,
- &new_op.set_transform_matrix_data.orientationVector);
- Vec3f positionVector;
- lerp_vec3f(&orientationVectorTemp, &old_op.set_transform_matrix_data.positionVector,
- &new_op.set_transform_matrix_data.positionVector);
+ lerp_vec3f(&tmp_vec3f, &old_op.set_transform_matrix_data.orientationVector[0],
+ &new_op.set_transform_matrix_data.orientationVector[0]);
+
+ lerp_vec3f(&tmp_vec3f2, &old_op.set_transform_matrix_data.positionVector[0],
+ &new_op.set_transform_matrix_data.positionVector[0]);
u16 rotationAngleTemp = lerp_s16(old_op.set_transform_matrix_data.rotationAngle,
new_op.set_transform_matrix_data.rotationAngle);
f32 scaleFactorTemp = lerp(old_op.set_transform_matrix_data.scaleFactor, new_op.set_transform_matrix_data.scaleFactor);
- set_transform_matrix(tmp_mtxf.mf, orientationVectorTemp, positionVector, rotationAngleTemp, scaleFactorTemp);
+ set_transform_matrix(*gInterpolationMatrix, tmp_vec3f, tmp_vec3f2, rotationAngleTemp, scaleFactorTemp);
break;
}
@@ -612,7 +604,7 @@ void FrameInterpolation_Record_set_transform_matrix(Mat4* dest, Vec3f orientatio
f32 scaleFactor) {
if (!is_recording)
return;
- append(Op::SetTransformMatrix).set_transform_matrix_data = { dest, orientationVector[0], positionVector[0], (f32)rotationAngle, scaleFactor};
+ append(Op::SetTransformMatrix).set_transform_matrix_data = { dest, (Vec3f*)&orientationVector[0], (Vec3f*)&positionVector[0], rotationAngle, scaleFactor};
}
// Make a template for deref