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

Camera which defines mapping from 3D spatial coordinates to 2D image coordinates. More...

#include <camera.h>

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

Public Types

using image_coordinates_type = Eigen_vec2
 2D image coordinates, range and scale defined by subclass. More...
 

Public Member Functions

 camera (const camera &)=default
 
cameraoperator= (const camera &)=default
 
virtual ~camera ()=default
 
Eigen_affine3 view_transformation () const
 Extrinsic parameters of camera. More...
 
Eigen_vec3 center_ray_direction () const
 Direction vector of ray -Z pointing straight out camera. More...
 
Eigen_vec3 ray_direction (const spherical_coordinates &sp) const
 Direction vector of ray pointing to point with spherical coordinates sp. More...
 
Eigen_vec3 ray_direction (const Eigen_vec3 &p) const
 Direction vector of ray pointing to point p. More...
 
float distance_sq (const Eigen_vec3 &p) const
 Squared distance of 3D point p to camera center. More...
 
float distance (const Eigen_vec3 &p) const
 Distance of 3D point p to camera center. More...
 
spherical_coordinates to_spherical (const Eigen_vec3 &p) const
 Convert 3D point cartesian coordinates p to spherical. More...
 
Eigen_vec3 point (const spherical_coordinates &sp) const
 Convert 3D point spherical coordinates sp to cartesian. More...
 
virtual image_coordinates_type project (const Eigen_vec3 &p) const =0
 Project point p to image coordinates. More...
 
virtual image_coordinates_type project (const spherical_coordinates &sp) const
 Project point with spherical coordinates sp to image coordinates. More...
 
virtual Eigen_vec3 ray_direction (const image_coordinates_type &c) const =0
 Direction vector of ray pointing to point corresponding to image coordinates c. More...
 
- Public Member Functions inherited from mf::space_object
 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

 camera ()=default
 
 camera (const pose &)
 
- Protected Member Functions inherited from mf::space_object
virtual void do_update_pose ()
 

Detailed Description

Camera which defines mapping from 3D spatial coordinates to 2D image coordinates.

Inherited space object pose defines extrinsic camera parameters. Camera points in -Z or +Z direction in its coordinate system. 3D points taken as function arguments are always in coordinate system of parent space object.

Member Typedef Documentation

2D image coordinates, range and scale defined by subclass.

Constructor & Destructor Documentation

mf::camera::camera ( )
protecteddefault
mf::camera::camera ( const pose ps)
explicitprotected
mf::camera::camera ( const camera )
default
virtual mf::camera::~camera ( )
virtualdefault

Member Function Documentation

Eigen_vec3 mf::camera::center_ray_direction ( ) const
inline

Direction vector of ray -Z pointing straight out camera.

Relative to parent space object coordinate system.

float mf::camera::distance ( const Eigen_vec3 p) const

Distance of 3D point p to camera center.

float mf::camera::distance_sq ( const Eigen_vec3 p) const

Squared distance of 3D point p to camera center.

camera& mf::camera::operator= ( const camera )
default
Eigen_vec3 mf::camera::point ( const spherical_coordinates sp) const

Convert 3D point spherical coordinates sp to cartesian.

virtual image_coordinates_type mf::camera::project ( const Eigen_vec3 p) const
pure virtual

Project point p to image coordinates.

Implemented by subclass.

Implemented in mf::projection_camera.

virtual image_coordinates_type mf::camera::project ( const spherical_coordinates sp) const
inlinevirtual

Project point with spherical coordinates sp to image coordinates.

Subclass may implemented more efficient version.

Eigen_vec3 mf::camera::ray_direction ( const spherical_coordinates sp) const
inline

Direction vector of ray pointing to point with spherical coordinates sp.

Eigen_vec3 mf::camera::ray_direction ( const Eigen_vec3 p) const

Direction vector of ray pointing to point p.

virtual Eigen_vec3 mf::camera::ray_direction ( const image_coordinates_type c) const
pure virtual

Direction vector of ray pointing to point corresponding to image coordinates c.

Implemented by subclass.

Implemented in mf::projection_camera.

spherical_coordinates mf::camera::to_spherical ( const Eigen_vec3 p) const

Convert 3D point cartesian coordinates p to spherical.

Eigen_affine3 mf::camera::view_transformation ( ) const

Extrinsic parameters of camera.

Transformation from parent space object coordinate system to coordinate system of the camera.


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