3.4.0
tigl::CTiglInterpolatePointsWithKinks Class Reference

This algorithm allows to interpolate a list of points. More...

#include <CTiglInterpolatePointsWithKinks.h>

Data Structures

struct  Result
 

Public Types

enum  Algo { Algo::InterpolateBasedOnParameters, Algo::InterpolateFirstThenReparametrize }
 

Public Member Functions

TIGL_EXPORT CTiglInterpolatePointsWithKinks (const Handle(TColgp_HArray1OfPnt) &points, const std::vector< unsigned int > &kinkIndices, const ParamMap &parameters, double alpha=0.5, unsigned int maxDegree=3, Algo algo=Algo::InterpolateBasedOnParameters, const double tolerance=1e-8)
 
TIGL_EXPORT Handle (Geom_BSplineCurve) Curve() const
 
TIGL_EXPORT std::vector< double > Parameters () const
 

Private Member Functions

void ComputeResult (Result &result) const
 
const Handle (TColgp_HArray1OfPnt) &m_pnts
 

Private Attributes

Algo m_algo
 
double m_alpha
 
std::vector< unsigned int > m_kinks
 
unsigned int m_maxDegree
 
ParamMap m_params
 
Cache< Result, CTiglInterpolatePointsWithKinksm_result
 
const double m_tolerance
 

Detailed Description

This algorithm allows to interpolate a list of points.

Compared to CTiglPointsToBSplineInterpolation, this algorithm allows to define kinks for points. Also, the interpolation parameter can be set for in a map.

Member Enumeration Documentation

◆ Algo

Enumerator
InterpolateBasedOnParameters 

generates an interpolating curve that matches the parameter map directly. The geometry of the curve is directly influenced by the parameter map

InterpolateFirstThenReparametrize 

interpolates first and then reparametrizes to match the parameter map. The geometry of the curve is independent of the parameter map

Constructor & Destructor Documentation

◆ CTiglInterpolatePointsWithKinks()

TIGL_EXPORT tigl::CTiglInterpolatePointsWithKinks::CTiglInterpolatePointsWithKinks ( const Handle(TColgp_HArray1OfPnt) &  points,
const std::vector< unsigned int > &  kinkIndices,
const ParamMap parameters,
double  alpha = 0.5,
unsigned int  maxDegree = 3,
Algo  algo = Algo::InterpolateBasedOnParameters,
const double  tolerance = 1e-8 
)

Member Function Documentation

◆ ComputeResult()

void tigl::CTiglInterpolatePointsWithKinks::ComputeResult ( Result result) const
private

◆ Handle() [1/2]

TIGL_EXPORT tigl::CTiglInterpolatePointsWithKinks::Handle ( Geom_BSplineCurve  ) const

◆ Handle() [2/2]

const tigl::CTiglInterpolatePointsWithKinks::Handle ( TColgp_HArray1OfPnt  ) &
private

◆ Parameters()

TIGL_EXPORT std::vector<double> tigl::CTiglInterpolatePointsWithKinks::Parameters ( ) const

Field Documentation

◆ m_algo

Algo tigl::CTiglInterpolatePointsWithKinks::m_algo
private

◆ m_alpha

double tigl::CTiglInterpolatePointsWithKinks::m_alpha
private

◆ m_kinks

std::vector<unsigned int> tigl::CTiglInterpolatePointsWithKinks::m_kinks
private

◆ m_maxDegree

unsigned int tigl::CTiglInterpolatePointsWithKinks::m_maxDegree
private

◆ m_params

ParamMap tigl::CTiglInterpolatePointsWithKinks::m_params
private

◆ m_result

Cache<Result, CTiglInterpolatePointsWithKinks> tigl::CTiglInterpolatePointsWithKinks::m_result
private

◆ m_tolerance

const double tigl::CTiglInterpolatePointsWithKinks::m_tolerance
private

The documentation for this class was generated from the following file: