Computes a set of points on a curve from package Adaptor3d such as between two successive points P1(u1)and P2(u2) :
More...
|
| GCPnts_TangentialDeflection () |
|
| GCPnts_TangentialDeflection (const Adaptor3d_Curve &C, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
| GCPnts_TangentialDeflection (const Adaptor3d_Curve &C, const Standard_Real FirstParameter, const Standard_Real LastParameter, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
| GCPnts_TangentialDeflection (const Adaptor2d_Curve2d &C, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
| GCPnts_TangentialDeflection (const Adaptor2d_Curve2d &C, const Standard_Real FirstParameter, const Standard_Real LastParameter, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
void | Initialize (const Adaptor3d_Curve &C, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
void | Initialize (const Adaptor3d_Curve &C, const Standard_Real FirstParameter, const Standard_Real LastParameter, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
void | Initialize (const Adaptor2d_Curve2d &C, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
void | Initialize (const Adaptor2d_Curve2d &C, const Standard_Real FirstParameter, const Standard_Real LastParameter, const Standard_Real AngularDeflection, const Standard_Real CurvatureDeflection, const Standard_Integer MinimumOfPoints=2, const Standard_Real UTol=1.0e-9) |
|
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 |
|
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||*||P1P3||<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) C = new Geom_BezierCurve (Poles); GeomAdaptor_Curve Curve (C); Real CDeflect = 0.01; //Curvature deflection Real ADeflect = 0.09; //Angular deflection
GCPnts_TangentialDeflection PointsOnCurve; PointsOnCurve.Initialize (Curve, ADeflect, CDeflect);
Real U; gp_Pnt P; for (Integer i=1; i<=PointsOnCurve.NbPoints();i++) { U = PointsOnCurve.Parameter (i); P = PointsOnCurve.Value (i); }