69#define OPTIMIZE_UNTRIMED_CASE
101 jarc->append(
pjarc );
103 assert( jarc->check() != 0 );
114 arctessellator( trimvertexpool, pwlarcpool ),
166 bezierArc->
cpts = cpts;
225#ifdef OPTIMIZE_UNTRIMED_CASE
233#ifdef OPTIMIZE_UNTRIMED_CASE
315#ifdef OPTIMIZE_UNTRIMED_CASE
333 if(num_u_steps <= 0) num_u_steps = 1;
334 if(num_v_steps <= 0) num_v_steps = 1;
337 ptb[1], pta[1], num_v_steps);
393 if(
source.isnonempty() ) {
424 if(
source.isnonempty() ) {
475 if( !
source.isnonempty() )
return;
534 if(
left.isnonempty() ) {
540 if(
right.isnonempty() ) {
599 if(
source.isnonempty() ) {
628 if(
source.isnonempty() ) {
664 for(
Arc_ptr jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
665 REAL *
a = jarc->prev->tail();
666 REAL *
b = jarc->tail();
667 REAL *
c = jarc->head();
669 if(
b[1] ==
a[1] &&
b[1] ==
c[1] )
continue;
672 if((
b[1]<=
a[1] &&
b[1] <=
c[1]) ||
673 (
b[1]>=
a[1] &&
b[1] >=
c[1]))
680 if(
a[0]==
c[0] &&
a[1] ==
c[1])
682 if(jarc->pwlArc->npts >2)
684 c = jarc->pwlArc->pts[jarc->pwlArc->npts-2].param;
688 assert(jarc->prev->pwlArc->npts>2);
689 a = jarc->prev->pwlArc->pts[jarc->prev->pwlArc->npts-2].param;
728 for(
Arc_ptr jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
729 REAL *
a = jarc->prev->tail();
730 REAL *
b = jarc->tail();
731 REAL *
c = jarc->head();
733 if(
b[0] ==
a[0] &&
b[0] ==
c[0] )
continue;
735 if(
b[0] <=
a[0] &&
b[0] <=
c[0] ) {
736 if(
a[1] !=
b[1] &&
b[1] !=
c[1] )
continue;
739 }
else if (
b[0] >=
a[0] &&
b[0] >=
c[0] ) {
740 if(
a[1] !=
b[1] &&
b[1] !=
c[1] )
continue;
784 jarc->append(
pjarc );
786 assert( jarc->check() != 0 );
805 for(
Arc_ptr jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
806 if( jarc->ismarked() ) {
807 assert( jarc->check( ) != 0 );
812 }
while (jarc != jarchead);
827 for(
Arc_ptr jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
828 if( jarc->ismarked() ) {
829 assert( jarc->check( ) != 0 );
835 }
while (jarc != jarchead);
851 while( (jarc =
bin.removearc()) !=
NULL ) {
852 if( jarc->pwlArc ) jarc->pwlArc->deleteMe(
pwlarcpool );
854 if( jarc->bezierArc) jarc->bezierArc->deleteMe(
bezierarcpool );
878 for(
Arc_ptr jarc=
bin.firstarc(); jarc; jarc=
bin.nextarc() ) {
879 if( jarc->isbezier( ) ) {
880 assert( jarc->pwlArc->npts == 2 );
887 jarc->pwlArc->deleteMe(
pwlarcpool ); jarc->pwlArc = 0;
889 switch( jarc->getside() ) {
910 assert( ! jarc->isbezier() );
911 assert( jarc->check() != 0 );
void pwl_right(Arc_ptr, REAL, REAL, REAL, REAL)
void pwl_top(Arc_ptr, REAL, REAL, REAL, REAL)
void pwl_bottom(Arc_ptr, REAL, REAL, REAL, REAL)
void bezier(Arc_ptr, REAL, REAL, REAL, REAL)
void pwl_left(Arc_ptr, REAL, REAL, REAL, REAL)
void bgnsurf(int, int, long)
void surfmesh(long, long, long, long)
void patch(REAL, REAL, REAL, REAL)
void surfgrid(REAL, REAL, long, REAL, REAL, long)
int needsSamplingSubdivision(void)
int needsSubdivision(int)
int needsNonSamplingSubdivision(void)
void findRates(Flist &slist, Flist &tlist, REAL[2])
void downloadAll(REAL *, REAL *, Backend &)
void getRange(REAL *, REAL *, Flist &, Flist &)
void evalStream(primStream *)
void set_ulinear(int ulinear_flag)
void set_vlinear(int vlinear_flag)
void setstriptessellation(REAL, REAL)
Subdivider(Renderhints &, Backend &)
REAL domain_distance_u_rate
int ccwTurn_sr(Arc_ptr, Arc_ptr)
void samplingSplit(Curvelist &, int)
int is_domain_distance_sampling
void splitInT(Bin &, int, int)
int decompose(Bin &, REAL)
void monosplitInT(Bin &, int, int)
void makeBorderTrim(const REAL *, const REAL *)
Renderhints & renderhints
ArcTessellator arctessellator
Bin * makePatchBoundary(const REAL *from, const REAL *to)
REAL domain_distance_v_rate
void setNonDegenerate(void)
void findIrregularT(Bin &)
void tessellate(Arc_ptr, REAL)
void tessellation(Bin &, Patchlist &)
void monosplitInS(Bin &, int, int)
void addArc(REAL *, Quilt *, long)
void splitInS(Bin &, int, int)
void nonSamplingSplit(Bin &, Patchlist &, int, int)
void split(Bin &, Bin &, Bin &, int, REAL)
void setJumpbuffer(JumpBuffer *)
int ccwTurn_sl(Arc_ptr, Arc_ptr)
TrimVertexPool trimvertexpool
void findIrregularS(Bin &)
void setArcTypeBezier(void)
directedLine * deleteDegenerateLinesAllPolygons()
#define CULL_TRIVIAL_REJECT
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble q
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
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
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 GLint GLint j
static struct _PeImage bin
directedLine * MC_partitionY(directedLine *polygons, sampledLine **retSampledLines)
void monoTriangulation(directedLine *monoPolygon, primStream *pStream)
#define N_OUTLINE_PARAM_S
#define N_OUTLINE_SUBDIV_ST
#define N_OUTLINE_PARAM_ST
#define N_OUTLINE_SUBDIV_S
static Real area(Real A[2], Real B[2], Real C[2])
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList