base
Public Member Functions | List of all members
base::geometry::Spline3Base Class Reference

#include <Spline.hpp>

Inheritance diagram for base::geometry::Spline3Base:
base::geometry::SplineBase

Public Member Functions

 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)
 
- Public Member Functions inherited from base::geometry::SplineBase
 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 &parameters=std::vector< double >(), std::vector< CoordinateType > const &coord_types=std::vector< CoordinateType >())
 
void interpolate (std::vector< double > const &coordinates, std::vector< double > &parameterOut, std::vector< double > const &parameterIn=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)
 
SplineBasegetSubSpline (double start_t, double end_t) const
 
int getCoordinatesStride () const
 
void setSingleton (double const *coordinates)
 
void derive (unsigned int order, SplineBase &result) const
 

Additional Inherited Members

- Public Types inherited from base::geometry::SplineBase
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
}
 
- Protected Member Functions inherited from base::geometry::SplineBase
bool checkAndNormalizeParam (double &param, 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...
 

Detailed Description

Intermediate base class to add functionality that is specific to 3D curves

Constructor & Destructor Documentation

◆ Spline3Base() [1/3]

base::geometry::Spline3Base::Spline3Base ( int  dimension,
double  geometric_resolution,
int  order 
)
inlineexplicit

Pass-through constructor for Spline<3>. The check on dimensionality is done by Spline<>

◆ Spline3Base() [2/3]

base::geometry::Spline3Base::Spline3Base ( double  geometric_resolution,
SISLCurve *  curve 
)
inlineexplicit

Pass-through constructor for Spline<3>. The check on dimensionality is done by Spline<>

◆ Spline3Base() [3/3]

base::geometry::Spline3Base::Spline3Base ( SplineBase const &  source)
inline

Member Function Documentation

◆ distanceError()

double base::geometry::Spline3Base::distanceError ( base::Vector3d  _pt,
double  _param 
)
inline

◆ getFrenetFrame()

base::Matrix3d base::geometry::Spline3Base::getFrenetFrame ( double  _param)
inline

◆ getHeading()

double base::geometry::Spline3Base::getHeading ( double  _param)
inline

◆ headingError()

double base::geometry::Spline3Base::headingError ( double  _actZRot,
double  _param 
)
inline

◆ poseError() [1/2]

base::Vector3d base::geometry::Spline3Base::poseError ( base::Vector3d const &  _position,
double  _heading,
double  _guess 
)
inline

Searches for the closest point in the curve, and returns the pose error between the frenet frame on the curve and the given pose given by _position and _heading.

The returned vector is (distance_error, heading_error, curve_parameter)

◆ poseError() [2/2]

base::Vector3d base::geometry::Spline3Base::poseError ( base::Vector3d const &  _position,
double  _heading,
double  _guess,
double  minParam 
)
inline

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)


The documentation for this class was generated from the following file: