#include "_tess"
#include "mesh"
#include "normal"
#include "sweep"
#include "tessmono"
#include "render"
#include "undef"
Go to the source code of this file.
|
GLUAPI GLUtesselator *GLUAPIENTRY | gluNewTess (void) |
|
GLUAPI void GLUAPIENTRY | gluDeleteTess (GLUtesselator *tess) |
|
GLUAPI void GLUAPIENTRY | gluTessBeginContour (GLUtesselator *tess) |
|
GLUAPI void GLUAPIENTRY | gluTessBeginPolygon (GLUtesselator *tess, GLUvoid *data) |
|
GLUAPI void GLUAPIENTRY | gluTessCallback (GLUtesselator *tess, GLUenum which, _GLUfuncptr CallBackFunc) |
|
GLUAPI void GLUAPIENTRY | gluTessEndContour (GLUtesselator *tess) |
|
GLUAPI void GLUAPIENTRY | gluTessEndPolygon (GLUtesselator *tess) |
|
GLUAPI void GLUAPIENTRY | gluTessNormal (GLUtesselator *tess, GLUdouble valueX, GLUdouble valueY, GLUdouble valueZ) |
|
GLUAPI void GLUAPIENTRY | gluTessProperty (GLUtesselator *tess, GLUenum which, GLUdouble data) |
|
GLUAPI void GLUAPIENTRY | gluTessVertex (GLUtesselator *tess, GLUdouble *location, GLUvoid *data) |
|
inline void GLUAPIENTRY | static_noBegin (GLUenum) |
|
inline void GLUAPIENTRY | static_noEdgeFlag (GLUboolean) |
|
inline void GLUAPIENTRY | static_noVertex (void *) |
|
inline void GLUAPIENTRY | static_noEnd (void) |
|
inline void GLUAPIENTRY | static_noError (GLUenum) |
|
inline void GLUAPIENTRY | static_noCombine (GLUdouble[3], void *[4], GLUfloat[4], void **) |
|
inline void GLUAPIENTRY | static_noMesh (GLUmesh *) |
|
void GLUAPIENTRY | __gl_noBeginData (GLUenum, void *) |
|
void GLUAPIENTRY | __gl_noEdgeFlagData (GLUboolean, void *) |
|
void GLUAPIENTRY | __gl_noVertexData (void *, void *) |
|
void GLUAPIENTRY | __gl_noEndData (void *) |
|
void GLUAPIENTRY | __gl_noErrorData (GLUenum, void *) |
|
void GLUAPIENTRY | __gl_noCombineData (GLUdouble[3], void *[4], GLUfloat[4], void **, void *) |
|
size_t | MAX_FAST_ALLOC () |
|
inline void | static_MakeDormant (GLUtesselator *tess) |
|
inline void | static_GotoState (GLUtesselator *tess, enum TessState newState) |
|
void GLUAPIENTRY | gluGetTessProperty (GLUtesselator *tess, GLUenum which, GLUdouble *value) |
|
void GLUAPIENTRY | gluTessCallback_GLU_TESS_VERTEX_DATA (GLUtesselator *tess, void(GLUAPIENTRY *a_fn)(void *, void *)) |
|
void GLUAPIENTRY | gluTessCallback_GLU_TESS_BEGIN_DATA (GLUtesselator *tess, void(GLUAPIENTRY *a_fn)(GLUenum, void *)) |
|
void GLUAPIENTRY | gluTessCallback_GLU_TESS_END_DATA (GLUtesselator *tess, void(GLUAPIENTRY *a_fn)(void *)) |
|
void GLUAPIENTRY | gluTessCallback_GLU_TESS_ERROR_DATA (GLUtesselator *tess, void(GLUAPIENTRY *a_fn)(GLUenum, void *)) |
|
void GLUAPIENTRY | gluTessCallback_GLU_TESS_COMBINE_DATA (GLUtesselator *tess, void(GLUAPIENTRY *a_fn)(GLUdouble[3], void *[4], GLUfloat[4], void **, void *)) |
|
inline int | static_AddVertex (GLUtesselator *tess, GLUdouble coords[3], void *data) |
|
inline void | static_CacheVertex (GLUtesselator *tess, GLUdouble coords[3], void *data) |
|
inline int | static_EmptyCache (GLUtesselator *tess) |
|
void GLUAPIENTRY | gluTessVertex (GLUtesselator *tess, GLUdouble coords[3], void *data) |
|
◆ GLU_TESS_DEFAULT_TOLERANCE
#define GLU_TESS_DEFAULT_TOLERANCE 0.0 |
◆ GLU_TESS_MESH
#define GLU_TESS_MESH 100112 /* void (*)(GLUmesh *mesh) */ |
◆ RequireState
#define RequireState |
( |
|
tess, |
|
|
|
s |
|
) |
| if( tess->state != s ) static_GotoState(tess,s) |
◆ tools_glutess_glutess
#define tools_glutess_glutess |
◆ __gl_noBeginData()
◆ __gl_noCombineData()
◆ __gl_noEdgeFlagData()
◆ __gl_noEndData()
◆ __gl_noErrorData()
◆ __gl_noVertexData()
◆ gluDeleteTess()
◆ gluGetTessProperty()
◆ gluNewTess()
◆ gluTessBeginContour()
◆ gluTessBeginPolygon()
◆ gluTessCallback()
Definition at line 269 of file glutess.
276 tess->callBeginData = (fn == NULL) ?
288 tess->callEdgeFlagData= (fn == NULL) ?
300 tess->callVertexData = (fn == NULL) ?
314 tess->callErrorData = (fn == NULL) ?
◆ gluTessCallback_GLU_TESS_BEGIN_DATA()
◆ gluTessCallback_GLU_TESS_COMBINE_DATA()
◆ gluTessCallback_GLU_TESS_END_DATA()
◆ gluTessCallback_GLU_TESS_ERROR_DATA()
◆ gluTessCallback_GLU_TESS_VERTEX_DATA()
◆ gluTessEndContour()
◆ gluTessEndPolygon()
Definition at line 493 of file glutess.
497 if (setjmp(tess->
env) != 0) {
506 if( tess->
mesh == NULL ) {
534 longjmp(tess->
env,1);
550 if (rc == 0) longjmp(tess->
env,1);
576 (*tess->callMesh)( mesh );
◆ gluTessNormal()
◆ gluTessProperty()
Definition at line 168 of file glutess.
174 if( value < 0.0 || value > 1.0 )
break;
180 if( windingRule != value )
break;
182 switch( windingRule ) {
◆ gluTessVertex() [1/2]
◆ gluTessVertex() [2/2]
Definition at line 408 of file glutess.
422 for( i = 0; i < 3; ++i ) {
438 if( tess->
mesh == NULL ) {
◆ MAX_FAST_ALLOC()
size_t MAX_FAST_ALLOC |
( |
| ) |
|
|
inline |
◆ static_AddVertex()
Definition at line 338 of file glutess.
347 if (e == NULL)
return 0;
◆ static_CacheVertex()
◆ static_EmptyCache()
Definition at line 389 of file glutess.
395 if (tess->
mesh == NULL)
return 0;
397 for( vLast = v + tess->
cacheCount; v < vLast; ++v ) {
◆ static_GotoState()
Definition at line 121 of file glutess.
123 while( tess->
state != newState ) {
127 if( tess->
state < newState ) {
128 switch( tess->
state ) {
141 switch( tess->
state ) {
◆ static_MakeDormant()
Definition at line 107 of file glutess.
111 if( tess->
mesh != NULL ) {
◆ static_noBegin()
◆ static_noCombine()
◆ static_noEdgeFlag()
◆ static_noEnd()
◆ static_noError()
◆ static_noMesh()
◆ static_noVertex()
#define GLU_TESS_MISSING_END_POLYGON
inline void GLUAPIENTRY static_noCombine(GLUdouble[3], void *[4], GLUfloat[4], void **)
GLUhalfEdge * __gl_meshSplitEdge(GLUhalfEdge *eOrg)
void GLUAPIENTRY __gl_noBeginData(GLUenum, void *)
#define GLU_TESS_WINDING_POSITIVE
#define GLU_TESS_DEFAULT_TOLERANCE
#define GLU_TESS_TOLERANCE
#define GLU_TESS_BOUNDARY_ONLY
void GLUAPIENTRY __gl_noEdgeFlagData(GLUboolean, void *)
CachedVertex cache[GLU_TESS_MAX_CACHE]
#define GLU_TESS_MISSING_END_CONTOUR
int __gl_computeInterior(GLUtesselator *tess)
#define GLU_TESS_COMBINE_DATA
int __gl_meshSplice(GLUhalfEdge *eOrg, GLUhalfEdge *eDst)
#define GLU_TESS_MISSING_BEGIN_CONTOUR
void __gl_projectPolygon(GLUtesselator *tess)
void GLUAPIENTRY __gl_noErrorData(GLUenum, void *)
void __gl_meshDeleteMesh(GLUmesh *mesh)
GLUAPI void GLUAPIENTRY gluTessBeginPolygon(GLUtesselator *tess, GLUvoid *data)
inline void GLUAPIENTRY static_noEdgeFlag(GLUboolean)
inline void static_CacheVertex(GLUtesselator *tess, GLUdouble coords[3], void *data)
#define GLU_TESS_WINDING_ABS_GEQ_TWO
void GLUAPIENTRY __gl_noEndData(void *)
int __gl_meshTessellateInterior(GLUmesh *mesh)
GLUboolean __gl_renderCache(GLUtesselator *tess)
#define GLU_TESS_WINDING_NEGATIVE
void __gl_renderMesh(GLUtesselator *tess, GLUmesh *mesh)
inline void static_MakeDormant(GLUtesselator *tess)
#define GLU_TESS_MISSING_BEGIN_POLYGON
inline void GLUAPIENTRY static_noError(GLUenum)
#define RequireState(tess, s)
#define CALL_ERROR_OR_ERROR_DATA(a)
inline void GLUAPIENTRY static_noEnd(void)
GLUAPI void GLUAPIENTRY gluTessBeginContour(GLUtesselator *tess)
#define GLU_TESS_ERROR_DATA
#define GLU_TESS_WINDING_ODD
#define GLU_TESS_MAX_CACHE
#define GLU_OUT_OF_MEMORY
void __gl_meshDiscardExterior(GLUmesh *mesh)
#define GLU_TESS_END_DATA
#define GLU_TESS_COORD_TOO_LARGE
GLUAPI void GLUAPIENTRY gluTessEndContour(GLUtesselator *tess)
GLUhalfEdge * __gl_meshMakeEdge(GLUmesh *mesh)
#define GLU_TESS_BEGIN_DATA
#define GLU_INVALID_VALUE
#define GLU_TESS_EDGE_FLAG
#define GLU_TESS_EDGE_FLAG_DATA
inline int static_EmptyCache(GLUtesselator *tess)
inline void GLUAPIENTRY static_noVertex(void *)
void GLUAPIENTRY __gl_noVertexData(void *, void *)
GLUmesh * __gl_meshNewMesh(void)
void GLUAPIENTRY __gl_noCombineData(GLUdouble[3], void *[4], GLUfloat[4], void **, void *)
inline int static_AddVertex(GLUtesselator *tess, GLUdouble coords[3], void *data)
#define GLU_TESS_WINDING_NONZERO
inline void GLUAPIENTRY static_noBegin(GLUenum)
void __gl_meshCheckMesh(GLUmesh *mesh)
void __gl_renderBoundary(GLUtesselator *tess, GLUmesh *mesh)
#define GLU_TESS_VERTEX_DATA
int __gl_meshSetWindingNumber(GLUmesh *mesh, int value, GLUboolean keepOnlyBoundary)
#define GLU_TESS_WINDING_RULE
#define GLU_TESS_MAX_COORD
inline void GLUAPIENTRY static_noMesh(GLUmesh *)