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

#include <opennurbs_subd.h>

Public Member Functions

bool IsNan () const
 
bool IsSet (bool bUndefinedNormalIsPossible) const
 
bool IsUnset () const
 
bool IsZero () const
 
const ON_3dVector Normal () const
 Get a limit surface normal. More...
 
const ON_3dPoint Point () const
 Get a limit surface point. More...
 
const ON_3dVector Tangent (int tangent_index) const
 Get a limit surface tangent vector. More...
 
bool Transform (const ON_Xform &xform)
 
bool Transform (const ON_Xform &xform, const ON_Xform &xformNormals)
 

Public Attributes

double m_limitN [3]
 unit normal (same direction as m_limitT1 x m_limitT2) More...
 
double m_limitP [3]
 limit surface point, tangents and normal More...
 
double m_limitT1 [3]
 first unit tangent More...
 
double m_limitT2 [3]
 second unit tangent More...
 
const class ON_SubDSectorSurfacePointm_next_sector_limit_point
 nullptr for vertices with one sector More...
 
const class ON_SubDFacem_sector_face
 nullptr for vertices with one sector More...
 

Static Public Attributes

static const ON_SubDSectorSurfacePoint Nan
 all doubles are ON_DBL_QNAN, all pointer are nullptr More...
 
static const ON_SubDSectorSurfacePoint Unset
 all doubles are ON_UNSET_VALUE, all pointer are nullptr More...
 
static const ON_SubDSectorSurfacePoint Zero
 all doubles are 0.0, all pointer are nullptr More...
 

Member Function Documentation

◆ IsNan()

bool ON_SubDSectorSurfacePoint::IsNan ( ) const

Returns: true if m_limitP[0] is a nan (like ON_DBL_QNAN). false otherwise.

◆ IsSet()

bool ON_SubDSectorSurfacePoint::IsSet ( bool  bUndefinedNormalIsPossible) const

Returns: true if all coordinates are valid doubles and the tangents and normal have at least one nonzero coordinate. false otherwise.

◆ IsUnset()

bool ON_SubDSectorSurfacePoint::IsUnset ( ) const

Returns: true if m_limitP[0] is ON_UNSET_VALUE. false otherwise.

◆ IsZero()

bool ON_SubDSectorSurfacePoint::IsZero ( ) const

Returns: true if all coordinates are zero. false otherwise.

◆ Normal()

const ON_3dVector ON_SubDSectorSurfacePoint::Normal ( ) const

Get a limit surface normal.

Returns
Limit surface normal vector.

◆ Point()

const ON_3dPoint ON_SubDSectorSurfacePoint::Point ( ) const

Get a limit surface point.

Returns
Limit surface point.

◆ Tangent()

const ON_3dVector ON_SubDSectorSurfacePoint::Tangent ( int  tangent_index) const

Get a limit surface tangent vector.

Parameters
tangent_index0 or 1
Returns
Limit surface tangent vector.

◆ Transform() [1/2]

bool ON_SubDSectorSurfacePoint::Transform ( const ON_Xform xform)

◆ Transform() [2/2]

bool ON_SubDSectorSurfacePoint::Transform ( const ON_Xform xform,
const ON_Xform xformNormals 
)

Member Data Documentation

◆ m_limitN

double ON_SubDSectorSurfacePoint::m_limitN[3]

unit normal (same direction as m_limitT1 x m_limitT2)

◆ m_limitP

double ON_SubDSectorSurfacePoint::m_limitP[3]

limit surface point, tangents and normal

point

◆ m_limitT1

double ON_SubDSectorSurfacePoint::m_limitT1[3]

first unit tangent

◆ m_limitT2

double ON_SubDSectorSurfacePoint::m_limitT2[3]

second unit tangent

◆ m_next_sector_limit_point

const class ON_SubDSectorSurfacePoint* ON_SubDSectorSurfacePoint::m_next_sector_limit_point

nullptr for vertices with one sector

When an ON_SubDVertex has a single sector, (ON_SubDVertex.IsSingleSectorVertex() is true), these pointers are both null. When an ON_SubDVertex has a multiple sectors, m_sector_face is the "first" face in the sector and m_next_sector_limit_point is used to create a linked list. (The "first" face in a sector is the one ON_SubDSectorIterator.IncrementToCrease(-1) returns.)

◆ m_sector_face

const class ON_SubDFace* ON_SubDSectorSurfacePoint::m_sector_face

nullptr for vertices with one sector

◆ Nan

const ON_SubDSectorSurfacePoint ON_SubDSectorSurfacePoint::Nan
static

all doubles are ON_DBL_QNAN, all pointer are nullptr

◆ Unset

const ON_SubDSectorSurfacePoint ON_SubDSectorSurfacePoint::Unset
static

all doubles are ON_UNSET_VALUE, all pointer are nullptr

For performance reasons, the default the data members are not initialized by the default constructor Use = ON_SubDSectorSurfacePoint::Unset when initialization is required

◆ Zero

const ON_SubDSectorSurfacePoint ON_SubDSectorSurfacePoint::Zero
static

all doubles are 0.0, all pointer are nullptr