#include <opennurbs_subd.h>
|  | 
|  | ON_SubD_FixedSizeHeap ()=default | 
|  | 
|  | ~ON_SubD_FixedSizeHeap () | 
|  | 
| const ON_SubDEdgePtr | AllocateEdge (bool bUseFindOrAllocatEdge, ON_SubDVertex *v0, double v0_sector_coefficient, ON_SubDVertex *v1, double v1_sector_coefficient) | 
|  | 
| const ON_SubDEdgePtr | AllocateEdge (ON_SubDVertex *v0, double v0_sector_coefficient, ON_SubDVertex *v1, double v1_sector_coefficient) | 
|  | 
| ON_SubDVertex * | AllocateEdgeSubdivisionVertex (bool bUseFindOrAllocate, const ON_SubDEdge *edge0) | 
|  | 
| ON__UINT_PTR * | AllocatePtrArray (unsigned int capacity, bool bZeroMemory) | 
|  | 
| ON_SubDFace * | AllocateQuad (unsigned int zero_face_id, unsigned int parent_face_id, const ON_SubDEdgePtr eptrs[4]) | 
|  | 
| ON_SubDFace * | AllocateQuad (unsigned int zero_face_id, unsigned int parent_face_id, ON_SubDEdgePtr e0, ON_SubDEdgePtr e1, ON_SubDEdgePtr e2, ON_SubDEdgePtr e3) | 
|  | 
| ON_SubDVertex * | AllocateSectorFaceVertex (const ON_SubDFace *sector_face0) | 
|  | 
| ON_SubDVertex * | AllocateVertex (const double vertexP[3], unsigned int edge_capacity) | 
|  | 
| ON_SubDVertex * | AllocateVertex (const ON_SubDEdge *edge0) | 
|  | 
| ON_SubDVertex * | AllocateVertex (const ON_SubDVertex *vertex0, unsigned int edge_capacity) | 
|  | 
| void | Destroy () | 
|  | 
| const ON_SubDEdgePtr | FindOrAllocateEdge (ON_SubDVertex *v0, double v0_sector_coefficient, ON_SubDVertex *v1, double v1_sector_coefficient) | 
|  | 
| ON_SubDVertex * | FindOrAllocateVertex (const ON_SubDEdge *edge0) | 
|  | 
| ON_SubDVertex * | FindOrAllocateVertex (const ON_SubDFace *face0) | 
|  | 
| bool | InUse () const | 
|  | 
| bool | ReserveSubDWorkspace (const ON_SubDFace *center_face0) | 
|  | 
| bool | ReserveSubDWorkspace (unsigned int sector_edge_count) | 
|  | 
| void | Reset () | 
|  | 
| bool | ReturnPtrArray (void *p, unsigned int capacity) | 
|  | 
|  | 
| const unsigned int | m_sn = ++m__sn_factory | 
|  | The serial number is used for debugging purposes.  More... 
 | 
|  | 
ON_SubD_FixedSizeHeap Description: A ON_SubD_FixedSizeHeap is used to manage heap used for a local subdivision. 
◆ ON_SubD_FixedSizeHeap()
  
  | 
        
          | ON_SubD_FixedSizeHeap::ON_SubD_FixedSizeHeap | ( |  | ) |  |  | default | 
 
 
◆ ~ON_SubD_FixedSizeHeap()
      
        
          | ON_SubD_FixedSizeHeap::~ON_SubD_FixedSizeHeap | ( |  | ) |  | 
      
 
 
◆ AllocateEdge() [1/2]
◆ AllocateEdge() [2/2]
◆ AllocateEdgeSubdivisionVertex()
      
        
          | ON_SubDVertex* ON_SubD_FixedSizeHeap::AllocateEdgeSubdivisionVertex | ( | bool | bUseFindOrAllocate, | 
        
          |  |  | const ON_SubDEdge * | edge0 | 
        
          |  | ) |  |  | 
      
 
Description: Allocate a vertex located at the edge0 subdivision point. The vertex will have an edge and face capacity of 4. Parameters: edge0 - [in] 
 
 
◆ AllocatePtrArray()
      
        
          | ON__UINT_PTR* ON_SubD_FixedSizeHeap::AllocatePtrArray | ( | unsigned int | capacity, | 
        
          |  |  | bool | bZeroMemory | 
        
          |  | ) |  |  | 
      
 
