28#define TESS_MAX_CACHE 100
30typedef struct CachedVertex
42 GLUhalfEdge *lastEdge;
46 void(GLAPIENTRY *callError)(GLenum errnum);
56 GLdouble relTolerance;
64 void(GLAPIENTRY *callCombine)(GLdouble coords[3],
void *data[4], GLfloat weight[4],
void **outData);
68 GLboolean flagBoundary;
69 GLboolean boundaryOnly;
70 GLUface *lonelyTriList;
73 void(GLAPIENTRY *callBegin)(GLenum
type);
74 void(GLAPIENTRY *callEdgeFlag)(GLboolean boundaryEdge);
75 void(GLAPIENTRY *callVertex)(
void *data);
76 void(GLAPIENTRY *callEnd)(void);
77 void(GLAPIENTRY *callMesh)(GLUmesh *mesh);
83 CachedVertex cache[TESS_MAX_CACHE];
86 void(GLAPIENTRY *callBeginData)(GLenum
type,
void *polygonData);
87 void(GLAPIENTRY *callEdgeFlagData)(GLboolean boundaryEdge,
void *polygonData);
88 void(GLAPIENTRY *callVertexData)(
void *data,
void *polygonData);
89 void(GLAPIENTRY *callEndData)(
void *polygonData);
90 void(GLAPIENTRY *callErrorData)(GLenum errnum,
void *polygonData);
91 void(GLAPIENTRY *callCombineData)(GLdouble coords[3],
void *data[4], GLfloat weight[4],
void **outData,
99void GLAPIENTRY __gl_noBeginData(GLenum type,
void *polygonData);
100void GLAPIENTRY __gl_noEdgeFlagData(GLboolean boundaryEdge,
void *polygonData);
101void GLAPIENTRY __gl_noVertexData(
void *data,
void *polygonData);
102void GLAPIENTRY __gl_noEndData(
void *polygonData);
103void GLAPIENTRY __gl_noErrorData(GLenum errnum,
void *polygonData);
104void GLAPIENTRY __gl_noCombineData(GLdouble coords[3],
void *data[4], GLfloat weight[4],
void **outData,
107#define CALL_BEGIN_OR_BEGIN_DATA(a) \
108 if (tess->callBeginData != &__gl_noBeginData) \
109 (*tess->callBeginData)((a), tess->polygonData); \
111 (*tess->callBegin)((a));
113#define CALL_VERTEX_OR_VERTEX_DATA(a) \
114 if (tess->callVertexData != &__gl_noVertexData) \
115 (*tess->callVertexData)((a), tess->polygonData); \
117 (*tess->callVertex)((a));
119#define CALL_EDGE_FLAG_OR_EDGE_FLAG_DATA(a) \
120 if (tess->callEdgeFlagData != &__gl_noEdgeFlagData) \
121 (*tess->callEdgeFlagData)((a), tess->polygonData); \
123 (*tess->callEdgeFlag)((a));
125#define CALL_END_OR_END_DATA() \
126 if (tess->callEndData != &__gl_noEndData) \
127 (*tess->callEndData)(tess->polygonData); \
131#define CALL_COMBINE_OR_COMBINE_DATA(a, b, c, d) \
132 if (tess->callCombineData != &__gl_noCombineData) \
133 (*tess->callCombineData)((a), (b), (c), (d), tess->polygonData); \
135 (*tess->callCombine)((a), (b), (c), (d));
137#define CALL_ERROR_OR_ERROR_DATA(a) \
138 if (tess->callErrorData != &__gl_noErrorData) \
139 (*tess->callErrorData)((a), tess->polygonData); \
141 (*tess->callError)((a));
Type type(const QSqlDatabase &db)