Fawkes API  Fawkes Development Version
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
hom_pose.h
1 
2 /***************************************************************************
3  * hom_pose.h - Homogenous Pose
4  *
5  * Created: Sun April 13 16:10:45 2008
6  * Copyright 2008 Daniel Beck
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef __GEOMETRY_HOM_POSE_H_
25 #define __GEOMETRY_HOM_POSE_H_
26 
27 #include <geometry/hom_point.h>
28 
29 namespace fawkes {
30 
31 class HomPose : public HomPoint
32 {
33  public:
34  HomPose(float x = 0, float y = 0, float yaw = 0);
35  HomPose( float x, float y, float z,
36  float roll, float pitch, float yaw );
37  HomPose(const HomCoord& h);
38  virtual ~HomPose();
39 
40  float roll() const;
41  float& roll();
42  void roll(float roll);
43 
44  float pitch() const;
45  float& pitch();
46  void pitch(float pitch);
47 
48  float yaw() const;
49  float& yaw();
50  void yaw(float yaw);
51 
52  HomPoint pos() const;
53 
54  virtual HomPose& rotate_x(float rad);
55  virtual HomPose& rotate_y(float rad);
56  virtual HomPose& rotate_z(float rad);
57 
58  private:
59  float m_roll;
60  float m_pitch;
61  float m_yaw;
62 };
63 
64 } // end namespace fawkes
65 
66 #endif /* __GEOMETRY_HOM_POSE_H_ */