Parameters: capacity - [in] desired array size bZeroMemory - [in] If true, all array element values are zero. If false, array element values are undefined. Returns: An array of capacity ON__UINT_PTR pointers. 
 
 
◆ AllocateQuad() [1/2]
      
        
          | ON_SubDFace* ON_SubD_FixedSizeHeap::AllocateQuad | ( | unsigned int | zero_face_id, | 
        
          |  |  | unsigned int | parent_face_id, | 
        
          |  |  | const ON_SubDEdgePtr | eptrs[4] | 
        
          |  | ) |  |  | 
      
 
 
◆ AllocateQuad() [2/2]
◆ AllocateSectorFaceVertex()
Description: Allocate a vertex located at the sector_face0 subdivision point. The vertex will have an edge and face capacity of 3. Parameters: sector_face0 - [in] A face in a vertex sector. 
 
 
◆ AllocateVertex() [1/3]
      
        
          | ON_SubDVertex* ON_SubD_FixedSizeHeap::AllocateVertex | ( | const double | vertexP[3], | 
        
          |  |  | unsigned int | edge_capacity | 
        
          |  | ) |  |  | 
      
 
 
◆ AllocateVertex() [2/3]
Description: Allocate a vertex located at the edge0 subdivision point. The vertex will have an edge and face capacity of 4. Parameters: edge0 - [in] 
 
 
◆ AllocateVertex() [3/3]
Description: Allocate a vertex located at the vertex0 subdivision point.
Parameters: vertex0 - [in] edge_capacity - [in] If the returned vertex will be interior in a local subdivision, then pass vertex0->EdgeCount(). If the returned vertex will be an outer ring vertex in a local subdivision, then pass 3. 
 
 
◆ Destroy()
      
        
          | void ON_SubD_FixedSizeHeap::Destroy | ( |  | ) |  | 
      
 
Description: Deallocate all reserved heap. 
 
 
◆ FindOrAllocateEdge()
◆ FindOrAllocateVertex() [1/2]
Description: Find or allocate a vertex located at the edge0 subdivision point. The vertex will have an edge and face capacity of 4. Parameters: edge0 - [in] Remarks: In order for FindOrAllocateVertex() to find a vertex, that vertex must have been created by an earlier call to FindOrAllocateVertex(). Typically, AllocateVertex(edge0) is used for center face boundary edges and FindOrAllocateVertex(edge0) is used for ring edges. 
 
 
◆ FindOrAllocateVertex() [2/2]
Description: Find or allocate a vertex and the face subdivision point. The vertex will have an edge and face capacity of face0->EdgeCount(). Parameters: face0 - [in] outer face in a local subdivision situation Remarks: In order for FindOrAllocateVertex() to find a vertex, that vertex must have been created by an earlier call to FindOrAllocateVertex(). Typically, AllocateVertex(edge0) is used for the center face and and FindOrAllocateVertex(edge0) is used for ring faces. 
 
 
◆ InUse()
      
        
          | bool ON_SubD_FixedSizeHeap::InUse | ( |  | ) | const | 
      
 
 
◆ ReserveSubDWorkspace() [1/2]
      
        
          | bool ON_SubD_FixedSizeHeap::ReserveSubDWorkspace | ( | const ON_SubDFace * | center_face0 | ) |  | 
      
 
Description: Reserve enough room for a local subdivide the neighborhood of center_face. Parameters: center_face0 - [in] 
 
 
◆ ReserveSubDWorkspace() [2/2]
      
        
          | bool ON_SubD_FixedSizeHeap::ReserveSubDWorkspace | ( | unsigned int | sector_edge_count | ) |  | 
      
 
Description: Reserve enough room to for a subdivision of a vertex sector. Parameters: sector_edge_count - [in] Number of edges in the sector. 
 
 
◆ Reset()
      
        
          | void ON_SubD_FixedSizeHeap::Reset | ( |  | ) |  | 
      
 
 
◆ ReturnPtrArray()
      
        
          | bool ON_SubD_FixedSizeHeap::ReturnPtrArray | ( | void * | p, | 
        
          |  |  | unsigned int | capacity | 
        
          |  | ) |  |  | 
      
 
Description: Return the most recent array obtained from AllocatePtrArray(). so it can be reused. 
 Returns: True: Success. False: Failure. The array was not the most recent array obtained from AllocatePtrArray(). 
 
 
◆ m_sn
      
        
          | const unsigned int ON_SubD_FixedSizeHeap::m_sn = ++m__sn_factory | 
      
 
The serial number is used for debugging purposes.