ReactOS 0.4.15-dev-7958-gcd0bb1a
NurbsTessellator Class Reference

#include <nurbstess.h>

Inheritance diagram for NurbsTessellator:
Collaboration diagram for NurbsTessellator:

Public Member Functions

 NurbsTessellator (BasicCurveEvaluator &c, BasicSurfaceEvaluator &e)
 
virtual ~NurbsTessellator (void)
 
void getnurbsproperty (long, INREAL *)
 
void getnurbsproperty (long, long, INREAL *)
 
void setnurbsproperty (long, INREAL)
 
void setnurbsproperty (long, long, INREAL)
 
void setnurbsproperty (long, long, INREAL *)
 
void setnurbsproperty (long, long, INREAL *, long, long)
 
virtual void bgnrender (void)
 
virtual void endrender (void)
 
virtual void makeobj (int n)
 
virtual void closeobj (void)
 
virtual void errorHandler (int)
 
void bgnsurface (long)
 
void endsurface (void)
 
void bgntrim (void)
 
void endtrim (void)
 
void bgncurve (long)
 
void endcurve (void)
 
void pwlcurve (long, INREAL[], long, long)
 
void nurbscurve (long, INREAL[], long, INREAL[], long, long)
 
void nurbssurface (long, INREAL[], long, INREAL[], long, long, INREAL[], long, long, long)
 
void defineMap (long, long, long)
 
void redefineMaps (void)
 
void discardRecording (void *)
 
voidbeginRecording (void)
 
void endRecording (void)
 
void playRecording (void *)
 
void set_domain_distance_u_rate (REAL u_rate)
 
void set_domain_distance_v_rate (REAL v_rate)
 
void set_is_domain_distance_sampling (int flag)
 

Public Attributes

Pool quiltPool
 

Protected Attributes

Renderhints renderhints
 
Maplist maplist
 
Backend backend
 

Private Member Functions

void resetObjects (void)
 
int do_check_knots (Knotvector *, const char *)
 
void do_nurbserror (int)
 
void do_bgncurve (O_curve *)
 
void do_endcurve (void)
 
void do_freeall (void)
 
void do_freecurveall (O_curve *)
 
void do_freebgntrim (O_trim *)
 
void do_freebgncurve (O_curve *)
 
void do_freepwlcurve (O_pwlcurve *)
 
void do_freenurbscurve (O_nurbscurve *)
 
void do_freenurbssurface (O_nurbssurface *)
 
void do_freebgnsurface (O_surface *)
 
void do_bgnsurface (O_surface *)
 
void do_endsurface (void)
 
void do_bgntrim (O_trim *)
 
void do_endtrim (void)
 
void do_pwlcurve (O_pwlcurve *)
 
void do_nurbscurve (O_nurbscurve *)
 
void do_nurbssurface (O_nurbssurface *)
 
void do_freenurbsproperty (Property *)
 
void do_setnurbsproperty (Property *)
 
void do_setnurbsproperty2 (Property *)
 

Private Attributes

Subdivider subdivider
 
JumpBuffer * jumpbuffer
 
Pool o_pwlcurvePool
 
Pool o_nurbscurvePool
 
Pool o_curvePool
 
Pool o_trimPool
 
Pool o_surfacePool
 
Pool o_nurbssurfacePool
 
Pool propertyPool
 
TrimVertexPool extTrimVertexPool
 
int inSurface
 
int inCurve
 
int inTrim
 
int isCurveModified
 
int isTrimModified
 
int isSurfaceModified
 
int isDataValid
 
int numTrims
 
int playBack
 
O_trim ** nextTrim
 
O_curve ** nextCurve
 
O_nurbscurve ** nextNurbscurve
 
O_pwlcurve ** nextPwlcurve
 
O_nurbssurface ** nextNurbssurface
 
O_surfacecurrentSurface
 
O_trimcurrentTrim
 
O_curvecurrentCurve
 
DisplayListdl
 

Detailed Description

Definition at line 53 of file nurbstess.h.

Constructor & Destructor Documentation

◆ NurbsTessellator()

NurbsTessellator::NurbsTessellator ( BasicCurveEvaluator c,
BasicSurfaceEvaluator e 
)

Definition at line 66 of file nurbsinterfac.cc.

67 : maplist( backend ),
68 backend( c, e ),
70 o_pwlcurvePool( sizeof( O_pwlcurve ), 32, "o_pwlcurvePool" ),
71 o_nurbscurvePool( sizeof( O_nurbscurve ), 32, "o_nurbscurvePool"),
72 o_curvePool( sizeof( O_curve ), 32, "o_curvePool" ),
73 o_trimPool( sizeof( O_trim ), 32, "o_trimPool" ),
74 o_surfacePool( sizeof( O_surface ), 1, "o_surfacePool" ),
75 o_nurbssurfacePool( sizeof( O_nurbssurface ), 4, "o_nurbssurfacePool" ),
76 propertyPool( sizeof( Property ), 32, "propertyPool" ),
77 quiltPool( sizeof( Quilt ), 32, "quiltPool" )
78{
79 dl = 0;
80 inSurface = 0;
81 inCurve = 0;
82 inTrim = 0;
83 playBack = 0;
84 jumpbuffer = newJumpbuffer();
86}
Pool o_nurbssurfacePool
Definition: nurbstess.h:141
Subdivider subdivider
Definition: nurbstess.h:134
Backend backend
Definition: nurbstess.h:106
JumpBuffer * jumpbuffer
Definition: nurbstess.h:135
Pool o_nurbscurvePool
Definition: nurbstess.h:137
Renderhints renderhints
Definition: nurbstess.h:104
Maplist maplist
Definition: nurbstess.h:105
DisplayList * dl
Definition: nurbstess.h:168
Definition: quilt.h:64
void setJumpbuffer(JumpBuffer *)
Definition: subdivider.cc:124
const GLubyte * c
Definition: glext.h:8905
#define e
Definition: ke_i.h:82
Definition: reader.h:55
Definition: reader.h:94

◆ ~NurbsTessellator()

NurbsTessellator::~NurbsTessellator ( void  )
virtual

Definition at line 88 of file nurbsinterfac.cc.

