#ifndef _ELITEUTILS_H #define _ELITEUTILS_H #include #include #include #define PI acos(-1.0) typedef struct MaterialStruct { float emission[4]; float ambient[4]; float diffuse[4]; float specular[4]; float shininess[1]; } Material; typedef struct Point2Struct { float x, y; } Point2; typedef struct Point3Struct { float x, y, z; } Point3; GLvoid drawEliteObject(int numberOfFaces, Point3 vertex[], long face[], Material material[]); GLvoid drawEliteObject2(int numberOfFaces, Point3 vertex[], long face[], Material material[]); GLvoid renderBitmapString(void *font, char *string); // routa il vettore vView attorno all'asse axis dell'angolo angle in gradi extern Point3 RotateVector(float angle, Point3 axis, Point3 vView); // calcola prodotto esterno extern Point3 Cross(Point3 vVector1, Point3 vVector2); // calcola la normale ad un triangolo di vertici v1,v2,v3 extern Point3 Calc_normal(Point3 v1, Point3 v2, Point3 v3) ; /* Prodotto scalare tra due vettori */ extern float ProdScal(Point3 v1, Point3 v2); extern Point3 Normalize(Point3 v); Point3 Scalar(Point3 v, float s); void drawSight(float x, float y); #endif /* Credits: Riccardo Giannitrapani per la scrittura di bitmap Ben Humphrey (DigiBen@GameTutorials.com) per la texture e la classe camera Tutorial SGI (quello che c'e' sulla pagina web del lab) in generale */