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 
virtual double deflection() const =0
Description method, giving the path&#39;s deflection (change of orientation).
virtual double length() const =0
Description method, giving the path&#39;s length.
virtual iSeeML::rob::CurvConfig operator[](const double &s) const =0
Description method, giving a configuration at a given arc length along the path.
This class defines a standard robotic configuration, containing the position of a reference point and...
Definition: OrPtConfig.hpp:45
static bool isPositive(const double &x)
Method telling whether a double is strictly positive.
Definition: Object.hpp:264
This class is the base class of robotic namespace of ISeeML: every robotic object inherits this one...
Definition: Object.hpp:21
virtual const iSeeML::rob::OrPtConfig & start() const =0
Description method, giving the path&#39;s starting configuration.
This class is the base class of all robotic paths in ISeeML.
Definition: Path.hpp:51
This class defines a more precise configuration than classical ones for mobile robots.
Definition: CurvConfig.hpp:30
bool operator<(const Path &other) const
Order operator, defining an order relation on the paths&#39; set, based on the path&#39;s length...
Definition: Path.hpp:115
virtual const iSeeML::rob::OrPtConfig & end() const =0
Description method, giving the path&#39;s final configuration.