48#define max(a,b) ((a>b)? a:b)
49#define min(a,b) ((a>b)? b:a)
53 Int leftStartIndex,
Int leftEndIndex,
55 Int rightStartIndex,
Int rightEndIndex,
58 Int gridIndex1,
Int gridIndex2,
59 Int up_leftCornerWhere,
60 Int up_leftCornerIndex,
61 Int up_rightCornerWhere,
62 Int up_rightCornerIndex,
63 Int down_leftCornerWhere,
64 Int down_leftCornerIndex,
65 Int down_rightCornerWhere,
66 Int down_rightCornerIndex,
74 leftStartIndex, leftEndIndex,
76 rightStartIndex, rightEndIndex,
89 leftStartIndex, leftEndIndex,
94 gridIndex1, gridIndex2,
97 down_rightCornerWhere,
98 down_rightCornerIndex,
124 down_leftCornerWhere,
125 down_leftCornerIndex,
126 down_rightCornerWhere,
127 down_rightCornerIndex,
133 rbArray->
insert(
new rectBlock(leftGridChain, rightGridChain, gridIndex1, gridIndex2));
144 Int leftStartIndex,
Int leftEndIndex,
146 Int rightStartIndex,
Int rightEndIndex,
148 Int gridIndex1,
Int gridIndex2,
149 Int up_leftCornerWhere,
150 Int up_leftCornerIndex,
151 Int down_leftCornerWhere,
152 Int down_leftCornerIndex,
160 Int gridMidIndex1 = 0, gridMidIndex2 = 0;
171 if(midIndex1<= leftEndIndex && gridIndex1<gridIndex2)
179 gridIndex1, gridIndex2);
180 gridMidIndex2 = 1+leftGridChain->
lookfor(leftChain->
getVertex(midIndex2)[1],
181 gridMidIndex1, gridIndex2);
190 Int cornerRightUpEnd;
191 Int cornerRightDownStart;
192 if(up_leftCornerWhere == 0)
194 cornerTop = leftChain->
getVertex(up_leftCornerIndex);
195 cornerLeftStart = up_leftCornerIndex+1;
196 cornerRightUpEnd = -1;
198 else if(up_leftCornerWhere == 1)
200 cornerTop = topVertex;
201 cornerLeftStart = leftStartIndex;
202 cornerRightUpEnd = -1;
206 cornerTop = topVertex;
207 cornerLeftStart = leftStartIndex;
208 cornerRightUpEnd = up_leftCornerIndex;
211 if(down_leftCornerWhere == 0)
213 cornerBot = leftChain->
getVertex(down_leftCornerIndex);
214 cornerLeftEnd = down_leftCornerIndex-1;
215 cornerRightDownStart = rightEndIndex+1;
217 else if(down_leftCornerWhere == 1)
219 cornerBot = botVertex;
220 cornerLeftEnd = leftEndIndex;
221 cornerRightDownStart = rightEndIndex+1;
225 cornerBot = botVertex;
226 cornerLeftEnd = leftEndIndex;
227 cornerRightDownStart = down_leftCornerIndex;
262 cornerRightDownStart,
287 cornerRightDownStart,
316 max(0,rightUpEnd - rightUpBegin+1)+
317 max(0,rightDownEnd - rightDownBegin+1));
320 for(
i=rightUpBegin;
i<= rightUpEnd;
i++)
328 for(
k=1,
i=gridBeginIndex+1;
i<=gridEndIndex;
i++,
k++)
354 for(
i=rightDownBegin;
i<= rightDownEnd;
i++)
358 leftChain, leftStart, leftEnd,
Int lookfor(Real v, Int i1, Int i2)
void insert(Real u, Real v)
void insert(rectBlock *newBlock)
void appendVertex(Real *ptr)
Int findIndexBelowGen(Real v, Int startIndex, Int EndIndex)
Int findIndexAboveGen(Real v, Int startIndex, Int EndIndex)
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
void monoTriangulationRecGen(Real *topVertex, Real *botVertex, vertexArray *inc_chain, Int inc_current, Int inc_end, vertexArray *dec_chain, Int dec_current, Int dec_end, primStream *pStream)
void sampleCompBot(Real *botVertex, vertexArray *leftChain, Int leftEnd, vertexArray *rightChain, Int rightEnd, gridBoundaryChain *leftGridChain, gridBoundaryChain *rightGridChain, Int gridIndex, Int down_leftCornerWhere, Int down_leftCornerIndex, Int down_rightCornerWhere, Int down_rightCornerIndex, primStream *pStream)
void sampleCompRight(Real *topVertex, Real *botVertex, vertexArray *leftChain, Int leftStartIndex, Int leftEndIndex, vertexArray *rightChain, Int rightStartIndex, Int rightEndIndex, gridBoundaryChain *rightGridChain, Int gridIndex1, Int gridIndex2, Int up_rightCornerWhere, Int up_rightCornerIndex, Int down_rightCornerWhere, Int down_rightCornerIndex, primStream *pStream)
void sampleCompTop(Real *topVertex, vertexArray *leftChain, Int leftStartIndex, vertexArray *rightChain, Int rightStartIndex, gridBoundaryChain *leftGridChain, gridBoundaryChain *rightGridChain, Int gridIndex1, Int up_leftCornerWhere, Int up_leftCornerIndex, Int up_rightCornerWhere, Int up_rightCornerIndex, primStream *pStream)
void sampleLeftSingleTrimEdgeRegionGen(Real topVert[2], Real botVert[2], vertexArray *leftChain, Int leftStart, Int leftEnd, gridBoundaryChain *gridChain, Int gridBeginIndex, Int gridEndIndex, vertexArray *rightChain, Int rightUpBegin, Int rightUpEnd, Int rightDownBegin, Int rightDownEnd, primStream *pStream)
void sampleConnectedComp(Real *topVertex, Real *botVertex, vertexArray *leftChain, Int leftStartIndex, Int leftEndIndex, vertexArray *rightChain, Int rightStartIndex, Int rightEndIndex, gridBoundaryChain *leftGridChain, gridBoundaryChain *rightGridChain, Int gridIndex1, Int gridIndex2, Int up_leftCornerWhere, Int up_leftCornerIndex, Int up_rightCornerWhere, Int up_rightCornerIndex, Int down_leftCornerWhere, Int down_leftCornerIndex, Int down_rightCornerWhere, Int down_rightCornerIndex, primStream *pStream, rectBlockArray *rbArray)
void sampleCompLeft(Real *topVertex, Real *botVertex, vertexArray *leftChain, Int leftStartIndex, Int leftEndIndex, vertexArray *rightChain, Int rightStartIndex, Int rightEndIndex, gridBoundaryChain *leftGridChain, Int gridIndex1, Int gridIndex2, Int up_leftCornerWhere, Int up_leftCornerIndex, Int down_leftCornerWhere, Int down_leftCornerIndex, primStream *pStream)
void sampleLeftStripRecF(vertexArray *leftChain, Int topLeftIndex, Int botLeftIndex, gridBoundaryChain *leftGridChain, Int leftGridChainStartIndex, Int leftGridChainEndIndex, primStream *pStream)