Rhino C++ API  8.7
Public Member Functions | Public Attributes | List of all members
ON_SubDFaceNeighborhood Class Reference

#include <opennurbs_subd_data.h>

Public Member Functions

 ON_SubDFaceNeighborhood ()=default
 
 ~ON_SubDFaceNeighborhood ()
 
bool Subdivide (const ON_SubDFace *face)
 

Public Attributes

const ON_SubDVertexm_center_vertex1 = nullptr
 
const ON_SubDFacem_face0 = nullptr
 initial face More...
 
const class ON_SubDFace ** m_face1 = nullptr
 
unsigned int m_face1_count = 0
 
unsigned char m_reserved1 = 0
 

Detailed Description

ON_SubDFaceNeighborhood

Constructor & Destructor Documentation

◆ ON_SubDFaceNeighborhood()

ON_SubDFaceNeighborhood::ON_SubDFaceNeighborhood ( )
default

◆ ~ON_SubDFaceNeighborhood()

ON_SubDFaceNeighborhood::~ON_SubDFaceNeighborhood ( )

Member Function Documentation

◆ Subdivide()

bool ON_SubDFaceNeighborhood::Subdivide ( const ON_SubDFace face)

Description: Apply a single iteration of the subdivision algorithm to face and save the results in this ON_SubDFaceNeighborhood. If a vertex of the initial face is extraordinary, the limit point and normal are calculated from face and saved on the subdivision.

The resulting section of a subdivision surface is suitable for limit surface and limit mesh evaluation of the original face. The ON_SubDFaceNeighborhood is designed to be used to calculate the limit surface and limit mesh for faces that have an extraordinary number of edges.

Member Data Documentation

◆ m_center_vertex1

const ON_SubDVertex* ON_SubDFaceNeighborhood::m_center_vertex1 = nullptr

The center vertex will be a smooth vertex with valence = m_face0->m_edge_count. The edges and faces are sorted radially and all faces are quads.

In all other cases, m_center_vertex is null.

◆ m_face0

const ON_SubDFace* ON_SubDFaceNeighborhood::m_face0 = nullptr

initial face

◆ m_face1

const class ON_SubDFace** ON_SubDFaceNeighborhood::m_face1 = nullptr

◆ m_face1_count

unsigned int ON_SubDFaceNeighborhood::m_face1_count = 0

m_face1[] is a list of the subdivision faces that subdivide the original face.
m_face1 is identical to m_center_vertex1->m_faces[]. The m_next_face pointers are set so that m_face1[i]->m_next_face = m_face1[i+1]. Note that m_face1[m_face1_count-1]->m_next_face may not be null.

◆ m_reserved1

unsigned char ON_SubDFaceNeighborhood::m_reserved1 = 0