blob: 0c55d7ac5c3e879e76abed8770b0fbd388371064 [file] [log] [blame]
#include "Includes.h"
/********************************************************************************
* Golbal defs for Mesa dependent features and objects, *
* X dependent defs are in Interface.h *
********************************************************************************/
#define PI 3.14159265359
#define DTOR(v) (PI/180*v)
#define RTOD(v) (180/PI*v)
/********************************************************************************
* Prototypes for the object system *
********************************************************************************/
ObjPtr Oalloc(char name[57]);
void PrintObject(ObjPtr o);
void PrintPoints(ObjPtr o);
void PrintPoly3s(ObjPtr o);
void PrintPoly4s(ObjPtr o);
ObjPointPtr InsertPoint(ObjPtr o, double x, double y, double z);
void InsertPoly3(ObjPtr o,Point p[3],TexturePtr txture,MaterialPtr mtrial);
void InsertPoly4(ObjPtr o,Point p[3],TexturePtr txture,MaterialPtr mtrial);
void InsertChild(ObjPtr par, ObjPtr chld);
ObjPtr ArrayToPoly3(ObjPtr o,double array[][3],int size);
ObjPtr ArrayToPoly4(ObjPtr o,double array[][3],int size);
void SetObjectColor(ObjPtr o, float R, float G, float B);
void CalcObjectChildren(ObjPtr o,double sx, double sy, double sz,
double ax, double ay, double az,
double dx, double dy, double dz);
void CalcObject(ObjPtr o);
void TranslateAll(ObjPtr o, double dx, double dy, double dz);
void TranslateObjectOverwrite(ObjPtr o, double dx, double dy, double dz);
void TranslateObjectAdd(ObjPtr o, double dx, double dy, double dz);
void RotateAll(ObjPtr o, double ax, double ay, double az);
void RotateObjectAdd(ObjPtr o, double ax, double ay, double az);
void RotateObjectOverwrite(ObjPtr o, double ax, double ay, double az);
void ScaleAll(ObjPtr o, double sx, double sy, double sz);
void ScaleObjectAdd(ObjPtr o, double ax, double ay, double az);
void ScaleObjectOverwrite(ObjPtr o, double ax, double ay, double az);
void Draw_Children(ObjPtr o);
void Draw_Object(ObjPtr o);
void Draw_All_Nexts(ObjPtr o);
void Draw_All_Prevs(ObjPtr o);
void Draw_All(ObjPtr o);
/************************** Trig.c Headers **************************/
void MultMatrixMatrix(Matrix *A, Matrix *B, Matrix *C);
HPoint MultMatrixHPoint(Matrix *mat,HPoint P);
ObjPoint RotatePoint( ObjPoint a, double rx, double ry, double rz);
void PrintMatrix( Matrix Mat);
Matrix * CopyMatrix(Matrix *Mat);
void trigmain(void);
Matrix *ScaleMatrix( double sx, double sy, double sz );
Matrix *RotateMatrix( double rx, double ry, double rz);
Matrix *TranslateMatrix( double dx, double dy, double dz);
Matrix *IdentMatrix( void );
/************************* Convert.c Headers ************************/
HPoint PointToHPoint(ObjPoint P);
HPoint TPointToHPoint(ObjPoint TP);
ObjPoint HPointToPoint(HPoint P);
ObjPoint HPointToTPoint(HPoint P);