7 #include "../space_object.h"
8 #include "../geometry/spherical_coordinates.h"
Eigen_vec2 image_coordinates_type
2D image coordinates, range and scale defined by subclass.
Definition: camera.h:25
Eigen_vec3 point(const spherical_coordinates &sp) const
Convert 3D point spherical coordinates sp to cartesian.
Definition: camera.cc:29
Eigen_affine3 view_transformation() const
Extrinsic parameters of camera.
Definition: camera.cc:9
Eigen_mat< 2, 1 > Eigen_vec2
Definition: eigen.h:24
Eigen_vec3 center_ray_direction() const
Direction vector of ray -Z pointing straight out camera.
Definition: camera.h:35
spherical_coordinates to_spherical(const Eigen_vec3 &p) const
Convert 3D point cartesian coordinates p to spherical.
Definition: camera.cc:25
Camera which defines mapping from 3D spatial coordinates to 2D image coordinates. ...
Definition: camera.h:16
Eigen::Transform< Eigen_scalar, 3, Eigen::Affine > Eigen_affine3
Definition: eigen.h:37
float distance(const Eigen_vec3 &p) const
Distance of 3D point p to camera center.
Definition: camera.cc:21
camera & operator=(const camera &)=default
virtual ~camera()=default
Position and orientation in space.
Definition: pose.h:15
float distance_sq(const Eigen_vec3 &p) const
Squared distance of 3D point p to camera center.
Definition: camera.cc:17
virtual image_coordinates_type project(const Eigen_vec3 &p) const =0
Project point p to image coordinates.
Spherical coordinates.
Definition: spherical_coordinates.h:16
Eigen_vec3 ray_direction(const spherical_coordinates &sp) const
Direction vector of ray pointing to point with spherical coordinates sp.
Definition: camera.h:40
Object that has a pose in 3D space relative to a coordinate system, base class.
Definition: space_object.h:19
virtual image_coordinates_type project(const spherical_coordinates &sp) const
Project point with spherical coordinates sp to image coordinates.
Definition: camera.h:65
Eigen_mat< 3, 1 > Eigen_vec3
Definition: eigen.h:25