89{
90 if( inTrim ) {
91 do_nurbserror( 12 );
92 endtrim();
93 }
94
95 if( inSurface ) {
97 do_freeall();
98 }
99
100 if (jumpbuffer) {
101 deleteJumpbuffer(jumpbuffer);
102 jumpbuffer= 0;
103 }
104}
void do_freeall(void)
Definition: nurbstess.cc:315
O_nurbssurface ** nextNurbssurface
Definition: nurbstess.h:162
void endtrim(void)
void do_nurbserror(int)
Definition: nurbstess.cc:672

Member Function Documentation

◆ beginRecording()

void * NurbsTessellator::beginRecording ( void  )

Definition at line 515 of file nurbsinterfac.cc.

516{
517 dl = new DisplayList( this );
518 return (void *) dl;
519}

◆ bgncurve()

void NurbsTessellator::bgncurve ( long  nuid)

Definition at line 127 of file nurbsinterfac.cc.

128{
129 O_curve *o_curve = new(o_curvePool) O_curve;
130 o_curve->nuid = nuid;
132}
void do_freebgncurve(O_curve *)
Definition: nurbstess.cc:456
void do_bgncurve(O_curve *)
Definition: nurbstess.cc:154
#define THREAD(work, arg, cleanup)
long nuid
Definition: reader.h:65

Referenced by do_nurbscurve(), and do_pwlcurve().

◆ bgnrender()

void NurbsTessellator::bgnrender ( void  )
virtual

Reimplemented in GLUnurbs.

Definition at line 93 of file nurbstess.cc.

94{
95#ifndef NDEBUG
96 _glu_dprintf( "bgnrender\n" );
97#endif
98}

Referenced by do_bgncurve(), do_bgnsurface(), and playRecording().

◆ bgnsurface()

void NurbsTessellator::bgnsurface ( long  nuid)

Definition at line 113 of file nurbsinterfac.cc.

114{
115 O_surface *o_surface = new(o_surfacePool) O_surface;
116 o_surface->nuid = nuid;
118}
void do_freebgnsurface(O_surface *)
Definition: nurbstess.cc:115
void do_bgnsurface(O_surface *)
Definition: nurbstess.cc:128
long nuid
Definition: reader.h:116

Referenced by do_bgntrim(), and do_nurbssurface().

◆ bgntrim()

void NurbsTessellator::bgntrim ( void  )

Definition at line 166 of file nurbsinterfac.cc.

167{
168 O_trim *o_trim = new(o_trimPool) O_trim;
169 THREAD( do_bgntrim, o_trim, do_freebgntrim );
170}
void do_freebgntrim(O_trim *)
Definition: nurbstess.cc:376
void do_bgntrim(O_trim *)
Definition: nurbstess.cc:389

◆ closeobj()

void NurbsTessellator::closeobj ( void  )
virtual

Definition at line 85 of file nurbstess.cc.

86{
87#ifndef NDEBUG
88 _glu_dprintf( "closeobj\n" );
89#endif
90}

◆ defineMap()

void NurbsTessellator::defineMap ( long  type,
long  rational,
long  ncoords 
)

Definition at line 503 of file nurbsinterfac.cc.

504{
505 maplist.define( type, (int) rational, (int) ncoords );
506}
void define(long, int, int)
Definition: maplist.cc:71
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545

Referenced by GLUnurbs::GLUnurbs().

◆ discardRecording()

void NurbsTessellator::discardRecording ( void _dl)

Definition at line 509 of file nurbsinterfac.cc.

510{
511 delete (DisplayList *) _dl;
512}

◆ do_bgncurve()

void NurbsTessellator::do_bgncurve ( O_curve o_curve)
private

Definition at line 154 of file nurbstess.cc.

155{
156 if ( inCurve ) {
157 do_nurbserror( 6 );
158 endcurve();
159 }
160
161 inCurve = 1;
162 currentCurve = o_curve;
164
165 if( inTrim ) {
166 if( *nextCurve != o_curve ) {
167 isCurveModified = 1;
168 *nextCurve = o_curve;
169 }
170 } else {
171 if( ! playBack ) bgnrender();
172 isDataValid = 1;
173 }
174 nextCurve = &(o_curve->next);
175 nextPwlcurve = &(o_curve->curve.o_pwlcurve);
176 nextNurbscurve = &(o_curve->curve.o_nurbscurve);
177}
void endcurve(void)
O_pwlcurve ** nextPwlcurve
Definition: nurbstess.h:161
virtual void bgnrender(void)
Definition: nurbstess.cc:93
O_curve ** nextCurve
Definition: nurbstess.h:159
O_curve * currentCurve
Definition: nurbstess.h:166
O_nurbscurve ** nextNurbscurve
Definition: nurbstess.h:160
@ ct_none
Definition: reader.h:42
Curvetype curvetype
Definition: reader.h:60
O_nurbscurve * o_nurbscurve
Definition: reader.h:57
O_curve * next
Definition: reader.h:61
union O_curve::@295 curve
O_pwlcurve * o_pwlcurve
Definition: reader.h:58

Referenced by bgncurve().

◆ do_bgnsurface()

void NurbsTessellator::do_bgnsurface ( O_surface o_surface)
private

Definition at line 128 of file nurbstess.cc.

129{
130 if( inSurface ) {
131 do_nurbserror( 27 );
132 endsurface();
133 }
134 inSurface = 1;
135
136 if( ! playBack ) bgnrender();
137
138 isTrimModified = 0;
140 isDataValid = 1;
141 numTrims = 0;
142 currentSurface = o_surface;
145}
O_trim ** nextTrim
Definition: nurbstess.h:158
O_surface * currentSurface
Definition: nurbstess.h:164
void endsurface(void)
O_nurbssurface * o_nurbssurface
Definition: reader.h:113
O_trim * o_trim
Definition: reader.h:114

Referenced by bgnsurface().

◆ do_bgntrim()

void NurbsTessellator::do_bgntrim ( O_trim o_trim)
private

Definition at line 389 of file nurbstess.cc.

390{
391
392 if( ! inSurface ) {
393 do_nurbserror( 15 );
394 bgnsurface( 0 );
395 inSurface = 2;
396 }
397
398 if( inTrim ) {
399 do_nurbserror( 16 );
400 endtrim();
401 }
402 inTrim = 1;
403
404 if( *nextTrim != o_trim ) {
405 isTrimModified = 1;
406 *nextTrim = o_trim;
407 }
408
409 currentTrim = o_trim;
410 nextTrim = &(o_trim->next);
411 nextCurve = &(o_trim->o_curve);
412}
O_trim * currentTrim
Definition: nurbstess.h:165
void bgnsurface(long)
O_curve * o_curve
Definition: reader.h:95
O_trim * next
Definition: reader.h:96

