8bitworkshop/presets/vector-ataricolor/vec3d.h

37 lines
786 B
C

#ifndef _VEC3D_H
#define _VEC3D_H
#include "vecops.h"
typedef struct {
sbyte m[3][3];
} Matrix;
typedef struct {
sbyte x,y,z;
} Vector8;
typedef struct {
int x,y,z;
} Vector16;
typedef struct {
byte numverts;
const Vector8* verts; // array of vertices
const sbyte* edges; // array of vertex indices (edges)
} Wireframe;
extern const Matrix IDENTITY;
void mat_identity(Matrix* m);
void vec_mat_transform(Vector16* dest, const Vector8* v, const Matrix* m);
sbyte isin(byte x0);
sbyte icos(byte x);
void mat_rotate(Matrix* m, byte axis, byte angle);
void xform_vertices(Vector16* dest, const Vector8* src, const Matrix* m, byte nv);
void draw_wireframe(const Wireframe* wf, Vector16* scrnverts);
void draw_wireframe_ortho(const Wireframe* wf, const Matrix* m);
#endif