3.4.0
tigl::CTiglInterpolateCurveNetwork Class Reference

Curve network interpolation with gordon surfaces. More...

#include <CTiglInterpolateCurveNetwork.h>

Public Member Functions

TIGL_EXPORT CTiglInterpolateCurveNetwork (const std::vector< Handle(Geom_Curve)> &profiles, const std::vector< Handle(Geom_Curve)> &guides, double spatialTolerance)
 CTiglInterpolateCurveNetwork interpolated a curve network of guide curves and profiles curves. More...
 
TIGL_EXPORT operator Handle() Geom_BSplineSurface ()
 
TIGL_EXPORT Handle (Geom_BSplineSurface) Surface()
 Returns the interpolation surface. More...
 
TIGL_EXPORT Handle (Geom_BSplineSurface) SurfaceProfiles()
 Returns the surface that interpolates the profiles. More...
 
TIGL_EXPORT Handle (Geom_BSplineSurface) SurfaceGuides()
 Returns the surface that interpolates the guides. More...
 
TIGL_EXPORT Handle (Geom_BSplineSurface) SurfaceIntersections()
 Returns the Surface that interpolations the intersection point of both surfaces. More...
 
TIGL_EXPORT std::vector< double > ParametersGuides ()
 Returns the u parameters of the final surface, that correspond to the guide curve locations. More...
 
TIGL_EXPORT std::vector< double > ParametersProfiles ()
 Returns the v parameters of the final surface, that correspond to the profile curve locations. More...
 

Private Types

typedef std::vector< Handle(Geom_BSplineCurve)> CurveArray
 

Private Member Functions

void ComputeIntersections (math_Matrix &intersection_params_u, math_Matrix &intersection_params_v) const
 
void EliminateInaccuraciesNetworkIntersections (const std::vector< Handle(Geom_BSplineCurve)> &sorted_splines_u, const std::vector< Handle(Geom_BSplineCurve)> &sorted_splines_v, math_Matrix &intersection_params_u, math_Matrix &intersection_params_v) const
 
 Handle (Geom_BSplineSurface) m_skinningSurfProfiles
 
void MakeCurvesCompatible ()
 
void Perform ()
 
void SortCurves (math_Matrix &intersection_params_u, math_Matrix &intersection_params_v)
 

Private Attributes

 m_gordonSurf
 
CurveArray m_guides
 
bool m_hasPerformed
 
std::vector< double > m_intersectionParamsU
 
std::vector< double > m_intersectionParamsV
 
CurveArray m_profiles
 
 m_skinningSurfGuides
 
double m_spatialTol
 
 m_tensorProdSurf
 

Detailed Description

Curve network interpolation with gordon surfaces.

The algorithm uses the gordon method, to create the interpolation surface. To do this, it does the following:

  • Compute intersection points between profiles and guides
  • Sort the profiles and guides
  • Reparametrize profiles and curves to make the network compatible (in most cases necessary)
  • Compute the gordon surface

Member Typedef Documentation

◆ CurveArray

typedef std::vector<Handle(Geom_BSplineCurve)> tigl::CTiglInterpolateCurveNetwork::CurveArray
private

Constructor & Destructor Documentation

◆ CTiglInterpolateCurveNetwork()

TIGL_EXPORT tigl::CTiglInterpolateCurveNetwork::CTiglInterpolateCurveNetwork ( const std::vector< Handle(Geom_Curve)> &  profiles,
const std::vector< Handle(Geom_Curve)> &  guides,
double  spatialTolerance 
)

CTiglInterpolateCurveNetwork interpolated a curve network of guide curves and profiles curves.

Parameters
profilesThe profiles to be interpolated
guidesThe guides curves to be interpolated
spatialToleranceMaximum allowed distance between each guide and profile (in theory they must intersect)

Member Function Documentation

◆ ComputeIntersections()

void tigl::CTiglInterpolateCurveNetwork::ComputeIntersections ( math_Matrix &  intersection_params_u,
math_Matrix &  intersection_params_v 
) const
private

◆ EliminateInaccuraciesNetworkIntersections()

void tigl::CTiglInterpolateCurveNetwork::EliminateInaccuraciesNetworkIntersections ( const std::vector< Handle(Geom_BSplineCurve)> &  sorted_splines_u,
const std::vector< Handle(Geom_BSplineCurve)> &  sorted_splines_v,
math_Matrix &  intersection_params_u,
math_Matrix &  intersection_params_v 
) const
private

◆ Geom_BSplineSurface()

TIGL_EXPORT operator Handle() tigl::CTiglInterpolateCurveNetwork::Geom_BSplineSurface ( )

◆ Handle() [1/5]

TIGL_EXPORT tigl::CTiglInterpolateCurveNetwork::Handle ( Geom_BSplineSurface  )

Returns the interpolation surface.

◆ Handle() [2/5]

TIGL_EXPORT tigl::CTiglInterpolateCurveNetwork::Handle ( Geom_BSplineSurface  )

Returns the surface that interpolates the profiles.

◆ Handle() [3/5]

TIGL_EXPORT tigl::CTiglInterpolateCurveNetwork::Handle ( Geom_BSplineSurface  )

Returns the surface that interpolates the guides.

◆ Handle() [4/5]

TIGL_EXPORT tigl::CTiglInterpolateCurveNetwork::Handle ( Geom_BSplineSurface  )

Returns the Surface that interpolations the intersection point of both surfaces.

◆ Handle() [5/5]

tigl::CTiglInterpolateCurveNetwork::Handle ( Geom_BSplineSurface  )
private

◆ MakeCurvesCompatible()

void tigl::CTiglInterpolateCurveNetwork::MakeCurvesCompatible ( )
private

◆ ParametersGuides()

TIGL_EXPORT std::vector<double> tigl::CTiglInterpolateCurveNetwork::ParametersGuides ( )

Returns the u parameters of the final surface, that correspond to the guide curve locations.

◆ ParametersProfiles()

TIGL_EXPORT std::vector<double> tigl::CTiglInterpolateCurveNetwork::ParametersProfiles ( )

Returns the v parameters of the final surface, that correspond to the profile curve locations.

◆ Perform()

void tigl::CTiglInterpolateCurveNetwork::Perform ( )
private

◆ SortCurves()

void tigl::CTiglInterpolateCurveNetwork::SortCurves ( math_Matrix &  intersection_params_u,
math_Matrix &  intersection_params_v 
)
private

Field Documentation

◆ m_gordonSurf

tigl::CTiglInterpolateCurveNetwork::m_gordonSurf
private

◆ m_guides

CurveArray tigl::CTiglInterpolateCurveNetwork::m_guides
private

◆ m_hasPerformed

bool tigl::CTiglInterpolateCurveNetwork::m_hasPerformed
private

◆ m_intersectionParamsU

std::vector<double> tigl::CTiglInterpolateCurveNetwork::m_intersectionParamsU
private

◆ m_intersectionParamsV

std::vector<double> tigl::CTiglInterpolateCurveNetwork::m_intersectionParamsV
private

◆ m_profiles

CurveArray tigl::CTiglInterpolateCurveNetwork::m_profiles
private

◆ m_skinningSurfGuides

tigl::CTiglInterpolateCurveNetwork::m_skinningSurfGuides
private

◆ m_spatialTol

double tigl::CTiglInterpolateCurveNetwork::m_spatialTol
private

◆ m_tensorProdSurf

tigl::CTiglInterpolateCurveNetwork::m_tensorProdSurf
private

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