Referenced by bgntrim().

◆ do_check_knots()

int NurbsTessellator::do_check_knots ( Knotvector knots,
const char msg 
)
private

Definition at line 678 of file nurbstess.cc.

679{
680 int status = knots->validate();
681 if( status ) {
683 if( renderhints.errorchecking != N_NOMSG ) knots->show( msg );
684 }
685 return status;
686}
#define msg(x)
Definition: auth_time.c:54
REAL errorchecking
Definition: renderhints.h:50
#define N_NOMSG
Definition: nurbsconsts.h:84
void show(const char *)
Definition: knotvector.cc:132
int validate(void)
Definition: knotvector.cc:75
Definition: ps.c:97

Referenced by nurbscurve(), and nurbssurface().

◆ do_endcurve()

void NurbsTessellator::do_endcurve ( void  )
private

Definition at line 187 of file nurbstess.cc.

188{
189 if( ! inCurve ) {
190 do_nurbserror( 7 );
191 return;
192 }
193 inCurve = 0;
194
195 *nextCurve = 0;
197 *nextNurbscurve = 0;
198 else
199 *nextPwlcurve = 0;
200
201 if ( ! inTrim ) {
202 if( ! isDataValid ) {
204 return;
205 }
206
207 int errval;
208 errval = ::mysetjmp( jumpbuffer );
209 if( errval == 0 ) {
212 for( O_nurbscurve *n = currentCurve->curve.o_nurbscurve; n != 0; n = n->next )
213 subdivider.addQuilt( n->bezier_curves );
216 if( ! playBack ) endrender();
217 } else {
218 /* XXX */
219 if( ! playBack ) endrender();
220 /*do_draw_pwlcurve( currentCurve->curve.o_pwlcurve ) */;
221 do_nurbserror( 9 );
222 }
223 } else {
224 if( ! playBack ) endrender();
225 do_nurbserror( errval );
226 }
228 resetObjects();
229 }
230}
virtual void endrender(void)
Definition: nurbstess.cc:101
void do_freecurveall(O_curve *)
Definition: nurbstess.cc:341
void resetObjects(void)
Definition: nurbstess.cc:71
void endQuilts(void)
Definition: subdivider.h:70
void beginQuilts(void)
Definition: subdivider.cc:186
void addQuilt(Quilt *)
Definition: subdivider.cc:192
void drawCurves(void)
Definition: curvesub.cc:56
@ ct_nurbscurve
Definition: reader.h:42
GLdouble n
Definition: glext.h:7729
O_nurbscurve * next
Definition: reader.h:75

Referenced by endcurve().

◆ do_endsurface()

void NurbsTessellator::do_endsurface ( void  )
private

Definition at line 239 of file nurbstess.cc.

240{
241 if( inTrim ) {
242 do_nurbserror( 12 );
243 endtrim();
244 }
245
246 if( ! inSurface ) {
247 do_nurbserror( 13 );
248 return;
249 }
250 inSurface = 0;
251
252 *nextNurbssurface = 0;
253
254 if( ! isDataValid ) {
255 do_freeall( );
256 return;
257 }
258
259 if( *nextTrim != 0 ) {
260 isTrimModified = 1;
261 *nextTrim = 0;
262 }
263
264 int errval;
265
266 errval = ::mysetjmp( jumpbuffer );
267 if( errval == 0 ) {
268 if( numTrims > 0 ) {
269
271 for( O_trim *trim = currentSurface->o_trim; trim; trim = trim->next ) {
273 for( O_curve *curve = trim->o_curve; curve; curve = curve->next ) {
274 curve->used = 0;
275 assert( curve->curvetype != ct_none );
276 if (curve->curvetype == ct_pwlcurve) {
277 O_pwlcurve *c = curve->curve.o_pwlcurve;
278 subdivider.addArc( c->npts, c->pts, curve->nuid );
279 } else {
280 Quilt *quilt = curve->curve.o_nurbscurve->bezier_curves;
281 Quiltspec *qspec = quilt->qspec;
282 REAL *cpts = quilt->cpts + qspec->offset;
283 REAL *cptsend = cpts + (qspec->width * qspec->order * qspec->stride);
284 for( ; cpts != cptsend; cpts += qspec->order*qspec->stride )
285 subdivider.addArc( cpts, quilt, curve->nuid );
286 }
287 }
289 }
291 }
292
295 subdivider.addQuilt( n->bezier_patches );
298 if( ! playBack ) endrender();
299 } else {
300 if( ! playBack ) endrender();
301 do_nurbserror( errval );
302 }
303
304 do_freeall( );
305 resetObjects();
306}
REAL * cpts
Definition: quilt.h:68
Quiltspec qspec[MAXDIM]
Definition: quilt.h:69
void endTrims(void)
Definition: subdivider.h:66
void drawSurfaces(long)
Definition: subdivider.cc:204
void beginLoop(void)
Definition: subdivider.h:194
void beginTrims(void)
Definition: subdivider.h:61
void addArc(REAL *, Quilt *, long)
Definition: subdivider.cc:157
void endLoop(void)
Definition: subdivider.h:65
@ ct_pwlcurve
Definition: reader.h:42
float REAL
Definition: types.h:41
#define assert(x)
Definition: debug.h:53
char * trim(char *str, char **last_chr, BOOL strip_quotes)
Definition: inf.c:258
O_nurbssurface * next
Definition: reader.h:105
int order
Definition: quilt.h:55
int stride
Definition: quilt.h:52
int offset
Definition: quilt.h:54
int width
Definition: quilt.h:53

Referenced by endsurface().

◆ do_endtrim()

void NurbsTessellator::do_endtrim ( void  )
private

Definition at line 422 of file nurbstess.cc.

423{
424 if( ! inTrim ) {
425 do_nurbserror( 17 );
426 return;
427 }
428 inTrim = 0;
429
430 if( currentTrim->o_curve == 0 ) {
431 do_nurbserror( 18 );
432 isDataValid = 0;
433 }
434
435 numTrims++;
436
437 if( *nextCurve != 0 ) {
438 isTrimModified = 1;
439 *nextCurve = 0;
440 }
441}

