Loading...
Searching...
No Matches
BaseCamera Class Referenceabstract

Abstract base class for the perspective and orthographic cameras. More...

`#include <openvdb/tools/RayTracer.h>`

Inheritance diagram for BaseCamera:

## Public Member Functions

| BaseCamera (Film &film, const Vec3R &rotation, const Vec3R &translation, double frameWidth, double nearPlane, double farPlane)
virtual | ~BaseCamera ()
Film::RGBA & | pixel (size_t i, size_t j)
size_t | width () const
size_t | height () const
void | lookAt (const Vec3R &xyz, const Vec3R &up=Vec3R(0.0, 1.0, 0.0))
Vec3R | rasterToScreen (double i, double j, double z) const
virtual math::Ray< double > | getRay (size_t i, size_t j, double iOffset=0.5, double jOffset=0.5) const =0
| Return a Ray in world space given the pixel indices and optional offsets in the range [0, 1]. An offset of 0.5 corresponds to the center of the pixel.

## Protected Member Functions

void | initRay (double t0, double t1)

## Protected Attributes

Film * | mFilm
double | mScaleWidth
double | mScaleHeight
math::Ray< double > | mRay
math::AffineMap | mScreenToWorld

## Detailed Description

Abstract base class for the perspective and orthographic cameras.

## Constructor & Destructor Documentation

## BaseCamera()

BaseCamera | ( | Film & | film,
|  | const Vec3R & | rotation,
|  | const Vec3R & | translation,
|  | double | frameWidth,
|  | double | nearPlane,
|  | double | farPlane )

inline

## ~BaseCamera()

virtual ~BaseCamera | ( |  | ) |

inlinevirtual

## Member Function Documentation

## getRay()

virtual math::Ray< double > getRay | ( | size_t | i,
|  | size_t | j,
|  | double | iOffset = 0.5,
|  | double | jOffset = 0.5 ) const

pure virtual

Return a Ray in world space given the pixel indices and optional offsets in the range [0, 1]. An offset of 0.5 corresponds to the center of the pixel.

Implemented in OrthographicCamera, and PerspectiveCamera.

## height()

size_t height | ( |  | ) | const

inline

## initRay()

void initRay | ( | double | t0,
|  | double | t1 )

inlineprotected

## lookAt()

void lookAt | ( | const Vec3R & | xyz,
|  | const Vec3R & | up = Vec3R(0.0, 1.0, 0.0) )

inline

Rotate the camera so its negative z-axis points at xyz and its y axis is in the plane of the xyz and up vectors. In other words the camera will look at xyz and use up as the horizontal direction.

## pixel()

Film::RGBA & pixel | ( | size_t | i,
|  | size_t | j )

inline

## rasterToScreen()

Vec3R rasterToScreen | ( | double | i,
|  | double | j,
|  | double | z ) const

inline

## width()

size_t width | ( |  | ) | const

inline

## Member Data Documentation

## mFilm

Film* mFilm

protected

## mRay

math::Ray<double> mRay

protected

## mScaleHeight

double mScaleHeight

protected

## mScaleWidth

double mScaleWidth

protected

## mScreenToWorld

math::AffineMap mScreenToWorld

protected