ISeeML  1.0
Public Member Functions | Static Public Attributes | List of all members
iSeeML::rob::LinCurvPath Class Reference

This class defines linear curvature elementary paths, for which the curvature derivative (with respect to the arc length) is constant. More...

#include <LinCurvPath.hpp>

Inheritance diagram for iSeeML::rob::LinCurvPath:
Inheritance graph
[legend]
Collaboration diagram for iSeeML::rob::LinCurvPath:
Collaboration graph
[legend]

Public Member Functions

 LinCurvPath ()
 The default constructor should only be used for array initializations: it generates a path starting from default configuration, with constant curvature and zero length. More...
 
 LinCurvPath (const iSeeML::rob::CurvConfig &start, const double &sharpness=0, const double &length=0)
 The main constructor. More...
 
const iSeeML::rob::CurvConfigstart () const
 Description method, giving the path's starting configuration. More...
 
const iSeeML::rob::CurvConfigend () const
 Description method, giving the path's final configuration (as a configuration for mobile robot with curvature). More...
 
const double & sharpness () const
 Description method, giving the path's constant curvature derivative with respect to the arc length. More...
 
double length () const
 Description method, giving the path's length. More...
 
double deflection () const
 Description method, giving the path's deflection (change of orientation). More...
 
iSeeML::Objectclone () const
 Description method, giving a copy of the current linear curvature path. More...
 
void writeTo (ostream &O) const
 Description method, writing a description of the path in a given output stream. More...
 
iSeeML::rob::CurvConfig operator[] (const double &s) const
 Description method, giving a configuration at a given arc length along the path. More...
 
- Public Member Functions inherited from iSeeML::rob::Path
bool operator< (const Path &other) const
 Order operator, defining an order relation on the paths' set, based on the path's length. More...
 
- Public Member Functions inherited from iSeeML::Object
virtual ~Object ()
 This virtual class needs a virtual destructor.
 
virtual const string className () const
 Description method, giving the object's class name. More...
 
bool sameClass (const iSeeML::Object &other)
 Method verifying that a given object has the same type (same class name) than the current one. More...
 

Static Public Attributes

static const string ClassName
 The class name is public, as this class can be instanced. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from iSeeML::Object
template<class T >
static const T & min (const T &a, const T &b)
 Method giving the minimum of two elements. More...
 
template<class T >
static const T & max (const T &a, const T &b)
 Method giving the maximum of two elements. More...
 
static double sqr (const double &x)
 Method giving the square of a double. More...
 
static double mod2pi (const double &theta)
 Method giving the angle between - $\pi$ (excluded) and $\pi$ (included), which is equal to a given angle modulo 2 $\pi$. More...
 
static double rad2deg (const double &theta)
 Method transforming an angle in radian, $x \pi$ with $x$ between -1 (excluded) and 1 (included), into its equivalent in degree, i.e. More...
 
static double deg2rad (const double &theta)
 Method transforming an angle in degree, $90 x$ with $x$ between -1 (excluded) and 1 (included), into its equivalent in radian, i.e. More...
 
static bool isPositive (const double &x)
 Method telling whether a double is strictly positive. More...
 
static bool isNegative (const double &x)
 Method telling whether a double is strictly negative. More...
 
static bool isZero (const double &x)
 Method comparing a double to zero. More...
 
static int sign (const double &x)
 Method giving the sign of a double. More...
 
- Protected Member Functions inherited from iSeeML::Object
virtual int algDimension () const
 Description method for algebraic vectors, giving the dimension of the containing space (default is zero). More...
 
virtual double algCoord (const int) const
 Description method for algebraic vectors, giving coordinate of given index for this vector. More...
 
virtual void algWriteTo (ostream &O) const
 Description method for algebraic vectors, writing this vector in a given output stream: coordinates for each dimension are written, between paranthesis and separated by commas. More...
 

Detailed Description

This class defines linear curvature elementary paths, for which the curvature derivative (with respect to the arc length) is constant.

These are the only elementary paths of ISeeML, the other paths being made of paths of this kind (they are compound paths).

Author
Alexis Scheuer.
Version
1.0
Examples:
wxGuiFwd.cpp.

Constructor & Destructor Documentation

iSeeML::rob::LinCurvPath::LinCurvPath ( )
inline

The default constructor should only be used for array initializations: it generates a path starting from default configuration, with constant curvature and zero length.

See also
default constructor of iSeeML::rob::CurvConfig.
iSeeML::rob::LinCurvPath::LinCurvPath ( const iSeeML::rob::CurvConfig start,
const double &  sharpness = 0,
const double &  length = 0 
)
inline

The main constructor.

Parameters
startthe starting configuration,
sharpnessthe constant curvature derivative with respect to the arc length (default value is zero),
lengththe length of the path (default value is zero).
See also
operator[].

Member Function Documentation

iSeeML::Object& iSeeML::rob::LinCurvPath::clone ( ) const
inlinevirtual

Description method, giving a copy of the current linear curvature path.

This clone is dynamically allocated (using default copy constructor), it has to be deleted later.

Returns
a copy/clone of the current linear curvature path.

Implements iSeeML::Object.

double iSeeML::rob::LinCurvPath::deflection ( ) const
inlinevirtual

Description method, giving the path's deflection (change of orientation).

Returns
the path's deflection.

Implements iSeeML::rob::Path.

const iSeeML::rob::CurvConfig& iSeeML::rob::LinCurvPath::end ( ) const
inlinevirtual

Description method, giving the path's final configuration (as a configuration for mobile robot with curvature).

Returns
the path's final configuration.

Implements iSeeML::rob::Path.

Examples:
wxGuiFwd.cpp.
double iSeeML::rob::LinCurvPath::length ( ) const
inlinevirtual

Description method, giving the path's length.

Returns
the path's length.

Implements iSeeML::rob::Path.

Examples:
wxGuiFwd.cpp.
iSeeML::rob::CurvConfig iSeeML::rob::LinCurvPath::operator[] ( const double &  s) const
virtual

Description method, giving a configuration at a given arc length along the path.

Parameters
sthe arc length.
Precondition
the given arc length should be positive and less than the path's length. If this is not true, an error message is generated if ISEEML_CHECK_LIN_PATH_PRECOND is defined, and the arc length is considered as zero if smaller and as path's length if bigger, if ISEEML_CHECK_ARRAY_ELEMT is defined (see CompilerFlags.h).
Returns
the configuration at given arc length along the path.

Implements iSeeML::rob::Path.

const double& iSeeML::rob::LinCurvPath::sharpness ( ) const
inline

Description method, giving the path's constant curvature derivative with respect to the arc length.

Returns
the path's curvature derivative.
Examples:
wxGuiFwd.cpp.
const iSeeML::rob::CurvConfig& iSeeML::rob::LinCurvPath::start ( ) const
inlinevirtual

Description method, giving the path's starting configuration.

(as a configuration for mobile robot with curvature).

Returns
the path's starting configuration.

Implements iSeeML::rob::Path.

Examples:
wxGuiFwd.cpp.
void iSeeML::rob::LinCurvPath::writeTo ( ostream &  O) const
inlinevirtual

Description method, writing a description of the path in a given output stream.

The starting configuration is given, then the path parameters (sharpness and length) between braces, then the final configuration, the whole between brackets.

Parameters
Othe output stream in which description is written.

Implements iSeeML::Object.

Member Data Documentation

const string iSeeML::rob::LinCurvPath::ClassName
static

The class name is public, as this class can be instanced.

See also
className.

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