Referenced by endtrim().

◆ do_freeall()

void NurbsTessellator::do_freeall ( void  )
private

Definition at line 315 of file nurbstess.cc.

316{
317 for( O_trim *o_trim = currentSurface->o_trim; o_trim; ) {
318 O_trim *next_o_trim = o_trim->next;
319 for( O_curve *curve = o_trim->o_curve; curve; ) {
320 O_curve *next_o_curve = curve->next;
321 do_freecurveall( curve );
322 curve = next_o_curve;
323 }
324 if( o_trim->save == 0 ) do_freebgntrim( o_trim );
325 o_trim = next_o_trim;
326 }
327
328 O_nurbssurface *nurbss, *next_nurbss;
329 for( nurbss= currentSurface->o_nurbssurface; nurbss; nurbss = next_nurbss) {
330 next_nurbss = nurbss->next;
331 if( nurbss->save == 0 )
332 do_freenurbssurface( nurbss );
333 else
334 nurbss->used = 0;
335 }
336
338}
void do_freenurbssurface(O_nurbssurface *)
Definition: nurbstess.cc:585
int save
Definition: reader.h:115

Referenced by do_endsurface(), and ~NurbsTessellator().

◆ do_freebgncurve()

void NurbsTessellator::do_freebgncurve ( O_curve o_curve)
private

Definition at line 456 of file nurbstess.cc.

457{
458 o_curve->deleteMe( o_curvePool );
459}
void deleteMe(Pool &)
Definition: bufpool.h:136

Referenced by bgncurve(), and do_freecurveall().

◆ do_freebgnsurface()

void NurbsTessellator::do_freebgnsurface ( O_surface o_surface)
private

Definition at line 115 of file nurbstess.cc.

116{
117 o_surface->deleteMe( o_surfacePool );
118}

Referenced by bgnsurface(), and do_freeall().

◆ do_freebgntrim()

void NurbsTessellator::do_freebgntrim ( O_trim o_trim)
private

Definition at line 376 of file nurbstess.cc.

377{
378 o_trim->deleteMe( o_trimPool );
379}

Referenced by bgntrim(), and do_freeall().

◆ do_freecurveall()

void NurbsTessellator::do_freecurveall ( O_curve curve)
private

Definition at line 341 of file nurbstess.cc.

342{
343 assert( curve->curvetype != ct_none );
344
345 if( curve->curvetype == ct_nurbscurve ) {
346 O_nurbscurve *ncurve, *next_ncurve;
347 for( ncurve=curve->curve.o_nurbscurve; ncurve; ncurve=next_ncurve ) {
348 next_ncurve = ncurve->next;
349 if( ncurve->save == 0 )
350 do_freenurbscurve( ncurve );
351 else
352 ncurve->used = 0;
353 }
354 } else {
355 O_pwlcurve *pcurve, *next_pcurve;
356 for( pcurve=curve->curve.o_pwlcurve; pcurve; pcurve=next_pcurve ) {
357 next_pcurve = pcurve->next;
358 if( pcurve->save == 0 )
359 do_freepwlcurve( pcurve );
360 else
361 pcurve->used = 0;
362 }
363 }
364 if( curve->save == 0 )
365 do_freebgncurve( curve );
366}
void do_freepwlcurve(O_pwlcurve *)
Definition: nurbstess.cc:450
void do_freenurbscurve(O_nurbscurve *)
Definition: nurbstess.cc:520
int used
Definition: reader.h:88
int save
Definition: reader.h:89
O_pwlcurve * next
Definition: reader.h:87
int save
Definition: reader.h:64
int save
Definition: reader.h:77
int used
Definition: reader.h:76

Referenced by do_endcurve(), and do_freeall().

◆ do_freenurbscurve()

void NurbsTessellator::do_freenurbscurve ( O_nurbscurve o_nurbscurve)
private

Definition at line 520 of file nurbstess.cc.

521{
522 o_nurbscurve->bezier_curves->deleteMe( quiltPool );
523 o_nurbscurve->deleteMe( o_nurbscurvePool );
524}
void deleteMe(Pool &)
Definition: quilt.cc:61
Quilt * bezier_curves
Definition: reader.h:71

Referenced by do_freecurveall(), and nurbscurve().

◆ do_freenurbsproperty()

void NurbsTessellator::do_freenurbsproperty ( Property prop)
private

Definition at line 636 of file nurbstess.cc.

637{
638 prop->deleteMe( propertyPool );
639}

Referenced by do_setnurbsproperty(), do_setnurbsproperty2(), and setnurbsproperty().

◆ do_freenurbssurface()

void NurbsTessellator::do_freenurbssurface ( O_nurbssurface o_nurbssurface)
private

Definition at line 585 of file nurbstess.cc.

586{
587 o_nurbssurface->bezier_patches->deleteMe( quiltPool );
588 o_nurbssurface->deleteMe( o_nurbssurfacePool );
589}
Quilt * bezier_patches
Definition: reader.h:102

Referenced by do_freeall(), and nurbssurface().

◆ do_freepwlcurve()

void NurbsTessellator::do_freepwlcurve ( O_pwlcurve o_pwlcurve)
private

Definition at line 450 of file nurbstess.cc.

451{
452 o_pwlcurve->deleteMe( o_pwlcurvePool );
453}

Referenced by do_freecurveall(), do_pwlcurve(), and pwlcurve().

◆ do_nurbscurve()

void NurbsTessellator::do_nurbscurve ( O_nurbscurve o_nurbscurve)
private

Definition at line 534 of file nurbstess.cc.

535{
536 if ( ! inCurve ) {
537 bgncurve( 0 );
538 inCurve = 2;
539 }
540
541 if( o_nurbscurve->used ) {
542 /* error - curve was already called in current surface */
543 do_nurbserror( 23 );
544 isDataValid = 0;
545 return;
546 } else
547 o_nurbscurve->used = 1;
548
549 if( currentCurve->curvetype == ct_none ) {
551 } else if( currentCurve->curvetype != ct_nurbscurve ) {
552 do_nurbserror( 24 );
553 isDataValid = 0;
554 return;
555 }
556
557 if( *nextNurbscurve != o_nurbscurve ) {
558 isCurveModified = 1;
559 *nextNurbscurve = o_nurbscurve;
560 }
561
562 nextNurbscurve = &(o_nurbscurve->next);
563
564 if( o_nurbscurve->owner != currentCurve ) {
565 isCurveModified = 1;
566 o_nurbscurve->owner = currentCurve;
567 }
568
569 if( o_nurbscurve->owner == 0 )
570 isCurveModified = 1;
571
572 if( inCurve == 2 )
573 endcurve();
574}
void bgncurve(long)
O_curve * owner
Definition: reader.h:78

Referenced by nurbscurve().

◆ do_nurbserror()

void NurbsTessellator::do_nurbserror ( int  msg)
private

◆ do_nurbssurface()

void NurbsTessellator::do_nurbssurface ( O_nurbssurface o_nurbssurface)
private

Definition at line 598 of file nurbstess.cc.

599{
600 if( ! inSurface ) {
601 bgnsurface( 0 );
602 inSurface = 2;
603 }
604
605 if( o_nurbssurface->used ) {
606 /* error - surface was already called in current block */
607 do_nurbserror( 25 );
608 isDataValid = 0;
609 return;
610 } else
611 o_nurbssurface->used = 1;
612
613 if( *nextNurbssurface != o_nurbssurface ) {
615 *nextNurbssurface = o_nurbssurface;
616 }
617
618 if( o_nurbssurface->owner != currentSurface ) {
620 o_nurbssurface->owner = currentSurface;
621 }
622 nextNurbssurface = &(o_nurbssurface->next);
623
624 if( inSurface == 2 )
625 endsurface();
626}
O_surface * owner
Definition: reader.h:104

Referenced by nurbssurface().

◆ do_pwlcurve()

void NurbsTessellator::do_pwlcurve ( O_pwlcurve o_pwlcurve)
private

Definition at line 468 of file nurbstess.cc.

469{
470 if( ! inTrim ) {
471 do_nurbserror( 19 );
472 if( o_pwlcurve->save == 0 )
473 do_freepwlcurve(o_pwlcurve );
474 return;
475 }
476
477 if( ! inCurve ) {
478 bgncurve( 0 );
479 inCurve = 2;
480 }
481
482 if( o_pwlcurve->used ) {
483 do_nurbserror( 20 );
484 isDataValid = 0;
485 return;
486 } else
487 o_pwlcurve->used = 1;
488
489 if( currentCurve->curvetype == ct_none ) {
491 } else if( currentCurve->curvetype != ct_pwlcurve ) {
492 do_nurbserror( 21 );
493 isDataValid = 0;
494 return;
495 }
496
497 if( *nextPwlcurve != o_pwlcurve ) {
498 isCurveModified = 1;
499 *nextPwlcurve = o_pwlcurve;
500 }
501 nextPwlcurve = &(o_pwlcurve->next);
502
503 if( o_pwlcurve->owner != currentCurve ) {
504 isCurveModified = 1;
505 o_pwlcurve->owner = currentCurve;
506 }
507
508 if( inCurve == 2 )
509 endcurve();
510}
O_curve * owner
Definition: reader.h:90

Referenced by pwlcurve().

◆ do_setnurbsproperty()

void NurbsTessellator::do_setnurbsproperty ( Property prop)
private

Definition at line 649 of file nurbstess.cc.

650{
651 renderhints.setProperty( prop->tag, prop->value );
652 if( prop->save == 0 )
653 do_freenurbsproperty( prop );
654}
void do_freenurbsproperty(Property *)
Definition: nurbstess.cc:636
void setProperty(long, REAL)
Definition: renderhints.cc:117
long tag
Definition: reader.h:122
REAL value
Definition: reader.h:123
int save
Definition: reader.h:124

Referenced by setnurbsproperty().

◆ do_setnurbsproperty2()

void NurbsTessellator::do_setnurbsproperty2 ( Property prop)
private

Definition at line 657 of file nurbstess.cc.

658{
659 Mapdesc *mapdesc = maplist.find( prop->type );
660
661 mapdesc->setProperty( prop->tag, prop->value );
662 if( prop->save == 0 )
663 do_freenurbsproperty( prop );
664}
void setProperty(long, REAL)
Definition: mapdesc.cc:797
Mapdesc * find(long)
Definition: maplist.cc:102
long type
Definition: reader.h:121

Referenced by setnurbsproperty().

◆ endcurve()

void NurbsTessellator::endcurve ( void  )

Definition at line 141 of file nurbsinterfac.cc.

142{
144}
void do_endcurve(void)
Definition: nurbstess.cc:187
#define THREAD2(work)

Referenced by do_bgncurve(), do_nurbscurve(), and do_pwlcurve().

◆ endRecording()

void NurbsTessellator::endRecording ( void  )

Definition at line 522 of file nurbsinterfac.cc.

523{
524 dl->endList();
525 dl = 0;
526}
void endList(void)
Definition: displaylist.cc:70

◆ endrender()

void NurbsTessellator::endrender ( void  )
virtual

Reimplemented in GLUnurbs.

Definition at line 101 of file nurbstess.cc.

102{
103#ifndef NDEBUG
104 _glu_dprintf( "endrender\n" );
105#endif
106}

Referenced by do_endcurve(), do_endsurface(), and playRecording().

◆ endsurface()

void NurbsTessellator::endsurface ( void  )

Definition at line 153 of file nurbsinterfac.cc.

154{
156}
void do_endsurface(void)
Definition: nurbstess.cc:239

Referenced by do_bgnsurface(), and do_nurbssurface().

◆ endtrim()

void NurbsTessellator::endtrim ( void  )

Definition at line 179 of file nurbsinterfac.cc.

180{
182}
void do_endtrim(void)
Definition: nurbstess.cc:422

Referenced by do_bgntrim(), do_endsurface(), and ~NurbsTessellator().

◆ errorHandler()

void NurbsTessellator::errorHandler ( int  )
virtual

Reimplemented in GLUnurbs.

Definition at line 667 of file nurbstess.cc.

668{
669}

◆ getnurbsproperty() [1/2]

void NurbsTessellator::getnurbsproperty ( long  tag,
INREAL value 
)

Definition at line 415 of file nurbsinterfac.cc.

