OpenVDB  12.0.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BaseCamera Class Referenceabstract

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

#include <openvdb/tools/RayTracer.h>

Inherited by OrthographicCamera, and PerspectiveCamera.

Public Member Functions

 BaseCamera (Film &film, const Vec3R &rotation, const Vec3R &translation, double frameWidth, double nearPlane, double farPlane)
 
virtual ~BaseCamera ()
 
Film::RGBApixel (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. More...
 

Protected Member Functions

void initRay (double t0, double t1)
 

Protected Attributes

FilmmFilm
 
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 ( Film film,
const Vec3R rotation,
const Vec3R translation,
double  frameWidth,
double  nearPlane,
double  farPlane 
)
inline
virtual ~BaseCamera ( )
inlinevirtual

Member Function Documentation

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.

size_t height ( ) const
inline
void initRay ( double  t0,
double  t1 
)
inlineprotected
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.

Film::RGBA& pixel ( size_t  i,
size_t  j 
)
inline
Vec3R rasterToScreen ( double  i,
double  j,
double  z 
) const
inline
size_t width ( ) const
inline

Member Data Documentation

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