3.5.0-rc1
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)
 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::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface )
private

◆ Handle() [2/5]

TIGL_EXPORT tigl::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface )

Returns the interpolation surface.

◆ 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_EXPORT tigl::CTiglGordonSurfaceBuilder::Handle ( Geom_BSplineSurface )

Returns the surface that interpolates the profiles.

◆ 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: