33 #ifndef _SAMPLEMONOPOLY_H
34 #define _SAMPLEMONOPOLY_H
36 #include "monoTriangulation.h"
38 #include "rectBlock.h"
41 void triangulateXYMono(Int n_upper, Real upperVerts[][2],
42 Int n_lower, Real lowerVerts[][2],
59 Int leftGridChainStartIndex,
63 void sampleLeftSingleTrimEdgeRegion(Real upperVert[2], Real lowerVert[2],
73 Int leftGridChainStartIndex,
74 Int leftGridChainEndIndex,
82 Int leftGridChainStartIndex,
83 Int leftGridChainEndIndex,
87 void findLeftGridIndices(
directedLine* topEdge, Int firstGridIndex, Int lastGridIndex,
gridWrap* grid, Int* ret_indices, Int* ret_inner);
89 void findRightGridIndices(
directedLine* topEdge, Int firstGridIndex, Int lastGridIndex,
gridWrap* grid, Int* ret_indices, Int* ret_inner);
93 void sampleMonoPolyRec(
111 Int leftGridChainStartIndex,
112 Int leftGridChainEndIndex,
116 void findUpCorners(Real *topVertex,
118 Int leftChainStartIndex, Int leftChainEndIndex,
120 Int rightChainStartIndex, Int rightChainEndIndex,
124 Int& ret_leftCornerWhere,
125 Int& ret_leftCornerIndex,
126 Int& ret_rightCornerWhere,
127 Int& ret_rightCornerIndex
129 void findDownCorners(Real *botVertex,
130 vertexArray *leftChain, Int leftChainStartIndex, Int leftChainEndIndex,
131 vertexArray *rightChain, Int rightChainStartIndex, Int rightChainEndIndex,
135 Int& ret_leftCornerWhere,
136 Int& ret_leftCornerIndex,
137 Int& ret_rightCornerWhere,
138 Int& ret_rightCornerIndex
140 void findNeck(
vertexArray *leftChain, Int botLeftIndex,
146 Int findNeckF(
vertexArray *leftChain, Int botLeftIndex,
164 Real* topV, Real* botV,
173 Int rightCornerWhere,
174 Int rightCornerIndex,
175 Int bot_leftCornerWhere,
176 Int bot_leftCornerIndex,
177 Int bot_rightCornerWhere,
178 Int bot_rightCornerIndex);
180 Int checkMiddle(
vertexArray* chain, Int begin, Int end,
181 Real vup, Real vbelow);