jabyengine/include/PSX/GTE/gte.hpp

62 lines
1.6 KiB
C++

#pragma once
#include "gte_instruction.hpp"
namespace JabyEngine {
namespace GTE {
/*
RotTrans
Jaby: Can we use gte_stsv instead of gte_stlvnl for writing to a SVECTOR?
Do we have to use gte_stflg??
Look at: RotTransSV???
Perform coordinate transformation using a rotation matrix
input: Input vector
output: Output vector
flag: flag output
*/
void rot_trans(const SVECTOR& input, VECTOR& output, int32_t& flag);
/*
SetRotMatrix
Sets a 3x3 matrix m as a constant rotation matrix.
matrix: The rotation matrix to set
*/
void set_rot_matrix(const MATRIX& matrix);
/*
SetTransMatrix
Sets a constant parallel transfer vector specified by m
*/
void set_trans_matrix(const MATRIX& matrix);
/*
MulMatrix0
m0: first input
m1: second input
result: result of multiplication
returns: result
Multiplies two matrices m0 and m1.
The function destroys the constant rotation matrix
*/
MATRIX& mult_matrix(const MATRIX& m0, const MATRIX& m1, MATRIX& result);
/*
SetGeomOffset(ofx,ofy)
Load GTE-offset.
*/
void set_geom_offset(int32_t off_x, int32_t off_y);
/*
SetGeomScreen(h)
Load distance from viewpoint to screen.
*/
void set_geom_screen(int32_t h);
}
}