1 #ifndef MF_SPACE_OBJECT_H_
2 #define MF_SPACE_OBJECT_H_
22 std::set<space_object*> children_;
27 void detach_from_parent_();
28 void detach_from_children_();
29 void attach_to_parent_();
60 template<
typename Transformation>
65 template<
typename Transformation>
space_object & operator=(const space_object &)
Definition: space_object.cc:25
Eigen_affine3 transformation_to_world() const
Affine transformation from pose coordinate system to world space.
Definition: pose.cc:30
void set_relative_pose(const pose &)
Definition: space_object.cc:87
virtual bounding_box box() const
Definition: space_object.cc:126
pose absolute_pose() const
Definition: space_object.cc:79
const pose & relative_pose() const
Definition: space_object.cc:74
Eigen_affine3 pose_transformation(const space_object &from, const space_object &to)
Definition: space_object.h:88
void move(float x, float y, float z)
Definition: space_object.h:73
void set_no_parent(const pose &new_pose=pose())
Definition: space_object.cc:102
void move(const Eigen_vec3 &t)
Definition: space_object.h:72
Eigen::Transform< Eigen_scalar, 3, Eigen::Affine > Eigen_affine3
Definition: eigen.h:37
void rotate_z_axis(angle a, const Eigen_vec3 &c=Eigen_vec3::Zero())
Definition: space_object.cc:156
void look_at(const space_object &)
Definition: space_object.cc:163
void rotate_x_axis(angle a, const Eigen_vec3 &c=Eigen_vec3::Zero())
Definition: space_object.cc:144
Position and orientation in space.
Definition: pose.h:15
space_object(const pose &=pose())
Definition: space_object.cc:15
virtual void do_update_pose()
Definition: space_object.h:32
void move_z(float z)
Definition: space_object.h:76
bool has_parent_space_object() const
Definition: space_object.cc:58
void set_parent(space_object &, const pose &new_relative_pose=pose())
Definition: space_object.cc:93
void transform(const Transformation &t)
Definition: space_object.h:61
Eigen::Translation< Eigen_scalar, 3 > Eigen_translation3
Definition: eigen.h:33
virtual ~space_object()
Definition: space_object.cc:37
void set_no_relative_pose()
Definition: space_object.h:50
Axis-aligned 3D cuboid bounding box.
Definition: bounding_box.h:16
Eigen_affine3 transformation_to(const space_object &) const
Definition: space_object.cc:132
void transform(const Transformation &rt, const space_object &relative_to)
Definition: space_object.h:66
void make_sibling(const space_object &, const pose &new_pose=pose())
Definition: space_object.cc:109
Object that has a pose in 3D space relative to a coordinate system, base class.
Definition: space_object.h:19
Eigen_affine3 transformation_from(const space_object &) const
Definition: space_object.cc:139
void move_x(float x)
Definition: space_object.h:74
void move_y(float y)
Definition: space_object.h:75
void rotate_y_axis(angle a, const Eigen_vec3 &c=Eigen_vec3::Zero())
Definition: space_object.cc:150
Angle, represented in radiants.
Definition: angle.h:12
const space_object & parent_space_object() const
Definition: space_object.cc:63
Eigen_mat< 3, 1 > Eigen_vec3
Definition: eigen.h:25