Rhino C++ API  8.6
Public Types | Public Member Functions | List of all members
ON_SubDMeshFragmentIterator Class Reference

#include <opennurbs_subd.h>

Public Types

enum  : unsigned int { DefaultMaximumMeshQuadCount = 262144 }
 

Public Member Functions

 ON_SubDMeshFragmentIterator ()=default
 
 ON_SubDMeshFragmentIterator (const class ON_SubDMesh limit_mesh)
 
 ON_SubDMeshFragmentIterator (const ON_SubD &subd)
 
 ON_SubDMeshFragmentIterator (const ON_SubDFaceIterator &fit)
 
 ON_SubDMeshFragmentIterator (const ON_SubDMeshFragmentIterator &)
 
 ON_SubDMeshFragmentIterator (ON_SubDRef &subd_ref)
 
 ~ON_SubDMeshFragmentIterator ()=default
 
const ON_BoundingBox BoundingBox () const
 
unsigned int ClampMeshDensity (unsigned int candidate_mesh_density) const
 
const ON_BoundingBox ControlNetQuadBoundingBox () const
 
const ON_SubDMeshFragmentCurrentFragment ()
 
const ON_SubDMeshFragmentFirstFragment ()
 
unsigned int FragmentCount () const
 
unsigned int FullSizeFragmentCount () const
 
unsigned int GetFragmentCounts (unsigned int &full_size_fragment_count, unsigned int &half_size_fragment_count) const
 
unsigned int HalfSizeFragmentCount () const
 
bool IsEmpty () const
 
unsigned int MaximumDensityPointCount () const
 
unsigned int MaximumDensityQuadCount () const
 
unsigned int MaximumMeshDensity () const
 
unsigned int MinimumMeshDensity () const
 
const ON_SubDMeshFragmentNextFragment ()
 
ON_SubDMeshFragmentIteratoroperator= (const ON_SubDMeshFragmentIterator &)
 
void SetSubDAppearanceOverride (ON_SubDComponentLocation subd_appearance_override)
 
const ON_SubDSubD () const
 
ON_SubDComponentLocation SubDAppearance () const
 
const ON_BoundingBox SurfaceBoundingBox () const
 
unsigned int TotalPointCount (unsigned int mesh_density) const
 
unsigned int TotalQuadCount (unsigned int mesh_density) const
 

Detailed Description

ON_SubDMeshFragmentIterator

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : unsigned int
Enumerator
DefaultMaximumMeshQuadCount 

Rhino uses this value in MeshDensityFromMaxMeshQuadCount() to se the default level of detail. The enum will always exist but the value can change without breaking the SDK. You code must assume this value will change with each service release of Rhino.

Constructor & Destructor Documentation

◆ ON_SubDMeshFragmentIterator() [1/6]

ON_SubDMeshFragmentIterator::ON_SubDMeshFragmentIterator ( )
default

◆ ~ON_SubDMeshFragmentIterator()

ON_SubDMeshFragmentIterator::~ON_SubDMeshFragmentIterator ( )
default

◆ ON_SubDMeshFragmentIterator() [2/6]

ON_SubDMeshFragmentIterator::ON_SubDMeshFragmentIterator ( const ON_SubDMeshFragmentIterator )

◆ ON_SubDMeshFragmentIterator() [3/6]

ON_SubDMeshFragmentIterator::ON_SubDMeshFragmentIterator ( const class ON_SubDMesh  limit_mesh)

◆ ON_SubDMeshFragmentIterator() [4/6]

ON_SubDMeshFragmentIterator::ON_SubDMeshFragmentIterator ( ON_SubDRef subd_ref)

◆ ON_SubDMeshFragmentIterator() [5/6]

ON_SubDMeshFragmentIterator::ON_SubDMeshFragmentIterator ( const ON_SubD subd)

◆ ON_SubDMeshFragmentIterator() [6/6]

ON_SubDMeshFragmentIterator::ON_SubDMeshFragmentIterator ( const ON_SubDFaceIterator fit)

Member Function Documentation

◆ BoundingBox()

const ON_BoundingBox ON_SubDMeshFragmentIterator::BoundingBox ( ) const

Returns: If this->SubDAppearance() is ON_SubDComponentLocation::ControlNet, then this->ControlNetQuadBoundingBox() is returned. Otherwise this->SurfaceBoundingBox() returned.

◆ ClampMeshDensity()

unsigned int ON_SubDMeshFragmentIterator::ClampMeshDensity ( unsigned int  candidate_mesh_density) const

