#include <vpgl_ray.h>
Static Public Member Functions | |
static bool | ray (const vpgl_camera< double > *cam, vnl_double_3 const &point_3d, vnl_double_3 &ray) |
Generic camera interfaces (pointer for abstract class). | |
static bool | ray (const vpgl_camera< double > *cam, vgl_point_3d< double > const &point_3d, vgl_vector_3d< double > &ray) |
compute the ray at a given 3-d point. | |
static bool | ray (const vpgl_camera< double > *cam, vgl_point_3d< double > const &point_3d, double origin_z, vgl_ray_3d< double > &ray) |
vgl interface, origin_z defines an x-y plane wherein lies the ray origin. | |
static bool | ray (vpgl_rational_camera< double > const &rcam, vnl_double_3 const &point_3d, vnl_double_3 &ray) |
compute the ray at a given 3-d point. | |
static bool | ray (vpgl_rational_camera< double > const &rcam, vgl_point_3d< double > const &point_3d, vgl_vector_3d< double > &ray) |
compute the ray at a given 3-d point. | |
static bool | ray (vpgl_rational_camera< double > const &rcam, vgl_point_3d< double > const &point_3d, vgl_ray_3d< double > &ray) |
compute the ray at a given 3-d point. | |
static bool | ray (vpgl_local_rational_camera< double > const &lrcam, const double u, const double v, vgl_point_3d< double > &origin, vgl_vector_3d< double > &dir) |
compute a ray in local Cartesian coordinates at a given (u, v). | |
static bool | ray (vpgl_local_rational_camera< double > const &lrcam, const double u, const double v, vgl_ray_3d< double > &ray) |
compute a ray in local Cartesian coordinates at a given (u, v). | |
static bool | plane_ray (vpgl_local_rational_camera< double > const &lrcam, const vgl_point_2d< double > image_point1, const vgl_point_2d< double > image_point2, vgl_plane_3d< double > &plane) |
compute a ray in local Cartesian coordinates for a local rational cam. | |
static bool | ray (vpgl_proj_camera< double > const &cam, vgl_point_3d< double > const &world_pt, vgl_ray_3d< double > &ray) |
static bool | principal_ray (vpgl_proj_camera< double > const &cam, vgl_ray_3d< double > &pray) |
static bool | ray (vpgl_perspective_camera< double > const &cam, vgl_point_3d< double > const &world_pt, vgl_ray_3d< double > &ray) |
static bool | principal_ray (vpgl_perspective_camera< double > const &cam, vgl_ray_3d< double > &pray) |
static bool | ray (vpgl_generic_camera< double > const &cam, vgl_point_3d< double > const &world_pt, vgl_ray_3d< double > &ray) |
static double | angle_between_rays (vgl_rotation_3d< double > const &r0, vgl_rotation_3d< double > const &r1) |
angle(radians) between principal ray of one rotation and the principal ray of a second rotation. | |
static double | rot_about_ray (vgl_rotation_3d< double > const &r0, vgl_rotation_3d< double > const &r1) |
the rotation about the principal ray required to go from r0 to r1 . | |
static vgl_rotation_3d< double > | rot_to_point_ray (vgl_vector_3d< double > const &ray_dir) |
the rotation required to point the principal ray in a given direction, starting with the identity camera (principal ray in z direction). | |
static vgl_rotation_3d< double > | rot_to_point_ray (double azimuth, double elevation) |
define the principal ray in spherical coordinates (in degrees, azimuth [0 360], elevation [0, 180], x axis = (0, 90), y axis = (90, 90, z axis = (0, 0)). | |
Private Member Functions | |
vpgl_ray () | |
constructor/destructor private - static methods only. | |
~vpgl_ray () |
Definition at line 20 of file vpgl_ray.h.
vpgl_ray::vpgl_ray | ( | ) | [private] |
constructor/destructor private - static methods only.
vpgl_ray::~vpgl_ray | ( | ) | [private] |
double vpgl_ray::angle_between_rays | ( | vgl_rotation_3d< double > const & | r0, |
vgl_rotation_3d< double > const & | r1 | ||
) | [static] |
angle(radians) between principal ray of one rotation and the principal ray of a second rotation.
Rotations r0
and r1
are expressed as vgl_rotation<T>
Definition at line 253 of file vpgl_ray.cxx.
bool vpgl_ray::plane_ray | ( | vpgl_local_rational_camera< double > const & | lrcam, |
const vgl_point_2d< double > | image_point1, | ||
const vgl_point_2d< double > | image_point2, | ||
vgl_plane_3d< double > & | plane | ||
) | [static] |
compute a ray in local Cartesian coordinates for a local rational cam.
Definition at line 170 of file vpgl_ray.cxx.
bool vpgl_ray::principal_ray | ( | vpgl_proj_camera< double > const & | cam, |
vgl_ray_3d< double > & | pray | ||
) | [static] |
Definition at line 221 of file vpgl_ray.cxx.
static bool vpgl_ray::principal_ray | ( | vpgl_perspective_camera< double > const & | cam, |
vgl_ray_3d< double > & | pray | ||
) | [inline, static] |
Definition at line 98 of file vpgl_ray.h.
bool vpgl_ray::ray | ( | const vpgl_camera< double > * | cam, |
vnl_double_3 const & | point_3d, | ||
vnl_double_3 & | ray | ||
) | [static] |
Generic camera interfaces (pointer for abstract class).
Solves using back-project so will work for any camera The ray direction assumes the camera is in the positive half-space of the x-y plane. This assumption is necessary since some cameras don't have a natural center of projection (e.g. rational cameras). compute the ray at a given 3-d point.
Definition at line 18 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | const vpgl_camera< double > * | cam, |
vgl_point_3d< double > const & | point_3d, | ||
vgl_vector_3d< double > & | ray | ||
) | [static] |
compute the ray at a given 3-d point.
Definition at line 53 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | const vpgl_camera< double > * | cam, |
vgl_point_3d< double > const & | point_3d, | ||
double | origin_z, | ||
vgl_ray_3d< double > & | ray | ||
) | [static] |
vgl interface, origin_z defines an x-y plane wherein lies the ray origin.
Definition at line 66 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_rational_camera< double > const & | rcam, |
vnl_double_3 const & | point_3d, | ||
vnl_double_3 & | ray | ||
) | [static] |
compute the ray at a given 3-d point.
Definition at line 85 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_rational_camera< double > const & | rcam, |
vgl_point_3d< double > const & | point_3d, | ||
vgl_vector_3d< double > & | ray | ||
) | [static] |
compute the ray at a given 3-d point.
Definition at line 94 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_rational_camera< double > const & | rcam, |
vgl_point_3d< double > const & | point_3d, | ||
vgl_ray_3d< double > & | ray | ||
) | [static] |
compute the ray at a given 3-d point.
Definition at line 104 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_local_rational_camera< double > const & | lrcam, |
const double | u, | ||
const double | v, | ||
vgl_point_3d< double > & | origin, | ||
vgl_vector_3d< double > & | dir | ||
) | [static] |
compute a ray in local Cartesian coordinates at a given (u, v).
Definition at line 120 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_local_rational_camera< double > const & | lrcam, |
const double | u, | ||
const double | v, | ||
vgl_ray_3d< double > & | ray | ||
) | [static] |
compute a ray in local Cartesian coordinates at a given (u, v).
Definition at line 158 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_proj_camera< double > const & | cam, |
vgl_point_3d< double > const & | world_pt, | ||
vgl_ray_3d< double > & | ray | ||
) | [static] |
Definition at line 210 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_perspective_camera< double > const & | cam, |
vgl_point_3d< double > const & | world_pt, | ||
vgl_ray_3d< double > & | ray | ||
) | [static] |
Definition at line 235 of file vpgl_ray.cxx.
bool vpgl_ray::ray | ( | vpgl_generic_camera< double > const & | cam, |
vgl_point_3d< double > const & | world_pt, | ||
vgl_ray_3d< double > & | ray | ||
) | [static] |
Definition at line 245 of file vpgl_ray.cxx.
double vpgl_ray::rot_about_ray | ( | vgl_rotation_3d< double > const & | r0, |
vgl_rotation_3d< double > const & | r1 | ||
) | [static] |
the rotation about the principal ray required to go from r0
to r1
.
Definition at line 264 of file vpgl_ray.cxx.
vgl_rotation_3d< double > vpgl_ray::rot_to_point_ray | ( | vgl_vector_3d< double > const & | ray_dir | ) | [static] |
the rotation required to point the principal ray in a given direction, starting with the identity camera (principal ray in z direction).
Definition at line 283 of file vpgl_ray.cxx.
vgl_rotation_3d< double > vpgl_ray::rot_to_point_ray | ( | double | azimuth, |
double | elevation | ||
) | [static] |
define the principal ray in spherical coordinates (in degrees, azimuth [0 360], elevation [0, 180], x axis = (0, 90), y axis = (90, 90, z axis = (0, 0)).
Definition at line 292 of file vpgl_ray.cxx.