Euclid
Geometry Processing and Shape Analysis in C++
Euclid::RayCamera Class Referenceabstract

A camera model used for ray tracing.

#include <RayTracer.h>

Inheritance diagram for Euclid::RayCamera:
Euclid::Camera Euclid::OrthoRayCamera Euclid::PerspRayCamera

Classes

struct  Film
 The film plane of a camera. More...
 

Public Member Functions

 RayCamera ()=default
 Create a RayCamera.
 
 RayCamera (const Vec3 &position, const Vec3 &focus, const Vec3 &up, float tnear, float tfar)
 Create a RayCamera. More...
 
virtual RTCRayHit gen_ray (float s, float t) const =0
 Generate an embree rayhit structure. More...
 
- Public Member Functions inherited from Euclid::Camera
 Camera ()=default
 Create a Camera with default paramters.
 
 Camera (const Vec3 &position, const Vec3 &focus, const Vec3 &up, float tnear, float tfar)
 Create a Camera. More...
 
void lookat (const Vec3 &position, const Vec3 &focus, const Vec3 &up)
 Pose the camera according to the parameteres.
 
void set_range (float tnear, float tfar)
 Set the range of the ray. More...
 

Public Attributes

Film film
 The film plane. More...
 
- Public Attributes inherited from Euclid::Camera
Eigen::Vector3f pos { 0.0f, 0.0f, 0.0f }
 Position.
 
Eigen::Vector3f u { 1.0f, 0.0f, 0.0f }
 Right vector.
 
Eigen::Vector3f v { 0.0f, 1.0f, 0.0f }
 Up vector.
 
Eigen::Vector3f dir { 0.0f, 0.0f, 1.0f }
 Negative view vector.
 
float tnear = 0.0f
 The near plane.
 
float tfar = std::numeric_limits<float>::max()
 The far plane.
 

Additional Inherited Members

- Public Types inherited from Euclid::Camera
using Vec3 = Eigen::Vector3f
 

Constructor & Destructor Documentation

Euclid::RayCamera::RayCamera ( const Vec3 &  position,
const Vec3 &  focus,
const Vec3 &  up,
float  tnear,
float  tfar 
)
inline
Parameters
positionPosition.
focusFocus.
upRough up direction.
tnearThe near clipping plane.
tfarThe far clipping plane.

Member Function Documentation

virtual RTCRayHit Euclid::RayCamera::gen_ray ( float  s,
float  t 
) const
pure virtual

The ray's origin be at the pixel (s, t) on the film plane and points to the camera viewing direction.

Implemented in Euclid::OrthoRayCamera, and Euclid::PerspRayCamera.

Member Data Documentation

Film Euclid::RayCamera::film
Parameters
tnearThe near range of ray.
tfarThe far range of ray.

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