RobWorkProject
22.2.21

Curve is an abstract representation of a smooth curve geometry in 3D. More...
#include <Curve.hpp>
Inherited by ParametricCurve.
Public Types  
typedef rw::core::Ptr< Curve >  Ptr 
Smart pointer type for Curve.  
typedef rw::core::Ptr< const Curve >  CPtr 
Smart pointer type for a const Curve.  
Public Member Functions  
Curve ()  
Constructor.  
virtual  ~Curve () 
Destructor.  
rw::core::Ptr< Curve >  transform (const rw::math::Transform3D< double > &T) const 
Transform curve. More...  
rw::core::Ptr< Curve >  transform (const rw::math::Vector3D< double > &P) const 
Transform curve. More...  
rw::core::Ptr< Curve >  scale (double factor) const 
Get a scaled version of the curve. More...  
rw::core::Ptr< Curve >  reverse () const 
Make a curve where time variable runs in opposite direction. More...  
rw::core::Ptr< Curve >  clone () const 
Make a copy of the curve. More...  
virtual std::pair< double, double >  extremums (const rw::math::Vector3D< double > &dir) const =0 
Get extremums of curve in given direction. More...  
virtual std::list< rw::math::Vector3D< double > >  discretizeAdaptive (double stepsPerRevolution) const =0 
Make a discretization of the curve. More...  
virtual OBB  obr () const =0 
Bounding rectangle of curve. More...  
virtual std::vector< rw::math::Vector3D< double > >  closestPoints (const rw::math::Vector3D< double > &p) const =0 
Get the closest points on the curve to a point p. More...  
virtual bool  equals (rw::core::Ptr< const Curve > curve, double eps) const =0 
Check if this curve is equal to another curve. More...  
Curve is an abstract representation of a smooth curve geometry in 3D.
The interface provides functions for affine transformations, such as scaling, rotation and translation. In case of a limited curve segment, it is also possible to make a discretization of the curve into line segments.

inline 
Make a copy of the curve.

pure virtual 
Get the closest points on the curve to a point p.
Notice that the limits are taken into account.
p  [in] the point to find closest values for. 
Implemented in ParametricCurve, and QuadraticCurve.

pure virtual 
Make a discretization of the curve.
The curve must be limited. The discretization is based on the curvature, such that the sampling starts at maximum curvature points (or in limits). The step size to the next point is based on the curvature in the current point.
A line will always give to points, regardless of the chosen number of steps per revolution.
stepsPerRevolution  [in] the number of points to sample if the curve is a perfect circle. 
Implemented in ParametricCurve, and QuadraticCurve.

pure virtual 
Check if this curve is equal to another curve.
curve  [in] other curve. 
eps  [in] distance threshold. 
Implemented in ParametricCurve, and QuadraticCurve.

pure virtual 
Get extremums of curve in given direction.
Notice that the limits are taken into account.
dir  [in] direction to get extremums for. 
Implemented in ParametricCurve, and QuadraticCurve.

pure virtual 
Bounding rectangle of curve.
The curve must be limited.
Implemented in ParametricCurve, and QuadraticCurve.

inline 
Make a curve where time variable runs in opposite direction.

inline 
Get a scaled version of the curve.
factor  [in] the factor to scale with. 

inline 
Transform curve.
T  [in] transformation of curve. 

inline 
Transform curve.
P  [in] positional offset. 