24 #ifndef __ODGITESSELATOR_2_H_INCLUDED__
25 #define __ODGITESSELATOR_2_H_INCLUDED__
32 #define ODGT_NAMESPACE OdGeTess2
33 #define ODGT_PTRTYPE Contour*
36 #define ODGT_MEMBERS2 \
38 static void *create(OdUInt32 num)\
40 return new Vertex[num];\
43 #define ODGT_MEMBERS \
44 friend class OptimizedHolder;\
45 MemoryHolder *m_pHolder;\
47 static void *create(OdUInt32 num)\
49 return new Contour[num];\
52 #define ODGT_HOLDER , MemoryHolder &pHolder
53 #define ODGT_HOLDER2 , pHolder
76 #define HOLDER_(A, B) struct A\
87 , m_pageSize(pageSize)\
90 m_FirstPage = (B*)B::create(m_pageSize);\
96 delete []m_FirstPage; m_FirstPage = 0;\
97 OdList< B* >::iterator pIt = m_Buf.begin();\
98 OdList< B* >::iterator pItEnd = m_Buf.end();\
100 while(pIt != pItEnd)\
114 if (m_pos == m_pageSize)\
117 m_Buf.push_front( (B*)B::create(m_pageSize) );\
121 return &m_FirstPage[m_pos++];\
122 return &(*m_Buf.begin())[m_pos++];\
134 HOLDER_(Holder_Contour, Contour)
138 Holder_Contour m_Ctrs;
153 #undef ODGT_NAMESPACE
#define GE_TOOLKIT_EXPORT
virtual Vertex * newVertex()=0
virtual void deleteContour(Contour *)=0
virtual void deleteVertex(Vertex *)=0
virtual Contour * newContour()=0
virtual void deleteContour(Contour *)
virtual Vertex * newVertex()
virtual void deleteVertex(Vertex *pVx)
virtual Contour * newContour()
OptimizedHolder(OdUInt32 nPreAllocVertexes, OdUInt32 nPreAllocContours)