#ifndef __camera_h_ #define __camera_h_ #include "GL/glut.h" #define OCTAHEDRON 6 // number of vertices #define CUBE 8 #define ICOSAHEDRON 12 #define DODECAHEDRON 20 namespace VMI { typedef struct _Camera { GLdouble eyeX, eyeY, eyeZ; GLdouble centerX, centerY, centerZ; GLdouble upX, upY, upZ; GLdouble weight; } Camera; extern Camera *loadCameras(GLdouble radius, char* filename, GLuint *numCameras); extern void saveCameras(char* filename, Camera *cameras, GLuint numCameras); extern void copyToCameras(Camera *cameras, int numVertices, GLdouble vertices[][3]); extern void setCameraWeights(Camera *cameras, GLuint numCameras, GLdouble *weights); extern Camera *setCameras(GLdouble radius, GLuint type, GLuint *numCameras); extern void printCameras(Camera *cameras, GLuint numCameras); extern void drawSphere(Camera *cameras, GLdouble radius, int slices, int stacks); extern void drawOctahedron(Camera *cameras, GLdouble r); extern void drawCube(Camera *cameras, GLdouble r); extern void drawIcosahedron(Camera *cameras, GLdouble r); extern void drawDodecahedron(Camera *cameras, GLdouble r); } #endif