3.5.0
Loading...
Searching...
No Matches
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.
 
TIGL_EXPORT operator Handle_Geom_BSplineSurface ()
 
TIGL_EXPORT std::vector< double > ParametersGuides ()
 Returns the u parameters of the final surface, that correspond to the guide curve locations.
 
TIGL_EXPORT std::vector< double > ParametersProfiles ()
 Returns the v parameters of the final surface, that correspond to the profile curve locations.
 
TIGL_EXPORT Handle_Geom_BSplineSurface Surface ()
 Returns the interpolation surface.
 
TIGL_EXPORT Handle_Geom_BSplineSurface SurfaceGuides ()
 Returns the surface that interpolates the guides.
 
TIGL_EXPORT Handle_Geom_BSplineSurface SurfaceIntersections ()
 Returns the Surface that interpolations the intersection point of both surfaces.
 
TIGL_EXPORT Handle_Geom_BSplineSurface SurfaceProfiles ()
 Returns the surface that interpolates the profiles.
 

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
 
void MakeCurvesCompatible ()
 
void Perform ()
 
void SortCurves (math_Matrix &intersection_params_u, math_Matrix &intersection_params_v)
 

Private Attributes

Handle_Geom_BSplineSurface m_gordonSurf
 
CurveArray m_guides
 
bool m_hasPerformed
 
std::vector< double > m_intersectionParamsU
 
std::vector< double > m_intersectionParamsV
 
CurveArray m_profiles
 
Handle_Geom_BSplineSurface m_skinningSurfGuides
 
Handle_Geom_BSplineSurface m_skinningSurfProfiles
 
double m_spatialTol
 
Handle_Geom_BSplineSurface 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

◆ MakeCurvesCompatible()

void tigl::CTiglInterpolateCurveNetwork::MakeCurvesCompatible ( )
private

◆ operator Handle_Geom_BSplineSurface()

TIGL_EXPORT tigl::CTiglInterpolateCurveNetwork::operator Handle_Geom_BSplineSurface ( )

◆ 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

◆ Surface()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglInterpolateCurveNetwork::Surface ( )

Returns the interpolation surface.

◆ SurfaceGuides()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglInterpolateCurveNetwork::SurfaceGuides ( )

Returns the surface that interpolates the guides.

◆ SurfaceIntersections()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglInterpolateCurveNetwork::SurfaceIntersections ( )

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

◆ SurfaceProfiles()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglInterpolateCurveNetwork::SurfaceProfiles ( )

Returns the surface that interpolates the profiles.

Field Documentation

◆ m_gordonSurf

Handle_Geom_BSplineSurface 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

Handle_Geom_BSplineSurface tigl::CTiglInterpolateCurveNetwork::m_skinningSurfGuides
private

◆ m_skinningSurfProfiles

Handle_Geom_BSplineSurface tigl::CTiglInterpolateCurveNetwork::m_skinningSurfProfiles
private

◆ m_spatialTol

double tigl::CTiglInterpolateCurveNetwork::m_spatialTol
private

◆ m_tensorProdSurf

Handle_Geom_BSplineSurface tigl::CTiglInterpolateCurveNetwork::m_tensorProdSurf
private

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