47#define GLU_TESS_DEFAULT_TOLERANCE 0.0
48#define GLU_TESS_MESH 100112
68 void *polygonData ) {}
70 void *polygonData ) {}
72 void *polygonData ) {}
75 void *polygonData ) {}
80 void *polygonData ) {}
86#define MAX(a,b) ((a) > (b) ? (a) : (b))
87#define MAX_FAST_ALLOC (MAX(sizeof(EdgePair), \
88 MAX(sizeof(GLUvertex),sizeof(GLUface))))
122 tess->callEnd = &
noEnd;
152#define RequireState( tess, s ) if( tess->state != s ) GotoState(tess,s)
156 while( tess->
state != newState ) {
160 if( tess->
state < newState ) {
161 switch( tess->
state ) {
174 switch( tess->
state ) {
207 if( value < 0.0 || value > 1.0 )
break;
213 if( windingRule !=
value )
break;
215 switch( windingRule ) {
283 tess->callBeginData = (
fn ==
NULL) ?
295 tess->callEdgeFlagData= (
fn ==
NULL) ?
307 tess->callVertexData = (
fn ==
NULL) ?
321 tess->callErrorData = (
fn ==
NULL) ?
354 if (
e ==
NULL)
return 0;
376 e->Sym->winding = -1;
429 for(
i = 0;
i < 3; ++
i ) {
541 longjmp(tess->
env,1);
557 if (rc == 0) longjmp(tess->
env,1);
561 if( tess->callBegin != &
noBegin || tess->callEnd != &
noEnd
574 if( tess->callMesh != &
noMesh ) {
583 (*tess->callMesh)(
mesh );
#define GLU_TESS_WINDING_NONZERO
#define GLU_TESS_WINDING_POSITIVE
#define GLU_TESS_BOUNDARY_ONLY
#define GLU_TESS_BEGIN_DATA
#define GLU_TESS_COMBINE_DATA
#define GLU_TESS_MISSING_BEGIN_CONTOUR
#define GLU_TESS_WINDING_NEGATIVE
#define GLU_TESS_END_DATA
#define GLU_TESS_WINDING_RULE
#define GLU_TESS_EDGE_FLAG
#define GLU_TESS_MISSING_END_CONTOUR
#define GLU_TESS_TOLERANCE
#define GLU_TESS_EDGE_FLAG_DATA
#define GLU_TESS_WINDING_ODD
#define GLU_TESS_COORD_TOO_LARGE
#define GLU_TESS_VERTEX_DATA
#define GLU_TESS_MISSING_BEGIN_POLYGON
#define GLU_TESS_MAX_COORD
#define GLU_OUT_OF_MEMORY
#define GLU_TESS_MISSING_END_POLYGON
#define GLU_TESS_ERROR_DATA
#define GLU_INVALID_VALUE
#define GLU_TESS_WINDING_ABS_GEQ_TWO
GLUhalfEdge * __gl_meshMakeEdge(GLUmesh *mesh)
GLUhalfEdge * __gl_meshSplitEdge(GLUhalfEdge *eOrg)
void __gl_meshCheckMesh(GLUmesh *mesh)
void __gl_meshDeleteMesh(GLUmesh *mesh)
GLUmesh * __gl_meshNewMesh(void)
int __gl_meshSplice(GLUhalfEdge *eOrg, GLUhalfEdge *eDst)
GLboolean __gl_renderCache(GLUtesselator *tess)
void __gl_renderMesh(GLUtesselator *tess, GLUmesh *mesh)
void __gl_renderBoundary(GLUtesselator *tess, GLUmesh *mesh)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define gluTessEndPolygon
#define gluTessBeginContour
#define gluTessEndContour
#define gluGetTessProperty
#define gluTessBeginPolygon
void __gl_projectPolygon(GLUtesselator *tess)
CachedVertex cache[TESS_MAX_CACHE]
int __gl_computeInterior(GLUtesselator *tess)
void GLAPIENTRY __gl_noErrorData(GLenum errnum, void *polygonData)
static int AddVertex(GLUtesselator *tess, GLdouble coords[3], void *data)
static void GLAPIENTRY noEdgeFlag(GLboolean boundaryEdge)
void GLAPIENTRY __gl_noEdgeFlagData(GLboolean boundaryEdge, void *polygonData)
static int EmptyCache(GLUtesselator *tess)
static void MakeDormant(GLUtesselator *tess)
static void GLAPIENTRY noBegin(GLenum type)
GLUtesselator *GLAPIENTRY gluNewTess(void)
static void CacheVertex(GLUtesselator *tess, GLdouble coords[3], void *data)
#define RequireState(tess, s)
static void GLAPIENTRY noMesh(GLUmesh *mesh)
void GLAPIENTRY __gl_noEndData(void *polygonData)
#define GLU_TESS_DEFAULT_TOLERANCE
void GLAPIENTRY __gl_noVertexData(void *data, void *polygonData)
static void GLAPIENTRY noError(GLenum errnum)
static void GLAPIENTRY noEnd(void)
void GLAPIENTRY __gl_noCombineData(GLdouble coords[3], void *data[4], GLfloat weight[4], void **outData, void *polygonData)
static void GotoState(GLUtesselator *tess, enum TessState newState)
static void GLAPIENTRY noCombine(GLdouble coords[3], void *data[4], GLfloat weight[4], void **dataOut)
static void GLAPIENTRY noVertex(void *data)
void GLAPIENTRY __gl_noBeginData(GLenum type, void *polygonData)
#define CALL_ERROR_OR_ERROR_DATA(a)
int __gl_meshSetWindingNumber(GLUmesh *mesh, int value, GLboolean keepOnlyBoundary)
void __gl_meshDiscardExterior(GLUmesh *mesh)
int __gl_meshTessellateInterior(GLUmesh *mesh)
static GLenum _GLUfuncptr fn
void(WINAPI * _GLUfuncptr)(void)