3.5.0
Loading...
Searching...
No Matches
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!
 
TIGL_EXPORT Handle_Geom_BSplineSurface SurfaceGordon ()
 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 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)
 
void Perform ()
 

Private Attributes

Handle_Geom_BSplineSurface 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
 
Handle_Geom_BSplineSurface m_skinningSurfGuides
 
Handle_Geom_BSplineSurface m_skinningSurfProfiles
 
Handle_Geom_BSplineSurface 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

◆ Perform()

void tigl::CTiglGordonSurfaceBuilder::Perform ( )
private

◆ SurfaceGordon()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglGordonSurfaceBuilder::SurfaceGordon ( )

Returns the interpolation surface.

◆ SurfaceGuides()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglGordonSurfaceBuilder::SurfaceGuides ( )

Returns the surface that interpolates the guides.

◆ SurfaceIntersections()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglGordonSurfaceBuilder::SurfaceIntersections ( )

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

◆ SurfaceProfiles()

TIGL_EXPORT Handle_Geom_BSplineSurface tigl::CTiglGordonSurfaceBuilder::SurfaceProfiles ( )

Returns the surface that interpolates the profiles.

Field Documentation

◆ m_gordonSurf

Handle_Geom_BSplineSurface 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

Handle_Geom_BSplineSurface tigl::CTiglGordonSurfaceBuilder::m_skinningSurfGuides
private

◆ m_skinningSurfProfiles

Handle_Geom_BSplineSurface tigl::CTiglGordonSurfaceBuilder::m_skinningSurfProfiles
private

◆ m_tensorProdSurf

Handle_Geom_BSplineSurface tigl::CTiglGordonSurfaceBuilder::m_tensorProdSurf
private

◆ m_tol

double tigl::CTiglGordonSurfaceBuilder::m_tol
private

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