KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
matrix.h File Reference

Basic matrix operations. More...

#include <sys/cdefs.h>
#include <dc/vector.h>

Go to the source code of this file.

Macros

#define mat_trans_single(x, y, z)
 Macro to transform a single vertex by the internal matrix.
 
#define mat_trans_single4(x, y, z, w)
 Macro to transform a single vertex by the internal matrix.
 
#define mat_trans_single3(x, y, z)
 Macro to transform a single vertex by the internal matrix.
 
#define mat_trans_nodiv(x, y, z, w)
 Macro to transform a single vertex by the internal matrix with no perspective division.
 
#define mat_trans_single3_nodiv(x, y, z)
 Macro to transform a single 3d vertex coordinate by the internal matrix with no perspective division.
 
#define mat_trans_single3_nomod(x, y, z, x2, y2, z2)
 Macro to transform a single 3d vertex coordinate by the internal matrix with perspective division.
 
#define mat_trans_single3_nodiv_nomod(x, y, z, x2, y2, z2)
 Macro to transform a single 3d vertex coordinate by the internal matrix.
 
#define mat_trans_single3_nodivw(x, y, z, w)
 Macro to transform a single 3d vertex coordinate by the internal matrix.
 
#define mat_trans_single3_nodiv_div(x, y, z, xd, yd, zd)
 Macro to transform a single 3d vertex coordinate by the internal matrix both with and without perspective division.
 
#define mat_trans_normal3(x, y, z)
 Macro to transform a single vertex normal by the internal matrix.
 
#define mat_trans_normal3_nomod(x, y, z, x2, y2, z2)
 Macro to transform a single vertex normal by the internal matrix.
 

Functions

void mat_store (matrix_t *out)
 Copy the internal matrix to a memory one.
 
void mat_load (const matrix_t *src)
 Copy a memory matrix into the internal one.
 
void mat_identity (void)
 Clear the internal matrix to identity.
 
void mat_apply (const matrix_t *src)
 Apply a matrix.
 
void mat_transform (const vector_t *invecs, vector_t *outvecs, int veccnt, int stride)
 Transform vectors by the internal matrix.
 
void mat_transform_sq (void *input, void *output, int veccnt)
 Transform vectors by the internal matrix into the store queues.
 

Detailed Description

Basic matrix operations.

This file contains various basic matrix math functionality for using the SH4's matrix transformation unit. Higher level functionality, like the 3D functionality is built off of these operations.

See also
dc/matrix3d.h
Author
Megan Potter
Josh "PH3NOM" Pearson