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 \
38static void *create(OdUInt32 num)\
40 return new Vertex[num];\
44friend class OptimizedHolder;\
45 MemoryHolder *m_pHolder;\
47static void *create(OdUInt32 num)\
49 return new Contour[num];\
52#define ODGT_HOLDER , MemoryHolder &pHolder
53#define ODGT_HOLDER2 , pHolder
80#define HOLDER_(A, B) struct A\
91 , m_pageSize(pageSize)\
94 m_FirstPage = (B*)B::create(m_pageSize);\
100 delete []m_FirstPage; m_FirstPage = 0;\
101 OdList< B* >::iterator pIt = m_Buf.begin();\
102 OdList< B* >::iterator pItEnd = m_Buf.end();\
104 while(pIt != pItEnd)\
118 if (m_pos == m_pageSize)\
121 m_Buf.push_front( (B*)B::create(m_pageSize) );\
125 return &m_FirstPage[m_pos++];\
126 return &(*m_Buf.begin())[m_pos++];\
154 HOLDER_(Holder_Contour, Contour)
158 Holder_Contour m_Ctrs;
#define GE_TOOLKIT_EXPORT
virtual void deleteContour(Contour *)=0
virtual void deleteVertex(Vertex *)=0
virtual Contour * newContour()=0
virtual Vertex * newVertex()=0
virtual Vertex * newVertex() ODRX_OVERRIDE
OptimizedHolder(OdUInt32 nPreAllocVertexes, OdUInt32 nPreAllocContours)