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

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