00001
00037 #ifndef _OGL_H_
00038 #define _OGL_H_
00039
00040 #include <sg/sg_base.h>
00041
00042
00043
00044
00045
00046
00047
00053 struct sOgl {
00054
00056 int frameMode;
00058 int orthoMode;
00060 int ballMode;
00062 int bboxMode;
00064 int mouseMode;
00066 int lightMode;
00068 int backMode;
00069
00071 int viewWidth;
00073 int viewHeight;
00075 float eyezInit;
00077 float scale;
00079 float eye[3];
00081 float origin[3];
00083 float trans[3];
00085 float min[3];
00087 float max[3];
00089 float bboxCoord[8][3];
00090
00092 int mouseDown;
00094 float r0[3];
00096 float r1[3];
00098 float r2[3];
00100 float s1[3];
00102 float s2[3];
00104 float t1[3];
00106 float t2[3];
00108 float quat[4];
00110 float quatDrag[4];
00111
00113 int list[10];
00115 int listMode[10];
00117 int ball;
00119 int bbox;
00121 int bboxUpdate;
00122
00123 };
00124
00130 typedef struct sOgl Ogl;
00131
00132
00133
00134
00135
00136
00137 #if !defined(VINLINE_OGL)
00138 #else
00139 #endif
00140
00150 Ogl* Ogl_ctor(int frameMode, int orthoMode);
00151
00160 void Ogl_dtor(Ogl **thee);
00161
00170 void Ogl_initBegin(Ogl *thee);
00171
00180 void Ogl_initEnd(Ogl *thee);
00181
00192 void Ogl_beginList(Ogl *thee, int list, int show);
00193
00202 void Ogl_endList(Ogl *thee);
00203
00224 void Ogl_addListObject(Ogl *thee,
00225 int type, int numPV, float vx[][3], float c[4], float r, char text[]);
00226
00237 void Ogl_reshape(Ogl *thee, int w, int h);
00238
00286 void Ogl_display(Ogl *thee);
00287
00296 int Ogl_lightModeOnOff(Ogl *thee);
00297
00306 int Ogl_orthoModeOnOff(Ogl *thee);
00307
00316 int Ogl_frameModeOnOff(Ogl *thee);
00317
00326 int Ogl_ballModeOnOff(Ogl *thee);
00327
00336 int Ogl_bboxModeOnOff(Ogl *thee);
00337
00347 int Ogl_listModeOnOff(Ogl *thee, int list);
00348
00358 int Ogl_isList(Ogl *thee, int list);
00359
00369 int Ogl_isListOn(Ogl *thee, int list);
00370
00380 void Ogl_setMouseMode(Ogl *thee, int value);
00381
00392 void Ogl_mouseDown(Ogl *thee, int x, int y);
00393
00404 void Ogl_mouseUp(Ogl *thee, int x, int y);
00405
00416 void Ogl_mouseMotion(Ogl *thee, int x, int y);
00417
00426 int Ogl_spin(Ogl *thee);
00427
00436 void Ogl_resetPos(Ogl *thee);
00437
00438 #endif
00439
00440