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

#include <opennurbs_plus_subd.h>

Public Types

enum  MaximumCounts : unsigned int { MaximumCounts::MaximumRecommendedInterpolatedVertexCount = 1000U }
 Stores maximum count values for the solver to work in reasonnable time. More...
 

Public Member Functions

 ON_SubDSurfaceInterpolator ()=default
 
 ON_SubDSurfaceInterpolator (const ON_SubDSurfaceInterpolator &)=default
 
 ~ON_SubDSurfaceInterpolator ()=default
 
void Clear ()
 
const ON_UUID ContextId () const
 
unsigned CreateFromMarkedVertices (ON_SubD &subd, bool bInterplatedVertexRuntimeMark)
 
unsigned CreateFromSelectedVertices (ON_SubD &subd)
 
unsigned CreateFromSubD (ON_SubD &subd)
 
unsigned CreateFromVertexList (const ON_SubDComponentList &interpolated_vertices)
 
unsigned CreateFromVertexList (ON_SubD &subd, const ON_SimpleArray< const ON_SubDVertex * > &interpolated_vertices)
 
unsigned CreateFromVertexList (ON_SubD &subd, const ON_SimpleArray< ON_COMPONENT_INDEX > &interpolated_vertices)
 
unsigned CreateFromVertexList (ON_SubD &subd, const ON_SimpleArray< ON_SubDComponentPtr > &interpolated_vertices)
 
unsigned CreateFromVertexList (ON_SubD &subd, const ON_SimpleArray< ON_SubDVertexPtr > &interpolated_vertices)
 
unsigned CreateFromVertexList (ON_SubD &subd, const ON_SimpleArray< unsigned > &interpolated_vertices)
 
unsigned FixedVertexCount () const
 
unsigned InterpolatedVertexCount () const
 
unsigned InterpolatedVertexIndex (const ON_SubDVertex *vertex) const
 
unsigned InterpolatedVertexIndex (unsigned vertex_id) const
 
bool IsInterpolatedVertex (const ON_SubDVertex *vertex) const
 
bool IsInterpolatedVertex (unsigned vertex_id) const
 
ON_SubDSurfaceInterpolatoroperator= (const ON_SubDSurfaceInterpolator &)=default
 
void SetContextId (ON_UUID)
 
bool Solve (const ON_3dPoint *surface_points)
 
bool Solve (const ON_SimpleArray< ON_3dPoint > &surface_points)
 
void Transform (const ON_Xform &xform)
 
ON_SubDComponentListUniqueVertexList ()
 
const ON_SubDComponentListVertexList () const
 

Member Enumeration Documentation

◆ MaximumCounts

enum ON_SubDSurfaceInterpolator::MaximumCounts : unsigned int
strong

Stores maximum count values for the solver to work in reasonnable time.

Enumerator
MaximumRecommendedInterpolatedVertexCount 

Interpolation requires building a solver. If the number of interplolated vertices is greater than MaximumInterpolatedVertexCount, the solver construction time can be too long for some users' comfort. Given sufficient time, memory, and CPU resources, the code will work with any value

Constructor & Destructor Documentation

◆ ON_SubDSurfaceInterpolator() [1/2]

ON_SubDSurfaceInterpolator::ON_SubDSurfaceInterpolator ( )
default

◆ ~ON_SubDSurfaceInterpolator()

ON_SubDSurfaceInterpolator::~ON_SubDSurfaceInterpolator ( )
default

◆ ON_SubDSurfaceInterpolator() [2/2]

ON_SubDSurfaceInterpolator::ON_SubDSurfaceInterpolator ( const ON_SubDSurfaceInterpolator )
default

Member Function Documentation

◆ Clear()

void ON_SubDSurfaceInterpolator::Clear ( )

Description: Destroys the information need to solve the interpolation.

◆ ContextId()

const ON_UUID ON_SubDSurfaceInterpolator::ContextId ( ) const

Returns: The context assigned id. This id is provided for applications using ON_SubDSurfaceInterpolator. It is not inspected or used in any part of the interpolation setup or calculations. Remarks: In Rhino, when an interpolator is being used to modify a CRhinoSubDObject, this id is often the Rhino object id.

◆ CreateFromMarkedVertices()

unsigned ON_SubDSurfaceInterpolator::CreateFromMarkedVertices ( ON_SubD subd,
bool  bInterplatedVertexRuntimeMark 
)

Parameters: bFreeVertexMark - [in] value of ON_SubDVertex.Mark() that free vertices have.

◆ CreateFromSelectedVertices()

unsigned ON_SubDSurfaceInterpolator::CreateFromSelectedVertices ( ON_SubD subd)

◆ CreateFromSubD()

unsigned ON_SubDSurfaceInterpolator::CreateFromSubD ( ON_SubD subd)

Parameters: subd - [in] Every vertex in subd will be a free vertex in the linear system.

