Euclid
Geometry Processing and Shape Analysis in C++
Euclid::OrthoRayCamera Class Reference

A RayCamera using orthographic projection. More...

#include <RayTracer.h>

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

Public Member Functions

 OrthoRayCamera ()=default
 Create an OrthoRayCamera using default parameters.
 
 OrthoRayCamera (const Vec3 &position, const Vec3 &focus, const Vec3 &up, float xextent, float yextent, float tnear, float tfar)
 Create an OrthoRayCamera. More...
 
void set_extent (float xextent, float yextent)
 Set the extent of the film plane.
 
RTCRayHit gen_ray (float s, float t) const override
 Generate an embree rayhit structure. More...
 
- Public Member Functions inherited from Euclid::RayCamera
 RayCamera ()=default
 Create a RayCamera.
 
 RayCamera (const Vec3 &position, const Vec3 &focus, const Vec3 &up, float tnear, float tfar)
 Create a RayCamera. 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...
 

Additional Inherited Members

- Public Types inherited from Euclid::Camera
using Vec3 = Eigen::Vector3f
 
- Public Attributes inherited from Euclid::RayCamera
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.
 

Detailed Description

The range of visible frustum of an orthographic camera is determined by the extent of film plane in world space.

Constructor & Destructor Documentation

Euclid::OrthoRayCamera::OrthoRayCamera ( const Vec3 &  position,
const Vec3 &  focus,
const Vec3 &  up,
float  xextent,
float  yextent,
float  tnear,
float  tfar 
)
inline

In addition to camera position and orientation, an orthogonal camera specifies width and height of the film plane directly.

Parameters
positionPosition.
focusFocus.
upRough up direction.
xextentWidth of the film plane in world space.
yextentHeight of the film plane in world space.
tnearThe near clipping plane.
tfarThe far clipping plane.

Member Function Documentation

RTCRayHit Euclid::OrthoRayCamera::gen_ray ( float  s,
float  t 
) const
inlineoverridevirtual

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

Implements Euclid::RayCamera.


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