RobWorkProject
23.9.11-
|
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. |