33#ifndef _SAMPLEMONOPOLY_H
34#define _SAMPLEMONOPOLY_H
36#include "monoTriangulation.h"
41void triangulateXYMono(Int n_upper, Real upperVerts[][2],
42 Int n_lower, Real lowerVerts[][2],
59 Int leftGridChainStartIndex,
63void sampleLeftSingleTrimEdgeRegion(Real upperVert[2], Real lowerVert[2],
73 Int leftGridChainStartIndex,
74 Int leftGridChainEndIndex,
82 Int leftGridChainStartIndex,
83 Int leftGridChainEndIndex,
87void findLeftGridIndices(
directedLine* topEdge, Int firstGridIndex, Int lastGridIndex,
gridWrap* grid, Int* ret_indices, Int* ret_inner);
89void findRightGridIndices(
directedLine* topEdge, Int firstGridIndex, Int lastGridIndex,
gridWrap* grid, Int* ret_indices, Int* ret_inner);
93void sampleMonoPolyRec(
111 Int leftGridChainStartIndex,
112 Int leftGridChainEndIndex,
116void 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
129void 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
140void findNeck(
vertexArray *leftChain, Int botLeftIndex,
146Int 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);
180Int checkMiddle(
vertexArray* chain, Int begin, Int end,
181 Real vup, Real vbelow);