ISeeML  1.0
Path.hpp
1 //
2 // Definition of iSeeML::rob::Path, superclass of every other ISeeML
3 // robotic paths' class.
4 //
5 
6 // To only include this definition once
7 #ifndef ISEEML_ROB_PATH_HH
8 #define ISEEML_ROB_PATH_HH
9 
10 
11 // This class needs the definition of iSeeML::rob::Object.
12 #include <iSeeML/rob/Object.hpp>
13 #include <iSeeML/rob/CurvConfig.hpp>
14 
15 
52  // === Object's Fields ==========================================
53 
58  static const string ClassName;
59 
60 public:
61  // === Constructors and Destructors =============================
62 
63  // None (destructor is already virtual, due to Object).
64 
65 
66  // === Description Methods ======================================
67 
72  virtual const iSeeML::rob::OrPtConfig& start() const = 0;
73 
78  virtual const iSeeML::rob::OrPtConfig& end() const = 0;
79 
80 
85  virtual double length() const = 0;
86 
92  virtual double deflection() const = 0;
93 
94 
95  // === Modification Methods =====================================
96 
97  // === Operators ================================================
98 
115  bool operator<(const Path& other) const
116  // Cf. previous comment
117  { return( ( isPositive( length() ) && ( length() < other.length() ) )
118  || (! isPositive( other.length() ) ) ); }
119 
120 
132  virtual iSeeML::rob::CurvConfig operator[](const double& s) const = 0;
133 
134  // === Various Methods ==========================================
135 
136 }; // end of class iSeeML::rob::Path
137 
138 #endif // end of definition
139 
iSeeML::rob::Path::operator<
bool operator<(const Path &other) const
Order operator, defining an order relation on the paths' set, based on the path's length.
Definition: Path.hpp:115
iSeeML::rob::Path
This class is the base class of all robotic paths in ISeeML.
Definition: Path.hpp:51
iSeeML::rob::CurvConfig
This class defines a more precise configuration than classical ones for mobile robots.
Definition: CurvConfig.hpp:30
iSeeML::rob::Path::deflection
virtual double deflection() const =0
Description method, giving the path's deflection (change of orientation).
iSeeML::rob::OrPtConfig
This class defines a standard robotic configuration, containing the position of a reference point and...
Definition: OrPtConfig.hpp:45
iSeeML::rob::Path::operator[]
virtual iSeeML::rob::CurvConfig operator[](const double &s) const =0
Description method, giving a configuration at a given arc length along the path.
iSeeML::rob::Path::length
virtual double length() const =0
Description method, giving the path's length.
iSeeML::rob::Path::start
virtual const iSeeML::rob::OrPtConfig & start() const =0
Description method, giving the path's starting configuration.
iSeeML::rob::Path::end
virtual const iSeeML::rob::OrPtConfig & end() const =0
Description method, giving the path's final configuration.
iSeeML::rob::Object
This class is the base class of robotic namespace of ISeeML: every robotic object inherits this one.
Definition: Object.hpp:21
iSeeML::Object::isPositive
static bool isPositive(const double &x)
Method telling whether a double is strictly positive.
Definition: Object.hpp:268