Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
trackable.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005-2011 LpzRobots development team *
3  * Georg Martius <georg dot martius at web dot de> *
4  * Frank Guettler <guettler at informatik dot uni-leipzig dot de *
5  * Frank Hesse <frank at nld dot ds dot mpg dot de> *
6  * Ralf Der <ralfder at mis dot mpg dot de> *
7  * *
8  * This program is free software; you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation; either version 2 of the License, or *
11  * (at your option) any later version. *
12  * *
13  * This program is distributed in the hope that it will be useful, *
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16  * GNU General Public License for more details. *
17  * *
18  * You should have received a copy of the GNU General Public License *
19  * along with this program; if not, write to the *
20  * Free Software Foundation, Inc., *
21  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
22  * *
23  ***************************************************************************/
24 #ifndef __TRACKABLE_H
25 #define __TRACKABLE_H
26 
27 #include <selforg/position.h>
28 //#include <selforg/matrix.h>
29 
30 namespace matrix {
31  class Matrix;
32 }
33 
34 /**
35  * Abstract class (interface) for trackable objects (used for robots)
36  *
37  *
38  */
39 class Trackable{
40 public:
41 
42  /**
43  * Constructor
44  */
46  };
47 
48  virtual ~Trackable() {};
49 
50  /** returns name of trackable
51  */
52  virtual std::string getTrackableName() const =0;
53 
54  /** returns position of the object
55  @return vector of position (x,y,z)
56  */
57  virtual Position getPosition() const =0;
58 
59  /** returns linear speed vector of the object
60  @return vector (vx,vy,vz)
61  */
62  virtual Position getSpeed() const =0;
63 
64  /** returns angular velocity vector of the object
65  @return vector (wx,wy,wz)
66  */
67  virtual Position getAngularSpeed() const =0;
68 
69  /** returns the orientation of the object
70  @return 3x3 rotation matrix
71  */
72  virtual matrix::Matrix getOrientation() const =0;
73 
74 };
75 
76 #endif
77 
Matrix type.
Definition: matrix.h:65
Trackable()
Constructor.
Definition: trackable.h:45
Matrixd Matrix
Definition: osgforwarddecl.h:47
virtual ~Trackable()
Definition: trackable.h:48
Abstract class (interface) for trackable objects (used for robots)
Definition: trackable.h:39
virtual std::string getTrackableName() const =0
returns name of trackable
virtual Position getSpeed() const =0
returns linear speed vector of the object
Definition: position.h:30
virtual Position getPosition() const =0
returns position of the object
virtual Position getAngularSpeed() const =0
returns angular velocity vector of the object
virtual matrix::Matrix getOrientation() const =0
returns the orientation of the object