robot_element/abstract_robot_element.h
Go to the documentation of this file.
1 #ifndef ABSTRACT_ROBOT_ELEMENT_
2 #define ABSTRACT_ROBOT_ELEMENT_
3 
4 #include "ros/ros.h"
5 #include <tf2/LinearMath/Transform.h>
6 
8  protected:
9  std::string name_;
10  tf2::Transform relative_tf_;
11  tf2::Transform world_tf_;
12  tf2::Vector3 size_;
13 
14  std::vector<tf2::Transform> bounds_;
15 
16  public:
17  Abstract_robot_element(tf2::Transform tf, std::string name, tf2::Vector3 size)
18  : relative_tf_(tf)
19  , name_(name)
20  , size_(size)
21  , world_tf_(tf2::Transform(tf2::Quaternion(0,0,0,1), tf2::Vector3(0,0,0))) {}
22 
23 
24  inline tf2::Transform& relative_tf(){ return relative_tf_;}
25  inline void set_relative_tf(tf2::Transform tf) { relative_tf_= tf;}
26 
27  inline void calc_world_tf(tf2::Transform& tf) {world_tf_= tf * relative_tf_;}
28  inline void set_world_tf(tf2::Transform& tf) { world_tf_ = tf;}
29 
30 
31  virtual std::vector<tf2::Transform>& bounds()=0;
32  virtual tf2::Transform& world_tf()=0;
33  virtual tf2::Vector3& size()=0;
34  virtual std::string& name()=0;
35 
36 
37  virtual void update(tf2::Transform& tf)= 0;
38 };
39 
40 
41 #endif
Abstract_robot_element::bounds_
std::vector< tf2::Transform > bounds_
Definition: robot_element/abstract_robot_element.h:14
Abstract_robot_element::set_world_tf
void set_world_tf(tf2::Transform &tf)
Definition: robot_element/abstract_robot_element.h:28
Abstract_robot_element::Abstract_robot_element
Abstract_robot_element(tf2::Transform tf, std::string name, tf2::Vector3 size)
Definition: robot_element/abstract_robot_element.h:17
Abstract_robot_element::relative_tf_
tf2::Transform relative_tf_
Definition: impl/abstract_robot_element.h:11
Abstract_robot_element::name
virtual std::string & name()=0
Abstract_robot_element::world_tf_
tf2::Transform world_tf_
Definition: impl/abstract_robot_element.h:12
Abstract_robot_element::bounds
virtual std::vector< tf2::Transform > & bounds()=0
Abstract_robot_element::size
virtual tf2::Vector3 & size()=0
Abstract_robot_element::calc_world_tf
void calc_world_tf(tf2::Transform &tf)
Definition: robot_element/abstract_robot_element.h:27
Abstract_robot_element
Definition: impl/abstract_robot_element.h:9
Abstract_robot_element::set_relative_tf
void set_relative_tf(tf2::Transform tf)
Definition: robot_element/abstract_robot_element.h:25
Abstract_robot_element::name_
std::string name_
Definition: robot_element/abstract_robot_element.h:9
Abstract_robot_element::size_
tf2::Vector3 size_
Definition: robot_element/abstract_robot_element.h:12
Abstract_robot_element::relative_tf
tf2::Transform & relative_tf()
Definition: robot_element/abstract_robot_element.h:24
Abstract_robot_element::world_tf
tf2::Transform & world_tf()
Definition: impl/abstract_robot_element.h:21
Abstract_robot_element::update
virtual void update(tf2::Transform &tf)=0


multi_cell_builder
Author(s): MA
autogenerated on Thu Jan 12 2023 23:45:43