Open CASCADE Technology  7.7.0.dev
Static Public Member Functions

ApproxInt_KnotTools Class Reference

This class intended to build knots sequence on discrete set of points for further approximation into bspline curve. More...

#include <ApproxInt_KnotTools.hxx>

Static Public Member Functions

static void BuildKnots (const TColgp_Array1OfPnt &thePntsXYZ, const TColgp_Array1OfPnt2d &thePntsU1V1, const TColgp_Array1OfPnt2d &thePntsU2V2, const math_Vector &thePars, const Standard_Boolean theApproxXYZ, const Standard_Boolean theApproxU1V1, const Standard_Boolean theApproxU2V2, const Standard_Integer theMinNbPnts, NCollection_Vector< Standard_Integer > &theKnots)
 Main function to build optimal knot sequence. At least one set from (thePntsXYZ, thePntsU1V1, thePntsU2V2) should exist. More...
 
static void BuildCurvature (const NCollection_LocalArray< Standard_Real > &theCoords, const Standard_Integer theDim, const math_Vector &thePars, TColStd_Array1OfReal &theCurv, Standard_Real &theMaxCurv)
 Builds discrete curvature. More...
 
static Approx_ParametrizationType DefineParType (const Handle< IntPatch_WLine > &theWL, const Standard_Integer theFpar, const Standard_Integer theLpar, const Standard_Boolean theApproxXYZ, const Standard_Boolean theApproxU1V1, const Standard_Boolean theApproxU2V2)
 Defines preferable parametrization type for theWL. More...
 

Detailed Description

This class intended to build knots sequence on discrete set of points for further approximation into bspline curve.

Short description of algorithm: 1) Build discrete curvature on points set. 2) According to special rules build draft knots sequence. 3) Filter draft sequence to build output sequence.

For more details look at: Anshuman Razdan - Knot Placement for B-Spline curve Approximation.

Member Function Documentation

◆ BuildCurvature()

static void ApproxInt_KnotTools::BuildCurvature ( const NCollection_LocalArray< Standard_Real > &  theCoords,
const Standard_Integer  theDim,
const math_Vector thePars,
TColStd_Array1OfReal theCurv,
Standard_Real theMaxCurv 
)
static

Builds discrete curvature.

◆ BuildKnots()

static void ApproxInt_KnotTools::BuildKnots ( const TColgp_Array1OfPnt thePntsXYZ,
const TColgp_Array1OfPnt2d thePntsU1V1,
const TColgp_Array1OfPnt2d thePntsU2V2,
const math_Vector thePars,
const Standard_Boolean  theApproxXYZ,
const Standard_Boolean  theApproxU1V1,
const Standard_Boolean  theApproxU2V2,
const Standard_Integer  theMinNbPnts,
NCollection_Vector< Standard_Integer > &  theKnots 
)
static

Main function to build optimal knot sequence. At least one set from (thePntsXYZ, thePntsU1V1, thePntsU2V2) should exist.

Parameters
thePntsXYZ- Set of 3d points.
thePntsU1V1- Set of 2d points.
thePntsU2V2- Set of 2d points.
thePars- Expected parameters associated with set.
theApproxXYZ- Flag, existence of 3d set.
theApproxU1V1- Flag existence of first 2d set.
theApproxU2V2- Flag existence of second 2d set.
theMinNbPnts- Minimal number of points per knot interval.
theKnots- output knots sequence.

◆ DefineParType()

static Approx_ParametrizationType ApproxInt_KnotTools::DefineParType ( const Handle< IntPatch_WLine > &  theWL,
const Standard_Integer  theFpar,
const Standard_Integer  theLpar,
const Standard_Boolean  theApproxXYZ,
const Standard_Boolean  theApproxU1V1,
const Standard_Boolean  theApproxU2V2 
)
static

Defines preferable parametrization type for theWL.


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