smurf
Frame.hpp
Go to the documentation of this file.
1 #ifndef FRAME_H
2 #define FRAME_H
3 
4 #include <urdf_model/model.h>
5 #include "Collidable.hpp"
6 #include "Inertial.hpp"
7 
8 namespace smurf
9 {
10 
11  class Frame
12  {
13 
14  public:
15  Frame(const std::string &name, const std::vector<urdf::Visual>& visuals);
16  Frame(const std::string &name);
17  Frame();
18 
19  const std::string getName() const
20  {
21  return name;
22  };
23 
24  void addVisual(const urdf::Visual& visual);
25  void setVisuals(const std::vector<urdf::Visual>& visuals);
26  void getVisuals(std::vector<urdf::Visual>& Visuals) const;
27  std::vector<urdf::Visual>& getVisuals();
31  std::vector< urdf::Collision >& getCollisions();
32  void addCollision(const urdf::Collision& collision);
36  std::vector<smurf::Collidable> &getCollidables();
37  void getCollidables(std::vector<smurf::Collidable> &Collidables) const;
38 
39  void addCollidable(const smurf::Collidable & collidable);
40 
41  void setInertial(const smurf::Inertial& inertialM)
42  {
43  this->inertial = inertialM;
44  this->hasInertial = true;
45  };
46 
48  {
49  return this->inertial;
50  };
51 
52  void setGroupId(int id)
53  {
54  this->groupId = id;
55  };
56 
57  int getGroupId() const
58  {
59  return this->groupId;
60  };
61 
62  bool getHasInertial() const
63  {
64  return this->hasInertial;
65  }
66 
67  /*
68  void setCollidables(const std::vector<smurf::Collidable>& collidables);
69  */
70 
71  private:
73  std::string name;
74 
76  std::vector<smurf::Collidable> collidables;
77  // TODO can we just use the urdf::Collision objects? No this breaks on execution for the simulator but I guess it can be needed for the collision detection outside the simulator, therefore I put it as a separate structure.
78  std::vector<urdf::Collision> collisions;
79 
81  std::vector<urdf::Visual> visuals;
82 
83  bool hasInertial;
84 
85  smurf::Inertial inertial;
87 
88  int groupId;
89 
90  };
91 
92 };
93 #endif // FRAME_H
void addCollidable(const smurf::Collidable &collidable)
Definition: Frame.cpp:46
std::vector< smurf::Collidable > & getCollidables()
Definition: Frame.cpp:60
Definition: Frame.hpp:11
bool getHasInertial() const
Definition: Frame.hpp:62
std::vector< urdf::Collision > & getCollisions()
Definition: Frame.cpp:41
Definition: Inertial.hpp:10
void setGroupId(int id)
Definition: Frame.hpp:52
Definition: Collidable.hpp:13
smurf::Inertial getInertial()
Definition: Frame.hpp:47
void setInertial(const smurf::Inertial &inertialM)
Definition: Frame.hpp:41
void setVisuals(const std::vector< urdf::Visual > &visuals)
Definition: Frame.cpp:21
Frame()
Definition: Frame.cpp:12
std::vector< urdf::Visual > & getVisuals()
Definition: Frame.cpp:31
const std::string getName() const
Definition: Frame.hpp:19
void addCollision(const urdf::Collision &collision)
Definition: Frame.cpp:36
int getGroupId() const
Definition: Frame.hpp:57
Definition: Collidable.hpp:11
void addVisual(const urdf::Visual &visual)
Definition: Frame.cpp:16