Open CASCADE Technology
6.5.4
|
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <TColStd_SequenceOfReal.hxx>
#include <Standard_Boolean.hxx>
#include <gp_Pnt.hxx>
#include <GCPnts_TangentialDeflection.lxx>
Data Structures | |
class | GCPnts_TangentialDeflection |
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); } More... |