Static Public Member Functions | Private Member Functions | List of all members
vpgl_ray Class Reference

#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). More...
 
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. More...
 
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. More...
 
static bool ray (const vpgl_camera< double > *cam, vgl_point_2d< double > image_pt, vgl_point_2d< double > const &inital_guess, double origin_z, double dz, vgl_ray_3d< double > &ray)
 vgl interface, origin_z defines an x-y plane wherein lies the ray origin. More...
 
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. More...
 
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. More...
 
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. More...
 
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). More...
 
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). More...
 
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. More...
 
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. More...
 
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. More...
 
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). More...
 
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)). More...
 

Private Member Functions

 vpgl_ray ()=delete
 constructor/destructor private - static methods only. More...
 
 ~vpgl_ray ()=delete
 

Detailed Description

Definition at line 20 of file vpgl_ray.h.

Constructor & Destructor Documentation

◆ vpgl_ray()

vpgl_ray::vpgl_ray ( )
privatedelete

constructor/destructor private - static methods only.

◆ ~vpgl_ray()

vpgl_ray::~vpgl_ray ( )
privatedelete

Member Function Documentation

◆ angle_between_rays()

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 271 of file vpgl_ray.cxx.

◆ plane_ray()

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 188 of file vpgl_ray.cxx.

◆ principal_ray() [1/2]

bool vpgl_ray::principal_ray ( vpgl_proj_camera< double > const &  cam,
vgl_ray_3d< double > &  pray 
)
static

Definition at line 239 of file vpgl_ray.cxx.

◆ principal_ray() [2/2]

static bool vpgl_ray::principal_ray ( vpgl_perspective_camera< double > const &  cam,
vgl_ray_3d< double > &  pray 
)
inlinestatic

Definition at line 107 of file vpgl_ray.h.

◆ ray() [1/12]

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 19 of file vpgl_ray.cxx.

◆ ray() [2/12]

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 54 of file vpgl_ray.cxx.

◆ ray() [3/12]

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 67 of file vpgl_ray.cxx.

◆ ray() [4/12]

bool vpgl_ray::ray ( const vpgl_camera< double > *  cam,
vgl_point_2d< double >  image_pt,
vgl_point_2d< double > const &  inital_guess,
double  origin_z,
double  dz,
vgl_ray_3d< double > &  ray 
)
static

vgl interface, origin_z defines an x-y plane wherein lies the ray origin.

and dz defines a plane to compute a second intersection point for the ray direction the inital guess is for the x and y values where the ray intersects the z planes

Definition at line 86 of file vpgl_ray.cxx.

◆ ray() [5/12]

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 103 of file vpgl_ray.cxx.

◆ ray() [6/12]

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 112 of file vpgl_ray.cxx.

◆ ray() [7/12]

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 122 of file vpgl_ray.cxx.

◆ ray() [8/12]

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 138 of file vpgl_ray.cxx.

◆ ray() [9/12]

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 176 of file vpgl_ray.cxx.

◆ ray() [10/12]

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 228 of file vpgl_ray.cxx.

◆ ray() [11/12]

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 253 of file vpgl_ray.cxx.

◆ ray() [12/12]

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 263 of file vpgl_ray.cxx.

◆ rot_about_ray()

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 282 of file vpgl_ray.cxx.

◆ rot_to_point_ray() [1/2]

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 301 of file vpgl_ray.cxx.

◆ rot_to_point_ray() [2/2]

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 310 of file vpgl_ray.cxx.


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