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

#include <opennurbs_subd.h>

Public Member Functions

 ON_SubDVertexSurfacePointCoefficient ()=default
 
 ON_SubDVertexSurfacePointCoefficient (const ON_SubDVertexSurfacePointCoefficient &)=default
 
 ~ON_SubDVertexSurfacePointCoefficient ()=default
 
double Coefficient () const
 
ON_SubDVertexSurfacePointCoefficientoperator= (const ON_SubDVertexSurfacePointCoefficient &)=default
 
unsigned int RingVertexId () const
 
unsigned int SurfacePointVertexId () const
 

Static Public Member Functions

static int CompareRingAndSurfacePointVertexId (const ON_SubDVertexSurfacePointCoefficient *lhs, const ON_SubDVertexSurfacePointCoefficient *rhs)
 
static int CompareRingVertexId (const ON_SubDVertexSurfacePointCoefficient *lhs, const ON_SubDVertexSurfacePointCoefficient *rhs)
 
static int CompareSurfacePointAndRingVertexId (const ON_SubDVertexSurfacePointCoefficient *lhs, const ON_SubDVertexSurfacePointCoefficient *rhs)
 
static int CompareSurfacePointVertexId (const ON_SubDVertexSurfacePointCoefficient *lhs, const ON_SubDVertexSurfacePointCoefficient *rhs)
 
static const ON_SubDVertexSurfacePointCoefficient Create (const ON_SubDVertex *limit_point_vertex, const ON_SubDVertex *ring_vertex, double x)
 
static bool GetSurfacePointLinearSystemMatrix (unsigned int vertex_count, const ON_SimpleArray< ON_SubDVertexSurfacePointCoefficient > &coefficients, ON_Matrix &m, ON_SimpleArray< const ON_SubDVertex * > &v)
 
static bool TestCoefficients (const ON_Matrix &m, const ON_SimpleArray< const ON_SubDVertex * > &v, double deviation_tolerance, double &maximum_deviation, unsigned int &failed_coefficient_index, ON_TextLog &text_log)
 
static bool TestCoefficients (const ON_SimpleArray< ON_SubDVertexSurfacePointCoefficient > &coefficients, double deviation_tolerance, double &maximum_deviation, unsigned int &failed_coefficient_index, ON_TextLog &text_log)
 

Public Attributes

double m_c = 0.0
 
const ON_SubDVertexm_limit_point_vertex = nullptr
 
const ON_SubDVertexm_ring_vertex = nullptr
 

Static Public Attributes

static const ON_SubDVertexSurfacePointCoefficient Nan
 ON_SubDVertexSurfacePointCoefficient::Nan.m_c = ON_DBL_QNAN. More...
 
static const ON_SubDVertexSurfacePointCoefficient Unset
 ON_SubDVertexSurfacePointCoefficient::Unset.m_c = ON_UNSET_VALUE. More...
 
static const ON_SubDVertexSurfacePointCoefficient Zero
 ON_SubDVertexSurfacePointCoefficient::Zero.m_c = 0.0. More...
 

Constructor & Destructor Documentation

◆ ON_SubDVertexSurfacePointCoefficient() [1/2]

ON_SubDVertexSurfacePointCoefficient::ON_SubDVertexSurfacePointCoefficient ( )
default

◆ ~ON_SubDVertexSurfacePointCoefficient()

ON_SubDVertexSurfacePointCoefficient::~ON_SubDVertexSurfacePointCoefficient ( )
default

◆ ON_SubDVertexSurfacePointCoefficient() [2/2]

ON_SubDVertexSurfacePointCoefficient::ON_SubDVertexSurfacePointCoefficient ( const ON_SubDVertexSurfacePointCoefficient )
default

Member Function Documentation

◆ Coefficient()

double ON_SubDVertexSurfacePointCoefficient::Coefficient ( ) const

◆ CompareRingAndSurfacePointVertexId()

static int ON_SubDVertexSurfacePointCoefficient::CompareRingAndSurfacePointVertexId ( const ON_SubDVertexSurfacePointCoefficient lhs,
const ON_SubDVertexSurfacePointCoefficient rhs 
)
static

◆ CompareRingVertexId()

static int ON_SubDVertexSurfacePointCoefficient::CompareRingVertexId ( const ON_SubDVertexSurfacePointCoefficient lhs,
const ON_SubDVertexSurfacePointCoefficient rhs 
)
static

◆ CompareSurfacePointAndRingVertexId()

