Rhino C++ API  8.6
Public Member Functions | Friends | List of all members
ON_MeshXPointPool Class Reference

#include <opennurbs_mesh.h>

Inheritance diagram for ON_MeshXPointPool:
ON_FixedSizePool

Public Member Functions

 ON_MeshXPointPool ()
 
 ON_MeshXPointPool (unsigned int mesh_point_event_sn0)
 
ON_MeshXPointAllocPoint ()
 
void JoinPoints (ON_SimpleArray< ON_MeshXPoint * > *starts, ON_SimpleArray< ON_MeshXPointPair > *pairs, int(*compare_points_func)(const ON_MeshXPoint *, const ON_MeshXPoint *))
 
unsigned int MaximumEventSerialNumber () const
 
unsigned int PointCount () const
 
unsigned int RepairPrevNext ()
 
void ReturnAllPoints ()
 
void ReturnPoint (ON_MeshXPoint *)
 
void SetAllTags (ON__INT_PTR tag)
 
bool ValidatePrevNext () const
 

Friends

class ON_MeshXPointPoolIterator
 

Constructor & Destructor Documentation

◆ ON_MeshXPointPool() [1/2]

ON_MeshXPointPool::ON_MeshXPointPool ( )

◆ ON_MeshXPointPool() [2/2]

ON_MeshXPointPool::ON_MeshXPointPool ( unsigned int  mesh_point_event_sn0)

Parameters: mesh_point_event_sn0 - [in] event serial numbers will begin at mesh_point_event_sn0+1

Member Function Documentation

◆ AllocPoint()

ON_MeshXPoint* ON_MeshXPointPool::AllocPoint ( )

◆ JoinPoints()

void ON_MeshXPointPool::JoinPoints ( ON_SimpleArray< ON_MeshXPoint * > *  starts,
ON_SimpleArray< ON_MeshXPointPair > *  pairs,
int(*)(const ON_MeshXPoint *, const ON_MeshXPoint *)  compare_points_func 
)

Description: Join the points into connected intersection components by setting the ON_MeshXPoint::m_p[] pointers to the previous and next points in the intersection component. The first point of an intersection component has zero m_p[0] and nonzero m_p[1] values. The last point of an intersection component has nonzero m_p[0] and zero m_p[1] values. Parameters: starts - [out] (pass null if you do not want this information) For each intersection component, the first point in the component is appended to starts[].
pairs - [out]
(pass null if you do not want this information) For each intersection component, a pair with the first and last points in intersection component is appended to pairs[]. compare_points_func - [in] If compare_points_func() is null, then the function ON_MeshXPoint::CompareLocationsAndId() is used to decide if points are coincident. If compare_points_func() is not null, it must be a function that can be used to quick sort an array of ON_MeshXPoint elements. Remarks: The linked list of ON_MeshXPoint will contain duplicate locations where the intersection component crosses a shared edge. The JoinPoints() function requires the input values of m_p[] to be valid. Call RepairPrevNext() before calling JoinPoints() if you are running code outside of opennurbs that may have bugs that incorrectly set m_p[] values.

◆ MaximumEventSerialNumber()

unsigned int ON_MeshXPointPool::MaximumEventSerialNumber ( ) const

Returns: All event serial numbers are <= MaximumEventSerialNumber().

◆ PointCount()

unsigned int ON_MeshXPointPool::PointCount ( ) const

◆ RepairPrevNext()

unsigned int ON_MeshXPointPool::RepairPrevNext ( )

Description: If ValidatePrevNext() returns false, then RepairPrevNext() can be used to alter the m_p[] values so they make sense. Returns: Number of ON_MeshXPoint m_p[0] values that were set to zero.

◆ ReturnAllPoints()

void ON_MeshXPointPool::ReturnAllPoints ( )

◆ ReturnPoint()

void ON_MeshXPointPool::ReturnPoint ( ON_MeshXPoint )

◆ SetAllTags()

void ON_MeshXPointPool::SetAllTags ( ON__INT_PTR  tag)

Description: Set every point's m_tag value to tag. Parameters: tag - [in] Remarks: This

◆ ValidatePrevNext()

bool ON_MeshXPointPool::ValidatePrevNext ( ) const

Returns: True if the ON_MeshXPoint.m_p[] values are correctly set.

Friends And Related Function Documentation

◆ ON_MeshXPointPoolIterator

friend class ON_MeshXPointPoolIterator
friend