416{
417 if( renderhints.isProperty( tag ) ) {
419 } else {
420 do_nurbserror( 26 );
421 }
422}
REAL getProperty(long)
Definition: renderhints.cc:99
int isProperty(long)
Definition: renderhints.cc:85
Definition: ecma_167.h:138
Definition: pdh_main.c:94

◆ getnurbsproperty() [2/2]

void NurbsTessellator::getnurbsproperty ( long  type,
long  tag,
INREAL value 
)

Definition at line 431 of file nurbsinterfac.cc.

432{
433 Mapdesc *mapdesc = maplist.locate( type );
434
435 if( mapdesc == 0 )
436 do_nurbserror( 35 );
437
438 if( mapdesc->isProperty( tag ) ) {
439 *value = mapdesc->getProperty( tag );
440 } else {
441 do_nurbserror( 26 );
442 }
443}
int isProperty(long)
Definition: mapdesc.cc:750
REAL getProperty(long)
Definition: mapdesc.cc:769
Mapdesc * locate(long)
Definition: maplist.cc:110

◆ makeobj()

void NurbsTessellator::makeobj ( int  n)
virtual

Definition at line 77 of file nurbstess.cc.

78{
79#ifndef NDEBUG
80 _glu_dprintf( "makeobj\n" );
81#endif
82}

◆ nurbscurve()

void NurbsTessellator::nurbscurve ( long  nknots,
INREAL  knot[],
long  byte_stride,
INREAL  ctlarray[],
long  order,
long  type 
)

Definition at line 269 of file nurbsinterfac.cc.

276{
277
278 Mapdesc *mapdesc = maplist.locate( type );
279
280 if( mapdesc == 0 ) {
281 do_nurbserror( 35 );
282 isDataValid = 0;
283 return;
284 }
285
286 if( ctlarray == 0 ) {
287 do_nurbserror( 36 );
288 isDataValid = 0;
289 return;
290 }
291
292 if( byte_stride < 0 ) {
293 do_nurbserror( 34 );
294 isDataValid = 0;
295 return;
296 }
297
298 Knotvector knots;
299
300 knots.init( nknots, byte_stride, order, knot );
301 if( do_check_knots( &knots, "curve" ) ) return;
302
303 O_nurbscurve *o_nurbscurve = new(o_nurbscurvePool) O_nurbscurve(type);
304 o_nurbscurve->bezier_curves = new(quiltPool) Quilt(mapdesc);
305 o_nurbscurve->bezier_curves->toBezier( knots,ctlarray, mapdesc->getNcoords() );
306
307 THREAD( do_nurbscurve, o_nurbscurve, do_freenurbscurve );
308}
int getNcoords(void)
Definition: mapdesc.h:198
int do_check_knots(Knotvector *, const char *)
Definition: nurbstess.cc:678
void do_nurbscurve(O_nurbscurve *)
Definition: nurbstess.cc:534
void toBezier(Knotvector &, INREAL *, long)
Definition: tobezier.cc:117
GLuint GLdouble GLdouble GLint GLint order
Definition: glext.h:11194
void init(long, long, long, INREAL *)
Definition: knotvector.cc:50

◆ nurbssurface()

void NurbsTessellator::nurbssurface ( long  sknot_count,
INREAL  sknot[],
long  tknot_count,
INREAL  tknot[],
long  s_byte_stride,
long  t_byte_stride,
INREAL  ctlarray[],
long  sorder,
long  torder,
long  type 
)

Definition at line 318 of file nurbsinterfac.cc.

329{
330 Mapdesc *mapdesc = maplist.locate( type );
331
332 if( mapdesc == 0 ) {
333 do_nurbserror( 35 );
334 isDataValid = 0;
335 return;
336 }
337
338 if( s_byte_stride < 0 ) {
339 do_nurbserror( 34 );
340 isDataValid = 0;
341 return;
342 }
343
344 if( t_byte_stride < 0 ) {
345 do_nurbserror( 34 );
346 isDataValid = 0;
347 return;
348 }
349
350 Knotvector sknotvector, tknotvector;
351
352 sknotvector.init( sknot_count, s_byte_stride, sorder, sknot );
353 if( do_check_knots( &sknotvector, "surface" ) ) return;
354
355 tknotvector.init( tknot_count, t_byte_stride, torder, tknot );
356 if( do_check_knots( &tknotvector, "surface" ) ) return;
357
359 o_nurbssurface->bezier_patches = new(quiltPool) Quilt(mapdesc);
360
361 o_nurbssurface->bezier_patches->toBezier( sknotvector, tknotvector,
362 ctlarray, mapdesc->getNcoords() );
363 THREAD( do_nurbssurface, o_nurbssurface, do_freenurbssurface );
364}
void do_nurbssurface(O_nurbssurface *)
Definition: nurbstess.cc:598

◆ playRecording()

void NurbsTessellator::playRecording ( void _dl)

Definition at line 529 of file nurbsinterfac.cc.

530{
531 playBack = 1;
532 bgnrender();
533 ((DisplayList *)_dl)->play();
534 endrender();
535 playBack = 0;
536}

◆ pwlcurve()

void NurbsTessellator::pwlcurve ( long  count,
INREAL  array[],
long  byte_stride,
long  type 
)

Definition at line 197 of file nurbsinterfac.cc.

