mf
Media Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Member Functions | List of all members
mf::space_object Class Reference

Object that has a pose in 3D space relative to a coordinate system, base class. More...

#include <space_object.h>

Inheritance diagram for mf::space_object:
mf::camera mf::depth_camera mf::projection_camera mf::projection_image_camera< Depth >

Public Member Functions

 space_object (const pose &=pose())
 
 space_object (const pose &, space_object &par)
 
 space_object (const space_object &)
 
space_objectoperator= (const space_object &)
 
virtual ~space_object ()
 
bool has_parent_space_object () const
 
const space_objectparent_space_object () const
 
space_objectparent_space_object ()
 
const poserelative_pose () const
 
pose absolute_pose () const
 
void set_relative_pose (const pose &)
 
void set_no_relative_pose ()
 
Eigen_affine3 transformation_from (const space_object &) const
 
Eigen_affine3 transformation_to (const space_object &) const
 
void set_parent (space_object &, const pose &new_relative_pose=pose())
 
void set_no_parent (const pose &new_pose=pose())
 
void make_sibling (const space_object &, const pose &new_pose=pose())
 
template<typename Transformation >
void transform (const Transformation &t)
 
template<typename Transformation >
void transform (const Transformation &rt, const space_object &relative_to)
 
void move (const Eigen_vec3 &t)
 
void move (float x, float y, float z)
 
void move_x (float x)
 
void move_y (float y)
 
void move_z (float z)
 
void rotate_x_axis (angle a, const Eigen_vec3 &c=Eigen_vec3::Zero())
 
void rotate_y_axis (angle a, const Eigen_vec3 &c=Eigen_vec3::Zero())
 
void rotate_z_axis (angle a, const Eigen_vec3 &c=Eigen_vec3::Zero())
 
void look_at (const space_object &)
 
virtual bounding_box box () const
 

Protected Member Functions

virtual void do_update_pose ()
 

Detailed Description

Object that has a pose in 3D space relative to a coordinate system, base class.

Can have a parent space object, meaning its pose will be defined relative to that parent. No parent means pose is absolute. Parent can be reassigned. Keeps references to its children, Guarantees that pointers to parent or children get properly removed when either child or parent gets deleted.

Constructor & Destructor Documentation

mf::space_object::space_object ( const pose ps = pose())
explicit
mf::space_object::space_object ( const pose ps,
space_object par 
)
mf::space_object::space_object ( const space_object obj)
mf::space_object::~space_object ( )
virtual

Member Function Documentation

pose mf::space_object::absolute_pose ( ) const
bounding_box mf::space_object::box ( ) const
virtual
virtual void mf::space_object::do_update_pose ( )
inlineprotectedvirtual

Reimplemented in mf::projection_camera.

bool mf::space_object::has_parent_space_object ( ) const
void mf::space_object::look_at ( const space_object obj)
void mf::space_object::make_sibling ( const space_object obj,
const pose new_pose = pose() 
)
void mf::space_object::move ( const Eigen_vec3 t)
inline
void mf::space_object::move ( float  x,
float  y,
float  z 
)
inline
void mf::space_object::move_x ( float  x)
inline
void mf::space_object::move_y ( float  y)
inline
void mf::space_object::move_z ( float  z)
inline
space_object & mf::space_object::operator= ( const space_object obj)
const space_object & mf::space_object::parent_space_object ( ) const
space_object & mf::space_object::parent_space_object ( )
const pose & mf::space_object::relative_pose ( ) const
void mf::space_object::rotate_x_axis ( angle  a,
const Eigen_vec3 c = Eigen_vec3::Zero() 
)
void mf::space_object::rotate_y_axis ( angle  a,
const Eigen_vec3 c = Eigen_vec3::Zero() 
)
void mf::space_object::rotate_z_axis ( angle  a,
const Eigen_vec3 c = Eigen_vec3::Zero() 
)
void mf::space_object::set_no_parent ( const pose new_pose = pose())
void mf::space_object::set_no_relative_pose ( )
inline
void mf::space_object::set_parent ( space_object par,
const pose new_relative_pose = pose() 
)
void mf::space_object::set_relative_pose ( const pose ps)
template<typename Transformation >
void mf::space_object::transform ( const Transformation &  t)
inline
template<typename Transformation >
void mf::space_object::transform ( const Transformation &  rt,
const space_object relative_to 
)
inline
Eigen::Affine3f mf::space_object::transformation_from ( const space_object obj) const
Eigen::Affine3f mf::space_object::transformation_to ( const space_object obj) const

The documentation for this class was generated from the following files: