98 if(
f->inside && !
f->marked ) {
126 if( !
tess->flagBoundary ) {
135 (*(max.render))(
tess, max.eStart, max.size );
146#define Marked(f) (! (f)->inside || (f)->marked)
148#define AddToTrail(f,t) ((f)->trail = (t), (t) = (f), (f)->marked = TRUE)
150#define FreeTrail(t) do { \
151 while( (t) != NULL ) { \
152 (t)->marked = FALSE; t = (t)->trail; \
183#define IsEven(n) (((n) & 1) == 0)
260 for( ;
f !=
NULL;
f =
f->trail ) {
265 if(
tess->flagBoundary ) {
278 }
while(
e !=
f->anEdge );
295 e->Lface->marked =
TRUE;
318 e->Lface->marked =
TRUE;
324 e->Lface->marked =
TRUE;
354 }
while(
e !=
f->anEdge );
363#define SIGN_INCONSISTENT 2
399 xc =
vc->coords[0] -
v0->coords[0];
400 yc =
vc->coords[1] -
v0->coords[1];
401 zc =
vc->coords[2] -
v0->coords[2];
404 xc =
vc->coords[0] -
v0->coords[0];
405 yc =
vc->coords[1] -
v0->coords[1];
406 zc =
vc->coords[2] -
v0->coords[2];
423 }
else if( dot != 0 ) {
452 if(
tess->cacheCount < 3 ) {
475 switch(
tess->windingRule ) {
#define GLU_TESS_WINDING_NONZERO
#define GLU_TESS_WINDING_POSITIVE
#define GLU_TESS_WINDING_NEGATIVE
#define GLU_TESS_WINDING_ODD
#define GL_TRIANGLE_STRIP
#define GLU_TESS_WINDING_ABS_GEQ_TWO
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
static struct FaceCount MaximumFan(GLUhalfEdge *eOrig)
static void RenderStrip(GLUtesselator *tess, GLUhalfEdge *eStart, long size)
#define SIGN_INCONSISTENT
static void RenderMaximumFaceGroup(GLUtesselator *tess, GLUface *fOrig)
static struct FaceCount MaximumStrip(GLUhalfEdge *eOrig)
GLboolean __gl_renderCache(GLUtesselator *tess)
static void RenderLonelyTriangles(GLUtesselator *tess, GLUface *head)
static void RenderTriangle(GLUtesselator *tess, GLUhalfEdge *eStart, long size)
void __gl_renderMesh(GLUtesselator *tess, GLUmesh *mesh)
void __gl_renderBoundary(GLUtesselator *tess, GLUmesh *mesh)
static void RenderFan(GLUtesselator *tess, GLUhalfEdge *eStart, long size)
static int ComputeNormal(GLUtesselator *tess, GLdouble norm[3], int check)
void(* render)(GLUtesselator *, GLUhalfEdge *, long)
#define CALL_EDGE_FLAG_OR_EDGE_FLAG_DATA(a)
#define CALL_BEGIN_OR_BEGIN_DATA(a)
#define CALL_VERTEX_OR_VERTEX_DATA(a)
#define CALL_END_OR_END_DATA()