198{
199 Mapdesc *mapdesc = maplist.locate( type );
200
201 if( mapdesc == 0 ) {
202 do_nurbserror( 35 );
203 isDataValid = 0;
204 return;
205 }
206
207 if ( (type != N_P2D) && (type != N_P2DR) ) {
208 do_nurbserror( 22 );
209 isDataValid = 0;
210 return;
211 }
212 if( count < 0 ) {
213 do_nurbserror( 33 );
214 isDataValid = 0;
215 return;
216 }
217 if( byte_stride < 0 ) {
218 do_nurbserror( 34 );
219 isDataValid = 0;
220 return;
221 }
222
223#ifdef NOTDEF
224 if( mapdesc->isRational() ) {
225 INREAL *p = array;
226 INREAL x = p[0]; INREAL y = p[1]; INREAL w = p[2];
227 p = (INREAL *) (((char *) p) + byte_stride);
228 for( long i = 1; i != count; i++ ) {
229 if( p[0] == x && p[1] == y && p[2] == w ) break;
230 x = p[0]; y = p[1]; w = p[2];
231 p = (INREAL *) (((char *) p) + byte_stride);
232 }
233 if( i != count ) {
234 do_nurbserror( 37 );
235 _glu_dprintf( "point %d (%f,%f)\n", i, x, y );
236 isDataValid = 0;
237 return;
238 }
239 } else {
240 INREAL *p = array;
241 INREAL x = p[0]; INREAL y = p[1];
242 p = (INREAL *) (((char *) p) + byte_stride);
243 for( long i = 1; i != count; i++ ) {
244 if( p[0] == x && p[1] == y ) break;
245 x = p[0]; y = p[1];
246 p = (INREAL *) (((char *) p) + byte_stride);
247 }
248 if( i != count ) {
249 do_nurbserror( 37 );
250 _glu_dprintf( "point %d (%f,%f)\n", i, x, y );
251 isDataValid = 0;
252 return;
253 }
254 }
255#endif
256
257 O_pwlcurve *o_pwlcurve = new(o_pwlcurvePool) O_pwlcurve( type, count, array, byte_stride, extTrimVertexPool.get((int)count) );
258 THREAD( do_pwlcurve, o_pwlcurve, do_freepwlcurve );
259}
int isRational(void)
Definition: mapdesc.h:192
void do_pwlcurve(O_pwlcurve *)
Definition: nurbstess.cc:468
TrimVertexPool extTrimVertexPool
Definition: nurbstess.h:146
TrimVertex * get(int)
#define INREAL
Definition: types.h:40
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLfloat GLfloat p
Definition: glext.h:8902
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
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
Definition: glfuncs.h:248
#define N_P2D
Definition: nurbsconsts.h:116
#define N_P2DR
Definition: nurbsconsts.h:117

◆ redefineMaps()

void NurbsTessellator::redefineMaps ( void  )

Definition at line 497 of file nurbsinterfac.cc.

498{
500}
void initialize(void)
Definition: maplist.cc:56

Referenced by GLUnurbs::GLUnurbs().

◆ resetObjects()

void NurbsTessellator::resetObjects ( void  )
private

Definition at line 71 of file nurbstess.cc.

72{
74}
void clear(void)
Definition: subdivider.cc:135

Referenced by do_endcurve(), and do_endsurface().

◆ set_domain_distance_u_rate()

void NurbsTessellator::set_domain_distance_u_rate ( REAL  u_rate)

Definition at line 53 of file nurbstess.cc.

54{
56}
void set_domain_distance_u_rate(REAL u_rate)
Definition: subdivider.h:82

Referenced by GLUnurbs::GLUnurbs().

◆ set_domain_distance_v_rate()

void NurbsTessellator::set_domain_distance_v_rate ( REAL  v_rate)

Definition at line 59 of file nurbstess.cc.

60{
62}
void set_domain_distance_v_rate(REAL v_rate)
Definition: subdivider.h:86

Referenced by GLUnurbs::GLUnurbs().

◆ set_is_domain_distance_sampling()

void NurbsTessellator::set_is_domain_distance_sampling ( int  flag)

Definition at line 65 of file nurbstess.cc.

66{
68}
void set_is_domain_distance_sampling(int flag)
Definition: subdivider.h:90
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 flag
Definition: glfuncs.h:52

Referenced by GLUnurbs::GLUnurbs().

◆ setnurbsproperty() [1/4]

void NurbsTessellator::setnurbsproperty ( long  tag,
INREAL  value 
)

Definition at line 373 of file nurbsinterfac.cc.

374{
375 if( ! renderhints.isProperty( tag ) ) {
376 do_nurbserror( 26 );
377 } else {
378 Property *prop = new(propertyPool) Property( tag, value );
380 }
381}
void do_setnurbsproperty(Property *)
Definition: nurbstess.cc:649

Referenced by GLUnurbs::GLUnurbs(), GLUnurbs::loadCullingMatrix(), GLUnurbs::loadSamplingMatrix(), and GLUnurbs::setSamplingMatrixIdentity().

◆ setnurbsproperty() [2/4]

void NurbsTessellator::setnurbsproperty ( long  type,
long  purpose,
INREAL mat 
)

Definition at line 451 of file nurbsinterfac.cc.

452{
453 // XXX - cannot be put in display list
454 Mapdesc *mapdesc = maplist.locate( type );
455
456 if( mapdesc == 0 ) {
457 do_nurbserror( 35 );
458 isDataValid = 0;
459 } else if( purpose == N_BBOXSIZE ) {
460 mapdesc->setBboxsize( mat );
461 } else {
462#ifndef NDEBUG
463 _glu_dprintf( "ERRORRORRORR!!!\n");
464#endif
465 }
466}
void setBboxsize(INREAL *)
Definition: mapdesc.cc:84
static const MAT2 mat
Definition: font.c:66
#define N_BBOXSIZE
Definition: nurbsconsts.h:112

◆ setnurbsproperty() [3/4]

void NurbsTessellator::setnurbsproperty ( long  type,
long  purpose,
INREAL mat,
long  rstride,
long  cstride 
)

Definition at line 474 of file nurbsinterfac.cc.

476{
477 // XXX - cannot be put in display list
478 Mapdesc *mapdesc = maplist.locate( type );
479
480 if( mapdesc == 0 ) {
481 do_nurbserror( 35 );
482 isDataValid = 0;
483 } else if( purpose == N_CULLINGMATRIX ) {
484 mapdesc->setCmat( mat, rstride, cstride );
485 } else if( purpose == N_SAMPLINGMATRIX ) {
486 mapdesc->setSmat( mat, rstride, cstride );
487 } else if( purpose == N_BBOXMATRIX ) {
488 mapdesc->setBmat( mat, rstride, cstride );
489 } else {
490#ifndef NDEBUG
491 _glu_dprintf( "ERRORRORRORR!!!\n");
492#endif
493 }
494}
void setBmat(INREAL *, long, long)
Definition: mapdesc.h:150
void setSmat(INREAL *, long, long)
Definition: mapdesc.h:162
void setCmat(INREAL *, long, long)
Definition: mapdesc.h:156
#define N_BBOXMATRIX
Definition: nurbsconsts.h:107
#define N_SAMPLINGMATRIX
Definition: nurbsconsts.h:106
#define N_CULLINGMATRIX
Definition: nurbsconsts.h:105