static int ON_SubDVertexSurfacePointCoefficient::CompareSurfacePointAndRingVertexId ( const ON_SubDVertexSurfacePointCoefficient lhs,
const ON_SubDVertexSurfacePointCoefficient rhs 
)
static

◆ CompareSurfacePointVertexId()

static int ON_SubDVertexSurfacePointCoefficient::CompareSurfacePointVertexId ( const ON_SubDVertexSurfacePointCoefficient lhs,
const ON_SubDVertexSurfacePointCoefficient rhs 
)
static

◆ Create()

static const ON_SubDVertexSurfacePointCoefficient ON_SubDVertexSurfacePointCoefficient::Create ( const ON_SubDVertex limit_point_vertex,
const ON_SubDVertex ring_vertex,
double  x 
)
static

◆ GetSurfacePointLinearSystemMatrix()

static bool ON_SubDVertexSurfacePointCoefficient::GetSurfacePointLinearSystemMatrix ( unsigned int  vertex_count,
const ON_SimpleArray< ON_SubDVertexSurfacePointCoefficient > &  coefficients,
ON_Matrix m,
ON_SimpleArray< const ON_SubDVertex * > &  v 
)
static

Description: Get the system of linear equations that calculate vertex limit point locations from the corresponding ring vertices's control net points. This information is useful when solving location interpolation problems. Parameters: m - [out] v - [out] The linear system of equations that calculates vertex limit points from vertex control net points is returned in matrix form: v[i]->SurfacePoint = sum(0 <= j < c) m[i][j]*v[j]->ControlNetPoint(). Returns: True if m and v were returned.

◆ operator=()

ON_SubDVertexSurfacePointCoefficient& ON_SubDVertexSurfacePointCoefficient::operator= ( const ON_SubDVertexSurfacePointCoefficient )
default

◆ RingVertexId()

unsigned int ON_SubDVertexSurfacePointCoefficient::RingVertexId ( ) const

◆ SurfacePointVertexId()

unsigned int ON_SubDVertexSurfacePointCoefficient::SurfacePointVertexId ( ) const

◆ TestCoefficients() [1/2]

static bool ON_SubDVertexSurfacePointCoefficient::TestCoefficients ( const ON_Matrix m,
const ON_SimpleArray< const ON_SubDVertex * > &  v,
double  deviation_tolerance,
double &  maximum_deviation,
unsigned int &  failed_coefficient_index,
ON_TextLog text_log 
)
static

◆ TestCoefficients() [2/2]

static bool ON_SubDVertexSurfacePointCoefficient::TestCoefficients ( const ON_SimpleArray< ON_SubDVertexSurfacePointCoefficient > &  coefficients,
double  deviation_tolerance,
double &  maximum_deviation,
unsigned int &  failed_coefficient_index,
ON_TextLog text_log 
)
static

Description: Test the coefficients by using them to calculate the location of each limit surface point and returning the maximum deviation. Returns: ON_DBL_QNAN: Invalid information in coefficients or invalid vertices referenced. >= 0: Maximum deviation between a location returned by ON_SubDVertex::GetSurfacePoint() and the location calculated from the coefficients.

Member Data Documentation

◆ m_c

double ON_SubDVertexSurfacePointCoefficient::m_c = 0.0

The limit point of m_limit_point_vertex = sum of m_c*m_ring_vertex->ControlNetPoint() for every point in the ring of m_limit_point_vertex, including m_limit_point_vertex.

◆ m_limit_point_vertex

const ON_SubDVertex* ON_SubDVertexSurfacePointCoefficient::m_limit_point_vertex = nullptr

◆ m_ring_vertex

const ON_SubDVertex* ON_SubDVertexSurfacePointCoefficient::m_ring_vertex = nullptr

◆ Nan

const ON_SubDVertexSurfacePointCoefficient ON_SubDVertexSurfacePointCoefficient::Nan
static

ON_SubDVertexSurfacePointCoefficient::Nan.m_c = ON_DBL_QNAN.

◆ Unset

const ON_SubDVertexSurfacePointCoefficient ON_SubDVertexSurfacePointCoefficient::Unset
static

ON_SubDVertexSurfacePointCoefficient::Unset.m_c = ON_UNSET_VALUE.

◆ Zero

const ON_SubDVertexSurfacePointCoefficient ON_SubDVertexSurfacePointCoefficient::Zero
static

ON_SubDVertexSurfacePointCoefficient::Zero.m_c = 0.0.