◆ CreateFromVertexList() [1/6]

unsigned ON_SubDSurfaceInterpolator::CreateFromVertexList ( const ON_SubDComponentList interpolated_vertices)

◆ CreateFromVertexList() [2/6]

unsigned ON_SubDSurfaceInterpolator::CreateFromVertexList ( ON_SubD subd,
const ON_SimpleArray< const ON_SubDVertex * > &  interpolated_vertices 
)

◆ CreateFromVertexList() [3/6]

unsigned ON_SubDSurfaceInterpolator::CreateFromVertexList ( ON_SubD subd,
const ON_SimpleArray< ON_COMPONENT_INDEX > &  interpolated_vertices 
)

◆ CreateFromVertexList() [4/6]

unsigned ON_SubDSurfaceInterpolator::CreateFromVertexList ( ON_SubD subd,
const ON_SimpleArray< ON_SubDComponentPtr > &  interpolated_vertices 
)

◆ CreateFromVertexList() [5/6]

unsigned ON_SubDSurfaceInterpolator::CreateFromVertexList ( ON_SubD subd,
const ON_SimpleArray< ON_SubDVertexPtr > &  interpolated_vertices 
)

◆ CreateFromVertexList() [6/6]

unsigned ON_SubDSurfaceInterpolator::CreateFromVertexList ( ON_SubD subd,
const ON_SimpleArray< unsigned > &  interpolated_vertices 
)

◆ FixedVertexCount()

unsigned ON_SubDSurfaceInterpolator::FixedVertexCount ( ) const

Returns: Number of vertices with fixed control net points.

◆ InterpolatedVertexCount()

unsigned ON_SubDSurfaceInterpolator::InterpolatedVertexCount ( ) const

Returns: Number of vertices with interpolated surface points.

◆ InterpolatedVertexIndex() [1/2]

unsigned ON_SubDSurfaceInterpolator::InterpolatedVertexIndex ( const ON_SubDVertex vertex) const

Returns: If vertex is an interpolated vertex, then InterpolatedVertex() is the index of the vertex in the array returned by VertexList() and UniqueVertexList(). Otherwise ON_UNSET_UINT_INDEX is returned.

◆ InterpolatedVertexIndex() [2/2]

unsigned ON_SubDSurfaceInterpolator::InterpolatedVertexIndex ( unsigned  vertex_id) const

Returns: If vertex is an interpolated vertex, then InterpolatedVertex() is the index of the vertex in the array returned by VertexList() and UniqueVertexList(). Otherwise ON_UNSET_UINT_INDEX is returned.

◆ IsInterpolatedVertex() [1/2]

bool ON_SubDSurfaceInterpolator::IsInterpolatedVertex ( const ON_SubDVertex vertex) const

Returns: True if the vertex surface point is being interpolated.

◆ IsInterpolatedVertex() [2/2]

bool ON_SubDSurfaceInterpolator::IsInterpolatedVertex ( unsigned  vertex_id) const

Returns: True if the vertex surface point is being interpolated.

◆ operator=()

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

◆ SetContextId()

void ON_SubDSurfaceInterpolator::SetContextId ( ON_UUID  )

Descrription: Set context assigned id. This id is provided for applications using ON_SubDSurfaceInterpolator. It is not inspected or used in any part of the interpolation setup or calculations.

◆ Solve() [1/2]

bool ON_SubDSurfaceInterpolator::Solve ( const ON_3dPoint surface_points)

Parameters: surface_points [in] surface_points[] is an array of InterpolatedVertexCount() points and surface_points[i] is the desired surface point location for the vertex VertexList()[i].Vertex(). Updates the subd referenced by VertexList() so the corresponding surface points are surface_point[]

◆ Solve() [2/2]

bool ON_SubDSurfaceInterpolator::Solve ( const ON_SimpleArray< ON_3dPoint > &  surface_points)

Parameters: surface_points[in] surface_points[] is an array of InterpolatedVertexCount() points and surface_points[i] is the desired surface point location for the vertex VertexList()[i].Vertex(). Updates the subd referenced by VertexList() so the corresponding surface points are surface_point[]

◆ Transform()

void ON_SubDSurfaceInterpolator::Transform ( const ON_Xform xform)

◆ UniqueVertexList()

ON_SubDComponentList& ON_SubDSurfaceInterpolator::UniqueVertexList ( )

Returns: List of vertices the with interpolated surface points. Vertices that are not in this vertex list have fixed control net points. This list is unique to this ON_SubDSurfaceInterpolator instance.

◆ VertexList()

const ON_SubDComponentList& ON_SubDSurfaceInterpolator::VertexList ( ) const

Returns: List of vertices the with interpolated surface points. Vertices that are not in this vertex list have fixed control net points. This list might be shared with other instances of ON_SubDSurfaceInterpolator.