3.4.0
tigl::CTiglGordonSurfaceBuilder Class Reference

This class is basically a helper class for the tigl::CTiglInterpolateCurveNetwork algorithm. More...

#include <CTiglGordonSurfaceBuilder.h>

Public Member Functions

 CTiglGordonSurfaceBuilder (const std::vector< Handle(Geom_BSplineCurve)> &profiles, const std::vector< Handle(Geom_BSplineCurve)> &guides, const std::vector< double > &intersectParamsOnProfiles, const std::vector< double > &intersectParamsOnGuides, double spatialTolerance)
 Builds a Gordon Surface of a given compatible network of B-splines All parameters must be in the right order and the B-spline network must be 'closed', i.e., B-splines mustn't stick out! More...
 
TIGL_EXPORT Handle (Geom_BSplineSurface) SurfaceGordon()
 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...
 

Private Types

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

Private Member Functions

void CheckCurveNetworkCompatibility (const std::vector< Handle(Geom_BSplineCurve) > &profiles, const std::vector< Handle(Geom_BSplineCurve) > &guides, const std::vector< double > &intersection_params_spline_u, const std::vector< double > &intersection_params_spline_v, double tol)
 
void CreateGordonSurface (const std::vector< Handle(Geom_BSplineCurve)> &profiles, const std::vector< Handle(Geom_BSplineCurve)> &guides, const std::vector< double > &intersection_params_spline_u, const std::vector< double > &intersection_params_spline_v)
 
 Handle (Geom_BSplineSurface) m_skinningSurfProfiles
 
void Perform ()
 

Private Attributes

 m_gordonSurf
 
CurveArray m_guides
 
bool m_hasPerformed
 
const std::vector< double > & m_intersection_params_spline_u
 
const std::vector< double > m_intersection_params_spline_v
 
CurveArray m_profiles
 
 m_skinningSurfGuides
 
 m_tensorProdSurf
 
double m_tol
 

Detailed Description

This class is basically a helper class for the tigl::CTiglInterpolateCurveNetwork algorithm.

It implements the basics gordon surface algorithm.

Since it requires a compatible curve network, it is not very useful on its own. For practical reasons, use tigl::CTiglInterpolateCurveNetwork.

Member Typedef Documentation

◆ CurveArray

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

Constructor & Destructor Documentation

◆ CTiglGordonSurfaceBuilder()

tigl::CTiglGordonSurfaceBuilder::CTiglGordonSurfaceBuilder ( const std::vector< Handle(Geom_BSplineCurve)> &  profiles,
const std::vector< Handle(Geom_BSplineCurve)> &  guides,
const std::vector< double > &  intersectParamsOnProfiles,
const std::vector< double > &  intersectParamsOnGuides,
double  spatialTolerance 
)

Builds a Gordon Surface of a given compatible network of B-splines All parameters must be in the right order and the B-spline network must be 'closed', i.e., B-splines mustn't stick out!

Parameters
profilesvector of B-splines in u-direction compatible means: intersection parameters with v-directional B-splines are equal
guidesvector of B-splines in v-direction, orthogonal to u-direction compatible means: intersection parameters with u-directional B-splines are equal (if not: reparametrize -> change B-spline knots) DON'T need to have common knot vector because skinning method is creating it when needed (for surface_v)
intersectParamsOnProfilesParameters on the profiles of the intersection with the guides (size = nGuides)
intersectParamsOnGuidesParameters on the guides of the intersection with the profiles (size = nProfiles)
spatialToleranceMaximum allowed distance between each guide and profile (in theory they must intersect)

Member Function Documentation

◆ CheckCurveNetworkCompatibility()

void tigl::CTiglGordonSurfaceBuilder::CheckCurveNetworkCompatibility ( const std::vector< Handle(Geom_BSplineCurve) > &  profiles,
const std::vector< Handle(Geom_BSplineCurve) > &  guides,
const std::vector< double > &  intersection_params_spline_u,
const std::vector< double > &  intersection_params_spline_v,
double  tol 
)
private

◆ CreateGordonSurface()

void tigl::CTiglGordonSurfaceBuilder::CreateGordonSurface ( const std::vector< Handle(Geom_BSplineCurve)> &  profiles,
const std::vector< Handle(Geom_BSplineCurve)> &  guides,
const std::vector< double > &  intersection_params_spline_u,
const std::vector< double > &  intersection_params_spline_v 
)
private

◆ Handle() [1/5]

TIGL_EXPORT tigl::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface  )

Returns the interpolation surface.

◆ Handle() [2/5]

TIGL_EXPORT tigl::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface  )

Returns the surface that interpolates the profiles.

◆ Handle() [3/5]

TIGL_EXPORT tigl::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface  )

Returns the surface that interpolates the guides.

◆ Handle() [4/5]

TIGL_EXPORT tigl::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface  )

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

◆ Handle() [5/5]

tigl::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface  )
private

◆ Perform()

void tigl::CTiglGordonSurfaceBuilder::Perform ( )
private

Field Documentation

◆ m_gordonSurf

tigl::CTiglGordonSurfaceBuilder::m_gordonSurf
private

◆ m_guides

CurveArray tigl::CTiglGordonSurfaceBuilder::m_guides
private

◆ m_hasPerformed

bool tigl::CTiglGordonSurfaceBuilder::m_hasPerformed
private

◆ m_intersection_params_spline_u

const std::vector<double>& tigl::CTiglGordonSurfaceBuilder::m_intersection_params_spline_u
private

◆ m_intersection_params_spline_v

const std::vector<double> tigl::CTiglGordonSurfaceBuilder::m_intersection_params_spline_v
private

◆ m_profiles

CurveArray tigl::CTiglGordonSurfaceBuilder::m_profiles
private

◆ m_skinningSurfGuides

tigl::CTiglGordonSurfaceBuilder::m_skinningSurfGuides
private

◆ m_tensorProdSurf

tigl::CTiglGordonSurfaceBuilder::m_tensorProdSurf
private

◆ m_tol

double tigl::CTiglGordonSurfaceBuilder::m_tol
private

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