source: GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/vmi/include/global.h @ 2127

Revision 2127, 3.5 KB checked in by gumbau, 17 years ago (diff)
Line 
1#ifndef __global_h_
2#define __global_h_
3
4#include <assert.h>
5
6#include "glm.h"
7#include "camera.h"
8#include "mesh.h"
9#include "color.h"
10#include "change.h"
11
12//      For progress update.
13#include        "GeoMesh.h"
14
15#ifndef TRUE
16#define TRUE    1
17#endif /* TRUE */
18
19#ifndef FALSE
20#define FALSE   0
21#endif /* FALSE */
22
23#ifndef false
24#define false   ((char) 0)
25#endif
26#ifndef true
27#define true    ((char) 1)
28#endif
29
30#ifndef MAX
31#define MAX(a,b) ( (a) > (b) ? (a) : (b) )
32#endif
33#ifndef MIN
34#define MIN(a,b) ( (a) < (b) ? (a) : (b) )
35#endif
36#ifndef ABS
37#define ABS(a)   ( (a) >= 0 ? (a) : (-(a)) )
38#endif
39
40#define MAX_CHAR 256
41
42//#define DEBUG
43
44// Geometry acceleration technique
45//#define IMMEDIATE_MODE
46//#define VERTEX_ARRAY_INTERLEAVE
47//#define VERTEX_ARRAY
48#define VERTEX_BUFFER_OBJECTS
49
50// Viewpoint metric
51//#define KL
52#define MI
53//#define HE
54//#define CS
55
56// Histogram technique
57//#define USE_OCCLUSION_QUERY
58#define HYBRID_HW_SW_HISTOGRAM
59
60//#define SALIENCY
61
62#define CHECK_LOCAL_INVERSION
63
64// Extension added into the filename
65#ifdef KL // Kullback-Leibler
66#define EXT "VKL"
67#endif
68#ifdef MI // Mutual Information
69#define EXT "VMI"
70#endif
71#ifdef HE // Hellinger
72#define EXT "VHE"
73#endif
74#ifdef CS // Chi-Square
75#define EXT "VCS"
76#endif
77
78#define CHECK_OPENGL_ERROR( cmd ) \
79{ GLenum error; \
80    while ( ( error = glGetError() ) != GL_NO_ERROR ) { \
81    printf( "[%s:%d] ’%s’failed with error %s\n", \
82    __FILE__, __LINE__, \
83    cmd, gluErrorString(error) ); \
84    } \
85}
86
87#define CHECK_FRAMEBUFFER_STATUS()                            \
88{                                                             \
89    GLenum status;                                            \
90    status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); \
91    switch(status) {                                          \
92    case GL_FRAMEBUFFER_COMPLETE_EXT:                         \
93        break;                                                \
94    case GL_FRAMEBUFFER_UNSUPPORTED_EXT:                      \
95        /* choose different formats */                        \
96        break;                                                \
97    default:                                                  \
98        /* programming error; will fail on all hardware */    \
99        assert(0);                                            \
100    } \
101}
102
103namespace       VMI
104{
105
106extern GLMmodel* pmodel; // Vertices start at position 1
107
108extern GLubyte *pixels;
109
110extern Camera *cameras;
111extern int numCameras;
112
113extern Color *colors;
114
115extern int **histogram;
116extern GLuint *queries;
117
118extern Mesh *mesh;
119
120extern GLdouble *initialIs;
121
122extern GLdouble  radius;
123extern GLdouble  fov;
124extern int    numDemandedTriangles,
125                 cameraType;
126extern GLboolean bBeQuiet,
127                 bEnableOffScreen,
128                 bSaveLog,
129                 bLoadCamerasFromFile,
130                                                                 bRemoveRedundantVertices;
131
132extern GLsizei width, height;
133
134extern int vmiWin;
135
136extern char filename[MAX_CHAR];
137
138extern void init(void);
139
140extern void resetProjectedAreas(int **histogram, int numCameras);
141extern void getProjectedAreas(int **histogram, int numCameras);
142extern void getProjectedAreasWin(int **histogram, int numCameras, Change *c);
143
144extern void renderGeometry(void);
145
146extern void drawTexture(void);
147
148extern void display(void);
149
150extern void freeMemory(void);
151
152extern void applyHWAcceleration(void);
153extern void updateHWAcceleration(Change *c);
154extern void setOrthographicProjection(void);
155extern void resetPerspectiveProjection(void);
156extern void renderBitmapString(float x, float y, void *font, char *string);
157
158//      For progress update
159extern  Geometry::TIPOFUNC      mUPB;
160
161}
162
163#endif
164
Note: See TracBrowser for help on using the repository browser.