Open CASCADE Technology  7.7.0
Public Member Functions | Static Public Member Functions

GCPnts_TangentialDeflection Class Reference

Computes a set of points on a curve from package Adaptor3d such as between two successive points P1(u1)and P2(u2) : More...

#include <GCPnts_TangentialDeflection.hxx>

Public Member Functions

 GCPnts_TangentialDeflection ()
 Empty constructor. More...
 
 GCPnts_TangentialDeflection (const Adaptor3d_Curve &theC, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Constructor for 3D curve. More...
 
 GCPnts_TangentialDeflection (const Adaptor3d_Curve &theC, const Standard_Real theFirstParameter, const Standard_Real theLastParameter, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Constructor for 3D curve with restricted range. More...
 
 GCPnts_TangentialDeflection (const Adaptor2d_Curve2d &theC, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Constructor for 2D curve. More...
 
 GCPnts_TangentialDeflection (const Adaptor2d_Curve2d &theC, const Standard_Real theFirstParameter, const Standard_Real theLastParameter, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Constructor for 2D curve with restricted range. More...
 
void Initialize (const Adaptor3d_Curve &theC, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Initialize algorithm for 3D curve. More...
 
void Initialize (const Adaptor3d_Curve &theC, const Standard_Real theFirstParameter, const Standard_Real theLastParameter, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Initialize algorithm for 3D curve with restricted range. More...
 
void Initialize (const Adaptor2d_Curve2d &theC, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Initialize algorithm for 2D curve. More...
 
void Initialize (const Adaptor2d_Curve2d &theC, const Standard_Real theFirstParameter, const Standard_Real theLastParameter, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
 Initialize algorithm for 2D curve with restricted range. More...
 
Standard_Integer AddPoint (const gp_Pnt &thePnt, const Standard_Real theParam, const Standard_Boolean theIsReplace=Standard_True)
 Add point to already calculated points (or replace existing) Returns index of new added point or founded with parametric tolerance (replaced if theIsReplace is true) More...
 
Standard_Integer NbPoints () const
 
Standard_Real Parameter (const Standard_Integer I) const
 
gp_Pnt Value (const Standard_Integer I) const
 

Static Public Member Functions

static Standard_Real ArcAngularStep (const Standard_Real theRadius, const Standard_Real theLinearDeflection, const Standard_Real theAngularDeflection, const Standard_Real theMinLength)
 Computes angular step for the arc using the given parameters. More...
 

Detailed Description

Computes a set of points on a curve from package Adaptor3d such as between two successive points P1(u1)and P2(u2) :

. ||P1P3^P3P2||/||P1P3||*||P3P2||<AngularDeflection
. ||P1P2^P1P3||/||P1P2||<CurvatureDeflection

where P3 is the point of abscissa ((u1+u2)/2), with u1 the abscissa of the point P1 and u2 the abscissa of the point P2.

^ is the cross product of two vectors, and ||P1P2|| the magnitude of the vector P1P2.

The conditions AngularDeflection > gp::Resolution() and CurvatureDeflection > gp::Resolution() must be satisfied at the construction time.

A minimum number of points can be fixed for a linear or circular element. Example:

Handle(Geom_BezierCurve) aCurve = new Geom_BezierCurve (thePoles);
GeomAdaptor_Curve aCurveAdaptor (aCurve);
double aCDeflect = 0.01; // Curvature deflection
double anADeflect = 0.09; // Angular deflection
aPointsOnCurve.Initialize (aCurveAdaptor, anADeflect, aCDeflect);
for (int i = 1; i <= aPointsOnCurve.NbPoints(); ++i)
{
double aU = aPointsOnCurve.Parameter (i);
gp_Pnt aPnt = aPointsOnCurve.Value (i);
}
#define Handle(Class)
Define Handle() macro.
Definition: Standard_Handle.hxx:400
Computes a set of points on a curve from package Adaptor3d such as between two successive points P1(u...
Definition: GCPnts_TangentialDeflection.hxx:63
void Initialize(const Adaptor3d_Curve &theC, const Standard_Real theAngularDeflection, const Standard_Real theCurvatureDeflection, const Standard_Integer theMinimumOfPoints=2, const Standard_Real theUTol=1.0e-9, const Standard_Real theMinLen=1.0e-7)
Initialize algorithm for 3D curve.
Standard_Real Parameter(const Standard_Integer I) const
Definition: GCPnts_TangentialDeflection.hxx:200
Standard_Integer NbPoints() const
Definition: GCPnts_TangentialDeflection.hxx:195
gp_Pnt Value(const Standard_Integer I) const
Definition: GCPnts_TangentialDeflection.hxx:205
Describes a rational or non-rational Bezier curve.
Definition: Geom_BezierCurve.hxx:89
This class provides an interface between the services provided by any curve from the package Geom and...
Definition: GeomAdaptor_Curve.hxx:38
Defines a 3D cartesian point.
Definition: gp_Pnt.hxx:32

Constructor & Destructor Documentation

◆ GCPnts_TangentialDeflection() [1/5]

GCPnts_TangentialDeflection::GCPnts_TangentialDeflection ( )

Empty constructor.

See also
Initialize()

◆ GCPnts_TangentialDeflection() [2/5]

GCPnts_TangentialDeflection::GCPnts_TangentialDeflection ( const Adaptor3d_Curve theC,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Constructor for 3D curve.

Parameters
theC[in] 3d curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol[in] tolerance in curve parametric scope
theMinLen[in] minimal length

◆ GCPnts_TangentialDeflection() [3/5]

GCPnts_TangentialDeflection::GCPnts_TangentialDeflection ( const Adaptor3d_Curve theC,
const Standard_Real  theFirstParameter,
const Standard_Real  theLastParameter,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Constructor for 3D curve with restricted range.

Parameters
theC[in] 3d curve
theFirstParameter[in] first parameter on curve
theLastParameter[in] last parameter on curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol [in] tolerance in curve parametric scope
theMinLen[in] minimal length

◆ GCPnts_TangentialDeflection() [4/5]

GCPnts_TangentialDeflection::GCPnts_TangentialDeflection ( const Adaptor2d_Curve2d theC,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Constructor for 2D curve.

Parameters
theC[in] 2d curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol[in] tolerance in curve parametric scope
theMinLen[in] minimal length

◆ GCPnts_TangentialDeflection() [5/5]

GCPnts_TangentialDeflection::GCPnts_TangentialDeflection ( const Adaptor2d_Curve2d theC,
const Standard_Real  theFirstParameter,
const Standard_Real  theLastParameter,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Constructor for 2D curve with restricted range.

Parameters
theC[in] 2d curve
theFirstParameter[in] first parameter on curve
theLastParameter[in] last parameter on curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol[in] tolerance in curve parametric scope
theMinLen[in] minimal length

Member Function Documentation

◆ AddPoint()

Standard_Integer GCPnts_TangentialDeflection::AddPoint ( const gp_Pnt thePnt,
const Standard_Real  theParam,
const Standard_Boolean  theIsReplace = Standard_True 
)

Add point to already calculated points (or replace existing) Returns index of new added point or founded with parametric tolerance (replaced if theIsReplace is true)

◆ ArcAngularStep()

static Standard_Real GCPnts_TangentialDeflection::ArcAngularStep ( const Standard_Real  theRadius,
const Standard_Real  theLinearDeflection,
const Standard_Real  theAngularDeflection,
const Standard_Real  theMinLength 
)
static

Computes angular step for the arc using the given parameters.

◆ Initialize() [1/4]

void GCPnts_TangentialDeflection::Initialize ( const Adaptor2d_Curve2d theC,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Initialize algorithm for 2D curve.

Parameters
theC[in] 2d curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol[in] tolerance in curve parametric scope
theMinLen[in] minimal length

◆ Initialize() [2/4]

void GCPnts_TangentialDeflection::Initialize ( const Adaptor2d_Curve2d theC,
const Standard_Real  theFirstParameter,
const Standard_Real  theLastParameter,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Initialize algorithm for 2D curve with restricted range.

Parameters
theC[in] 2d curve
theFirstParameter[in] first parameter on curve
theLastParameter[in] last parameter on curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol[in] tolerance in curve parametric scope
theMinLen[in] minimal length

◆ Initialize() [3/4]

void GCPnts_TangentialDeflection::Initialize ( const Adaptor3d_Curve theC,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Initialize algorithm for 3D curve.

Parameters
theC[in] 3d curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol[in] tolerance in curve parametric scope
theMinLen[in] minimal length

◆ Initialize() [4/4]

void GCPnts_TangentialDeflection::Initialize ( const Adaptor3d_Curve theC,
const Standard_Real  theFirstParameter,
const Standard_Real  theLastParameter,
const Standard_Real  theAngularDeflection,
const Standard_Real  theCurvatureDeflection,
const Standard_Integer  theMinimumOfPoints = 2,
const Standard_Real  theUTol = 1.0e-9,
const Standard_Real  theMinLen = 1.0e-7 
)

Initialize algorithm for 3D curve with restricted range.

Parameters
theC[in] 3d curve
theFirstParameter[in] first parameter on curve
theLastParameter[in] last parameter on curve
theAngularDeflection[in] angular deflection in radians
theCurvatureDeflection[in] linear deflection
theMinimumOfPoints[in] minimum number of points
theUTol[in] tolerance in curve parametric scope
theMinLen[in] minimal length

◆ NbPoints()

Standard_Integer GCPnts_TangentialDeflection::NbPoints ( ) const
inline

◆ Parameter()

Standard_Real GCPnts_TangentialDeflection::Parameter ( const Standard_Integer  I) const
inline

◆ Value()

gp_Pnt GCPnts_TangentialDeflection::Value ( const Standard_Integer  I) const
inline

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