Parameters: candidate_mesh_density - [in] Returns: If candidate_mesh_density > MeshDensity(), then MeshDensity() is returned. If candidate_mesh_density < MinimumMeshDensity(), then MinimumMeshDensity() is returned. Otherwise, candidate_mesh_density is returned.

◆ ControlNetQuadBoundingBox()

const ON_BoundingBox ON_SubDMeshFragmentIterator::ControlNetQuadBoundingBox ( ) const

◆ CurrentFragment()

const ON_SubDMeshFragment* ON_SubDMeshFragmentIterator::CurrentFragment ( )

◆ FirstFragment()

const ON_SubDMeshFragment* ON_SubDMeshFragmentIterator::FirstFragment ( )

◆ FragmentCount()

unsigned int ON_SubDMeshFragmentIterator::FragmentCount ( ) const

Returns: Total number of fragments.

◆ FullSizeFragmentCount()

unsigned int ON_SubDMeshFragmentIterator::FullSizeFragmentCount ( ) const

Returns: Total number of full sized fragments. Remarks: A full sized fragment covers an entire quad face.

◆ GetFragmentCounts()

unsigned int ON_SubDMeshFragmentIterator::GetFragmentCounts ( unsigned int &  full_size_fragment_count,
unsigned int &  half_size_fragment_count 
) const

Parameters: full_size_fragment_count - [out] Number of full sized fragments. These cover an entire quad face. half_size_fragment_count - [out] Number of half sized fragments. These cover a corner of an N-gon and are used when N != 4. Returns: Total number of fragments.

◆ HalfSizeFragmentCount()

unsigned int ON_SubDMeshFragmentIterator::HalfSizeFragmentCount ( ) const

Returns: Total number of half sized fragments. Remarks: A half sized fragment covers the corner of an N-gon and are used when N != 4.

◆ IsEmpty()

bool ON_SubDMeshFragmentIterator::IsEmpty ( ) const

◆ MaximumDensityPointCount()

unsigned int ON_SubDMeshFragmentIterator::MaximumDensityPointCount ( ) const

Parameters: mesh_density - [in] MinimumMeshDensity() <= mesh_density <= MeshDensity() Returns: Total number of mesh points delivered at MaximumMeshDensity().

◆ MaximumDensityQuadCount()

unsigned int ON_SubDMeshFragmentIterator::MaximumDensityQuadCount ( ) const

Returns: Total number of mesh quads delivered at MaximumMeshDensity().

◆ MaximumMeshDensity()

unsigned int ON_SubDMeshFragmentIterator::MaximumMeshDensity ( ) const

Returns: Density setting used to create the fragments and the maximum mesh density these fragments can deliver. Remarks: 0: a single mesh quad per SubD quad 1: 4 mesh quads per SubD quad (n mesh quads per SubD n-gon when n != 4) d: 4^d mesh quads per SubD quad (n*(4^(d-1)) mesh quads per SubD n-gon when n != 4)

◆ MinimumMeshDensity()

unsigned int ON_SubDMeshFragmentIterator::MinimumMeshDensity ( ) const

Returns: Minimum mesh density that can be extracted from these fragments. Remarks: 0 = all fragments are full sized. 1 = there are half sixed fragments because the SubD has n-gons with n != 4.

◆ NextFragment()

const ON_SubDMeshFragment* ON_SubDMeshFragmentIterator::NextFragment ( )

◆ operator=()

ON_SubDMeshFragmentIterator& ON_SubDMeshFragmentIterator::operator= ( const ON_SubDMeshFragmentIterator )

◆ SetSubDAppearanceOverride()

void ON_SubDMeshFragmentIterator::SetSubDAppearanceOverride ( ON_SubDComponentLocation  subd_appearance_override)

◆ SubD()

const ON_SubD& ON_SubDMeshFragmentIterator::SubD ( ) const

◆ SubDAppearance()

ON_SubDComponentLocation ON_SubDMeshFragmentIterator::SubDAppearance ( ) const

◆ SurfaceBoundingBox()

const ON_BoundingBox ON_SubDMeshFragmentIterator::SurfaceBoundingBox ( ) const

◆ TotalPointCount()

unsigned int ON_SubDMeshFragmentIterator::TotalPointCount ( unsigned int  mesh_density) const

Parameters: mesh_density - [in] MinimumMeshDensity() <= mesh_density <= MeshDensity() Returns: Total number of mesh points delivered at the specified mesh density.

◆ TotalQuadCount()

unsigned int ON_SubDMeshFragmentIterator::TotalQuadCount ( unsigned int  mesh_density) const

Parameters: mesh_density - [in] MinimumMeshDensity() <= mesh_density <= MeshDensity() Returns: Total number of mesh quads in at the specified mesh density.