24 #ifndef __ODGITESSELATOR_H_INCLUDED__
25 #define __ODGITESSELATOR_H_INCLUDED__
35 #ifndef ODGT_NAMESPACE
36 #define ODGT_NAMESPACE OdGeTess
37 #define ODGT_PTRTYPE OdSmartPtr<Contour>
38 #define ODGT_PARENT : public OdRxObject
127 pCntr2Ins->m_pNextContour = m_pNextContour;
128 return (m_pNextContour = pCntr2Ins);
149 const void*
coords()
const {
return m_pCoords; }
150 bool is2d()
const {
return m_b2d; }
158 bool failed()
const {
return m_bFailed; }
159 double tol()
const {
return m_tol; }
165 friend class Contour;
187 m_pNextVertex = vert2;
194 int index()
const {
return m_nIndex; }
196 unsigned int edgeId()
const {
return m_nEdgeId; }
197 void setEdgeId(
unsigned int nEdgeId) { m_nEdgeId = nEdgeId; }
204 void setContour(Contour* pContour) { m_pContour = pContour; }
208 inline bool Contour::isTriangle()
const
210 return (m_pFirstVertex && m_pFirstVertex->next()->next()==m_pFirstVertex->prev());
213 inline bool Contour::isLineSeg()
const
215 return (m_pFirstVertex && m_pFirstVertex->next()==m_pFirstVertex->prev());
223 #undef ODGT_NAMESPACE
#define GE_TOOLKIT_EXPORT
static bool isIncomming(const Vertex *v1, const Vertex *v2)
Vertex * addVertex(int index, unsigned int edgeId=0)
bool normalize(double size)
void breakContour(Vertex *vertex)
static ContourPtr create(const OdGePoint2d *coords ODGT_HOLDER)
ContourPtr copy(int bNested) const
static ContourPtr create(const OdGePoint3d *coords ODGT_HOLDER)
bool isInside(const OdGePoint2d &point) const
ContourPtr m_pNextContour
bool intersections(const Vertex *pVert1, const OdGePoint2d *pVert2, Intersections &res, bool bNested) const
bool vectorIntersects(const Vertex *v1, const Vertex *v2, bool bNested) const
double squareValue() const
static bool isIncommingR(const Vertex *v1, const Vertex *v2)
ContourPtr insert(Contour *pCntr2Ins)
static ContourPtr create(const void *coords, bool b2d ODGT_HOLDER)
bool isIncommingOrOnEdgeR(const Vertex *pV1, const Vertex *pV2) const
const OdGePoint2d & point(int index) const
void checkClockwiseOriented(int bNested)
static void split(Vertex *v1, Vertex *v2)
void addVertex(Vertex *vertex)
void breakToConvex2(double size)
void splitPolygon(Vertex *pV1, Vertex *pV2)
const Vertex * head() const
double calcMaxCoordValue(double &size) const
bool intersections(const Vertex *vert1, const Vertex *vert2, Intersections &res, bool bNested) const
void delVertex(Vertex *vertex)
ContourPtr lastContour() const
ContourPtr breakToConvex(unsigned int options, double eps=-1.)
void concatContours(Vertex *pC1vert, Contour *pContour2, Vertex *pC2vert)
void removeEqualVertexes(const OdGeTol &tol)
bool splitOnCoincidentPoint(double size)
void removeVertex(Vertex *vertex)
const void * coords() const
bool intersections_lv(const Vertex *vert1, const LocalVert *vert2, Intersections &res, bool bNested) const
const Vertex * prev() const
void setContour(Contour *pContour)
const Vertex * next() const
void setIndex(int nIndex)
void setEdgeId(unsigned int nEdgeId)
const OdGePoint2d & point() const
ContourPtr contour() const
EdgesType edgesType() const
unsigned int edgeId() const
GLfloat GLfloat GLfloat v2
OdArray< Intersection, OdMemoryAllocator< Intersection > > Intersections
bool operator<(const Intersection &op) const