59 for( jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
60 if( ! jarc->isTessellated() ) {
64 if( jarc->isDisconnected() || jarc->next->isDisconnected() )
69 for( jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
74 for( jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
90 REAL arc_stepsize = (
max > 1.0) ? (1.0/
max) : 1.0;
91 if( jarc->bezierArc->order != 2 )
98 REAL arc_stepsize = (
max > 1.0) ? (1.0/
max) : 1.0;
99 if( jarc->bezierArc->order != 2 )
117 TrimVertex *lastvert = firstvert + (jarc->pwlArc->npts - 1);
118 long uid = jarc->
nuid;
128 for( vert = firstvert; vert != lastvert; vert++ ) {
140 }
else if( sdiff < 0.0 ) {
161 }
else if( tdiff < 0.0 ) {
178 jarc->pwlArc->npts = vert - firstvert + 1;
183 firstvert = jarc->pwlArc->pts = vert;
184 degenerate = nudegenerate;
187 jarc->pwlArc->npts = vert - firstvert + 1;
191 jarc->prev->next = jarc->next;
192 jarc->next->prev = jarc->prev;
194 assert( jarc->prev->check( ) != 0 );
195 assert( jarc->next->check( ) != 0 );
198 bin.remove_this_arc( jarc );
200 jarc->pwlArc->deleteMe(
pwlarcpool ); jarc->pwlArc = 0;
213 TrimVertex *lastvert = firstvert + (jarc->pwlArc->npts - 1);
215 if( firstvert == lastvert )
return 1;
224 else if( diff < 0.0 )
232 else if( diff < 0.0 )
237 if( (sdir ==
same) && (tdir ==
same) )
return 0;
239 for( ++vert ; vert != lastvert; vert++ ) {
242 if( sdir !=
same )
return 0;
243 }
else if( diff < 0.0 ) {
244 if( sdir !=
down )
return 0;
246 if( sdir !=
up )
return 0;
251 if( tdir !=
same )
return 0;
252 }
else if( diff < 0.0 ) {
253 if( tdir !=
down )
return 0;
255 if( tdir !=
up )
return 0;
void tessellateNonlinear(Arc_ptr, REAL, REAL, int)
void tessellateLinear(Arc_ptr, REAL, REAL, int)
REAL calcVelocityNonrational(REAL *, int, int)
REAL calcVelocityRational(REAL *, int, int)
int decompose(Bin &, REAL)
ArcTessellator arctessellator
void tessellate(Arc_ptr, REAL)
void monotonize(Arc_ptr, Bin &)
GLboolean GLboolean GLboolean b
static void append(struct dump_context *dc, const void *data, unsigned size)
static struct _PeImage bin