Rhino C++ API
8.14
|
#include <opennurbs_subd.h>
Public Types | |
enum | BispanAccuracy : unsigned char { BispanAccuracy::None = 0, BispanAccuracy::Exact = 1, BispanAccuracy::Approximate = 2 } |
ON_SubDSurfaceNurbsFragment::BispanAccuracy specifies if a bispan surface is an exact or approximate. More... | |
enum | Type : unsigned char { Type::Unset = 0, Type::BicubicSingle = 1, Type::BicubicQuadrant = 4 } |
ON_SubDSurfaceNurbsFragment::Type are types bezier bispans covering a portion of a SubD face. More... | |
Public Member Functions | |
ON_SubDSurfaceNurbsFragment ()=default | |
ON_SubDSurfaceNurbsFragment (const ON_SubDSurfaceNurbsFragment &)=default | |
~ON_SubDSurfaceNurbsFragment ()=default | |
ON_NurbsSurface * | GetQuadrantSurface (unsigned int quadrant_index, ON_NurbsSurface *destination_surface) const |
ON_NurbsSurface * | GetSurface (ON_NurbsSurface *destination_surface) const |
bool | IsApproximate () const |
bool | IsEmpty () const |
unsigned int | MaximumBispanCount () const |
ON_SubDSurfaceNurbsFragment & | operator= (const ON_SubDSurfaceNurbsFragment &)=default |
unsigned int | SetBispanCount () const |
unsigned int | UnsetBispanCount () const |
Public Attributes | |
ON_SubDSurfaceNurbsFragment::BispanAccuracy | m_bispan_type [4] = {} |
ON_SubDFaceRegion | m_face_region |
m_face_region identifies what part of the SubD is represented by this patch More... | |
double | m_patch_cv [5][5][3] |
knot vector is uniform and not clamped. For example {-2,-1,0,1,2,3,4}. More... | |
ON_SubDSurfaceNurbsFragment::Type | m_type = ON_SubDSurfaceNurbsFragment::Type::Unset |
Static Public Attributes | |
static const ON_SubDSurfaceNurbsFragment | Empty |
Every field of ON_SubDSurfaceNurbsFragment::Empty is zero. More... | |
static const ON_SubDSurfaceNurbsFragment | Nan |
static const ON_SubDSurfaceNurbsFragment | Unset |
|
strong |
ON_SubDSurfaceNurbsFragment::BispanAccuracy specifies if a bispan surface is an exact or approximate.
|
strong |
ON_SubDSurfaceNurbsFragment::Type are types bezier bispans covering a portion of a SubD face.
|
default |
|
default |
|
default |
ON_NurbsSurface* ON_SubDSurfaceNurbsFragment::GetQuadrantSurface | ( | unsigned int | quadrant_index, |
ON_NurbsSurface * | destination_surface | ||
) | const |
ON_NurbsSurface* ON_SubDSurfaceNurbsFragment::GetSurface | ( | ON_NurbsSurface * | destination_surface | ) | const |
bool ON_SubDSurfaceNurbsFragment::IsApproximate | ( | ) | const |
Returns: One or more of the bispans approximate the SubD surface.
bool ON_SubDSurfaceNurbsFragment::IsEmpty | ( | ) | const |
True if there are no set bispans.
unsigned int ON_SubDSurfaceNurbsFragment::MaximumBispanCount | ( | ) | const |
Returns: 0: unset NURBS fragment 1: This NURBS fragment uses a single bicubic span to model the region identified by m_face_region. 4: This NURBS fragment uses 4 bicubic spans to model the 4 quadrants of the region identified by m_face_region.
|
default |
unsigned int ON_SubDSurfaceNurbsFragment::SetBispanCount | ( | ) | const |
Returns: 0 to 4 indicating the number of bicubic spans that are set in this NURBS fragment. Remarks: If 0 < SetBispanCount() == MaximumBispanCount(), then the entire region identified by m_face_region is modeled by this NURBS fragment.
If 0 < SetBispanCount() < MaximumBispanCount(), then that many quadrants of the region identified by m_face_region are modeled by this set bispans in this NURBS fragment.
unsigned int ON_SubDSurfaceNurbsFragment::UnsetBispanCount | ( | ) | const |
Returns: 0 to 4 indicating the number of unset bicubic spans in "this".
|
static |
Every field of ON_SubDSurfaceNurbsFragment::Empty is zero.
ON_SubDSurfaceNurbsFragment::BispanAccuracy ON_SubDSurfaceNurbsFragment::m_bispan_type[4] = {} |
m_patch_type[] reports what type of patch is returned in m_patch_cv[] m_patch_type[0] = the state for the uniform bi-cubic patch: CV[i][j] = m_patch_cv[i][j] (0 <= i <= 3, 0 <= j <= 3) knot[0] = {-2,-1,0,1,2,3} knot[1] = {-2,-1,0,1,2,3} m_patch_type[1] = the state for the uniform bi-cubic patch: CV[i][j] = m_patch_cv[i+1][j] (0 <= i <= 3, 0 <= j <= 3) knot[0] = {-1,0,1,2,3,4} knot[1] = {-2,-1,0,1,2,3} m_patch_type[2] = the state for the uniform bi-cubic patch: CV[i][j] = m_patch_cv[i+1][j+1] (0 <= i <= 3, 0 <= j <= 3) knot[0] = {-1,0,1,2,3,4} knot[1] = {-1,0,1,2,3,4} m_patch_type[3] = the state for the uniform bi-cubic patch: CV[i][j] = m_patch_cv[i][j+1] (0 <= i <= 3, 0 <= j <= 3) knot[0] = {-2,-1,0,1,2,3} knot[1] = {-1,0,1,2,3,4}
Single bicubic bezier covers the region: m_patch_type[] = {Bicubic or ApproximateBicubic, Ignore, Ignore, Ignore} Bicubic quadrants Each m_patch_type[] element is one of BicubicQuadrant, ApproximateBicubicQuadrant, or None.
ON_SubDFaceRegion ON_SubDSurfaceNurbsFragment::m_face_region |
m_face_region identifies what part of the SubD is represented by this patch
double ON_SubDSurfaceNurbsFragment::m_patch_cv[5][5][3] |
knot vector is uniform and not clamped. For example {-2,-1,0,1,2,3,4}.
ON_SubDSurfaceNurbsFragment::Type ON_SubDSurfaceNurbsFragment::m_type = ON_SubDSurfaceNurbsFragment::Type::Unset |
|
static |
Every m_patch_cv[][][] value is ON_DBL_QNAN. Every other field of ON_SubDSurfaceNurbsFragment::Unset is zero.
|
static |
Every m_patch_cv[][][] value is ON_UNSET_VALUE. Every other field of ON_SubDSurfaceNurbsFragment::Unset is zero.