◆ setnurbsproperty() [4/4]

void NurbsTessellator::setnurbsproperty ( long  type,
long  tag,
INREAL  value 
)

Definition at line 389 of file nurbsinterfac.cc.

390{
391 Mapdesc *mapdesc = maplist.locate( type );
392
393 if( mapdesc == 0 ) {
394 do_nurbserror( 35 );
395 return;
396 }
397
398 if( ! mapdesc->isProperty( tag ) ) {
399 do_nurbserror( 26 );
400 return;
401 }
402
403 Property *prop = new(propertyPool) Property( type, tag, value );
405}
void do_setnurbsproperty2(Property *)
Definition: nurbstess.cc:657

Member Data Documentation

◆ backend

Backend NurbsTessellator::backend
protected

Definition at line 106 of file nurbstess.h.

◆ currentCurve

O_curve* NurbsTessellator::currentCurve
private

Definition at line 166 of file nurbstess.h.

Referenced by do_bgncurve(), do_endcurve(), do_nurbscurve(), and do_pwlcurve().

◆ currentSurface

O_surface* NurbsTessellator::currentSurface
private

Definition at line 164 of file nurbstess.h.

Referenced by do_bgnsurface(), do_endsurface(), do_freeall(), and do_nurbssurface().

◆ currentTrim

O_trim* NurbsTessellator::currentTrim
private

Definition at line 165 of file nurbstess.h.

Referenced by do_bgntrim(), and do_endtrim().

◆ dl

DisplayList* NurbsTessellator::dl
private

Definition at line 168 of file nurbstess.h.

Referenced by beginRecording(), endRecording(), and NurbsTessellator().

◆ extTrimVertexPool

TrimVertexPool NurbsTessellator::extTrimVertexPool
private

Definition at line 146 of file nurbstess.h.

Referenced by pwlcurve().

◆ inCurve

int NurbsTessellator::inCurve
private

Definition at line 149 of file nurbstess.h.

Referenced by do_bgncurve(), do_endcurve(), do_nurbscurve(), do_pwlcurve(), and NurbsTessellator().

◆ inSurface

int NurbsTessellator::inSurface
private

◆ inTrim

int NurbsTessellator::inTrim
private

◆ isCurveModified

int NurbsTessellator::isCurveModified
private

Definition at line 151 of file nurbstess.h.

Referenced by do_bgncurve(), do_nurbscurve(), and do_pwlcurve().

◆ isDataValid

◆ isSurfaceModified

int NurbsTessellator::isSurfaceModified
private

Definition at line 153 of file nurbstess.h.

Referenced by do_bgnsurface(), and do_nurbssurface().

◆ isTrimModified

int NurbsTessellator::isTrimModified
private

Definition at line 152 of file nurbstess.h.

Referenced by do_bgnsurface(), do_bgntrim(), do_endsurface(), and do_endtrim().

◆ jumpbuffer

JumpBuffer* NurbsTessellator::jumpbuffer
private

Definition at line 135 of file nurbstess.h.

Referenced by do_endcurve(), do_endsurface(), NurbsTessellator(), and ~NurbsTessellator().

◆ maplist

Maplist NurbsTessellator::maplist
protected

◆ nextCurve

O_curve** NurbsTessellator::nextCurve
private

Definition at line 159 of file nurbstess.h.

Referenced by do_bgncurve(), do_bgntrim(), do_endcurve(), and do_endtrim().

◆ nextNurbscurve

O_nurbscurve** NurbsTessellator::nextNurbscurve
private

Definition at line 160 of file nurbstess.h.

Referenced by do_bgncurve(), do_endcurve(), and do_nurbscurve().

◆ nextNurbssurface

O_nurbssurface** NurbsTessellator::nextNurbssurface
private

Definition at line 162 of file nurbstess.h.

Referenced by do_bgnsurface(), do_endsurface(), do_nurbssurface(), and ~NurbsTessellator().

◆ nextPwlcurve

O_pwlcurve** NurbsTessellator::nextPwlcurve
private

Definition at line 161 of file nurbstess.h.

Referenced by do_bgncurve(), do_endcurve(), and do_pwlcurve().

◆ nextTrim

O_trim** NurbsTessellator::nextTrim
private

Definition at line 158 of file nurbstess.h.

Referenced by do_bgnsurface(), do_bgntrim(), and do_endsurface().

◆ numTrims

int NurbsTessellator::numTrims
private

Definition at line 155 of file nurbstess.h.

Referenced by do_bgnsurface(), do_endsurface(), and do_endtrim().

◆ o_curvePool

Pool NurbsTessellator::o_curvePool
private

Definition at line 138 of file nurbstess.h.

Referenced by bgncurve(), and do_freebgncurve().

◆ o_nurbscurvePool

Pool NurbsTessellator::o_nurbscurvePool
private

Definition at line 137 of file nurbstess.h.

Referenced by do_freenurbscurve(), and nurbscurve().

◆ o_nurbssurfacePool

Pool NurbsTessellator::o_nurbssurfacePool
private

Definition at line 141 of file nurbstess.h.

Referenced by do_freenurbssurface(), and nurbssurface().

◆ o_pwlcurvePool

Pool NurbsTessellator::o_pwlcurvePool
private

Definition at line 136 of file nurbstess.h.

Referenced by do_freepwlcurve(), and pwlcurve().

◆ o_surfacePool

Pool NurbsTessellator::o_surfacePool
private

Definition at line 140 of file nurbstess.h.

Referenced by bgnsurface(), and do_freebgnsurface().

◆ o_trimPool

Pool NurbsTessellator::o_trimPool
private

Definition at line 139 of file nurbstess.h.

Referenced by bgntrim(), and do_freebgntrim().

◆ playBack

int NurbsTessellator::playBack
private

◆ propertyPool

Pool NurbsTessellator::propertyPool
private

Definition at line 142 of file nurbstess.h.

Referenced by do_freenurbsproperty(), and setnurbsproperty().

◆ quiltPool

Pool NurbsTessellator::quiltPool

Definition at line 144 of file nurbstess.h.

Referenced by do_freenurbscurve(), do_freenurbssurface(), nurbscurve(), and nurbssurface().

◆ renderhints

Renderhints NurbsTessellator::renderhints
protected

◆ subdivider


The documentation for this class was generated from the following files: