|
| Spline3Base (int dimension, double geometric_resolution, int order) |
|
| Spline3Base (double geometric_resolution, SISLCurve *curve) |
|
| Spline3Base (SplineBase const &source) |
|
base::Matrix3d | getFrenetFrame (double _param) |
|
double | getHeading (double _param) |
|
double | headingError (double _actZRot, double _param) |
|
double | distanceError (base::Vector3d _pt, double _param) |
|
base::Vector3d | poseError (base::Vector3d const &_position, double _heading, double _guess) |
|
base::Vector3d | poseError (base::Vector3d const &_position, double _heading, double _guess, double minParam) |
|
| SplineBase (SplineBase const &source) |
|
| ~SplineBase () |
|
| SplineBase (int dimension, double geometric_resolution=0.1, int order=3) |
|
| SplineBase (double geometric_resolution, SISLCurve *curve) |
|
void | setGeometricResolution (double _geores) |
|
double | getGeometricResolution () const |
|
bool | isEmpty () const |
|
bool | isSingleton () const |
|
int | getDimension () const |
|
int | getPointCount () const |
|
void | setCurveOrder (int value) |
|
int | getCurveOrder () const |
|
double | getCurveLength (double relative_resolution=0.01) const |
|
double | getCurveLength (double startParam, double relative_resolution) const |
|
double | getCurveLength (double startParam, double endParam, double relative_resolution) const |
|
double | getCurvatureMax () |
|
double | getStartParam () const |
|
double | getEndParam () const |
|
SISLCurve const * | getSISLCurve () const |
|
SISLCurve * | getSISLCurve () |
|
double | getCurvature (double _param) const |
|
double | getVariationOfCurvature (double _param) |
|
std::vector< double > | getCoordinates () const |
|
std::vector< double > | getKnots () const |
|
int | getSISLCurveType () const |
|
void | printCurveProperties (std::ostream &io) |
|
void | interpolate (std::vector< double > const &coordinates, std::vector< double > const ¶meters=std::vector< double >(), std::vector< CoordinateType > const &coord_types=std::vector< CoordinateType >()) |
|
void | interpolate (std::vector< double > const &coordinates, std::vector< double > ¶meterOut, std::vector< double > const ¶meterIn=std::vector< double >(), std::vector< CoordinateType > const &coord_types=std::vector< CoordinateType >()) |
|
bool | testIntersection (SplineBase const &other, double resolution=0.01) const |
|
void | clear () |
|
std::vector< double > | simplify () |
|
std::vector< double > | simplify (double tolerance) |
|
SplineBase const & | operator= (SplineBase const &base) |
|
bool | isNURBS () const |
|
void | reset (std::vector< double > const &coordinates, std::vector< double > const &knots, int kind=-1) |
|
void | reverse () |
|
void | append (SplineBase const &other) |
|
void | append (SplineBase const &other, double tolerance) |
|
double | join (SplineBase const &other, double tolerance, bool with_tangents) |
|
void | split (SplineBase &second_part, double parameter) |
|
void | crop (double start_t, double end_t) |
|
SplineBase * | getSubSpline (double start_t, double end_t) const |
|
int | getCoordinatesStride () const |
|
void | setSingleton (double const *coordinates) |
|
void | derive (unsigned int order, SplineBase &result) const |
|
|
enum | CoordinateType {
ORDINARY_POINT = 1,
KNUCKLE_POINT = 2,
DERIVATIVE_TO_NEXT = 3,
DERIVATIVE_TO_PRIOR = 4,
SECOND_DERIVATIVE_TO_NEXT = 5,
SECOND_DERIVATIVE_TO_PRIOR = 6,
TANGENT_POINT_FOR_NEXT = 13,
TANGENT_POINT_FOR_PRIOR = 14
} |
|
bool | checkAndNormalizeParam (double ¶m, double equalDistance=0.001) const |
|
void | reset (SISLCurve *curve) |
|
void | getPoint (double *result, double _param) const |
|
void | getPointAndTangent (double *result, double _param) const |
|
void | findPointIntersections (double const *_point, std::vector< double > &_result_points, std::vector< std::pair< double, double > > &_result_curves, double _geores) const |
|
std::pair< double, bool > | findOneLineIntersection (double const *_point, double const *_normal, double _guess, double _geores) const |
|
void | findLineIntersections (double const *_point, double const *_normal, std::vector< double > &_result_points, std::vector< std::pair< double, double > > &_result_curves, double _geores) const |
|
void | findSphereIntersections (double const *_center, double radius, std::vector< double > &points, std::vector< std::pair< double, double > > &segments, double _geores) const |
|
double | findOneClosestPoint (double const *_pt, double _guess, double _geores) const |
|
void | findClosestPoints (double const *ref_point, std::vector< double > &_result_points, std::vector< std::pair< double, double > > &_result_curves, double _geores) const |
|
double | localClosestPointSearch (double const *ref_point, double _guess, double _start, double _end, double _geores) const |
|
void | getPointAndTangentHelper (double *result, double _param, bool with_tangent) const |
|
double | getResultClosestToGuess (double _guess, std::vector< double > points, std::vector< std::pair< double, double > > curves) const |
|
base::Matrix3d | getFrenetFrame (double _param) |
| available only in Spline<3> More...
|
|
double | getHeading (double _param) |
| available only in Spline<3> More...
|
|
double | headingError (double _actHeading, double _param) |
| available only in Spline<3> More...
|
|
double | distanceError (base::Vector3d _pt, double _param) |
| available only in Spline<3> More...
|
|
base::Vector3d | poseError (base::Vector3d _pt, double _actZRot, double _st_para) |
| available only in Spline<3> More...
|
|
base::Vector3d | poseError (base::Vector3d _pt, double _actZRot, double _st_para, double minParam) |
| available only in Spline<3> More...
|
|
Intermediate base class to add functionality that is specific to 3D curves
Searches for the closest point in the curve, the it checks, if the closest point is an advancement on the trajectory in respect to the given 'minParam'. If this is the case is uses the new point, else it uses minParam. Returns the pose error between the frenet frame on the curve and the given pose (determinded by the current param) given by _position and _heading.
The returned vector is (distance_error, heading_error, curve_parameter)