lux::PerspectiveCamera Class Reference

#include <perspective.h>

Inheritance diagram for lux::PerspectiveCamera:

lux::ProjectiveCamera lux::Camera

List of all members.

Public Member Functions

 PerspectiveCamera (const Transform &world2cam, const float Screen[4], float hither, float yon, float sopen, float sclose, float lensr, float focald, bool autofocus, float fov, Film *film)
float GenerateRay (const Sample &sample, Ray *) const
SWCSpectrum Sample_W (const Scene *scene, float u1, float u2, BSDF **bsdf, float *pdf) const
SWCSpectrum Sample_W (const Scene *scene, const Point &p, const Normal &n, float u1, float u2, BSDF **bsdf, float *pdf, float *pdfDirect, VisibilityTester *visibility) const
float Pdf (const Point &p, const Normal &n, const Vector &wi) const
void GetSamplePosition (const Point &p, const Vector &wi, float *x, float *y) const
bool IsVisibleFromEyes (const Scene *scene, const Point &lenP, const Point &worldP, Sample *sample_gen, Ray *ray_gen) const
float GetConnectingFactor (const Point &lenP, const Point &worldP, const Vector &wo, const Normal &n) const
void GetFlux2RadianceFactors (Film *film, float *factors, int xPixelCount, int yPixelCount) const
bool IsDelta () const
bool Intersect (const Ray &ray, Intersection *isect) const
void SamplePosition (float u1, float u2, Point *p, float *pdf) const
float EvalPositionPdf () const
void AutoFocus (Scene *scene)

Static Public Member Functions

static CameraCreateCamera (const ParamSet &params, const Transform &world2cam, Film *film)

Private Attributes

Point pos
Normal normal
float fov
float posPdf
float screen [4]
float R
float xWidth
float yHeight
float xPixelWidth
float yPixelHeight
float Apixel
bool autoFocus
boost::shared_ptr< Shapelens


Detailed Description

Definition at line 33 of file perspective.h.


Constructor & Destructor Documentation

PerspectiveCamera::PerspectiveCamera ( const Transform world2cam,
const float  Screen[4],
float  hither,
float  yon,
float  sopen,
float  sclose,
float  lensr,
float  focald,
bool  autofocus,
float  fov,
Film film 
)


Member Function Documentation

void PerspectiveCamera::AutoFocus ( Scene scene  )  [virtual]

Camera * PerspectiveCamera::CreateCamera ( const ParamSet params,
const Transform world2cam,
Film film 
) [static]

float PerspectiveCamera::EvalPositionPdf (  )  const [virtual]

Reimplemented from lux::Camera.

Definition at line 349 of file perspective.cpp.

References lux::ProjectiveCamera::LensRadius, and posPdf.

float PerspectiveCamera::GenerateRay ( const Sample sample,
Ray ray 
) const [virtual]

float PerspectiveCamera::GetConnectingFactor ( const Point lenP,
const Point worldP,
const Vector wo,
const Normal n 
) const [virtual]

Reimplemented from lux::Camera.

Definition at line 308 of file perspective.cpp.

References lux::AbsDot(), lux::DistanceSquared(), and normal.

void PerspectiveCamera::GetFlux2RadianceFactors ( Film film,
float *  factors,
int  xPixelCount,
int  yPixelCount 
) const [virtual]

Reimplemented from lux::Camera.

Definition at line 313 of file perspective.cpp.

References Apixel, R, xPixelWidth, xWidth, yHeight, and yPixelHeight.

void PerspectiveCamera::GetSamplePosition ( const Point p,
const Vector wi,
float *  x,
float *  y 
) const [virtual]

bool PerspectiveCamera::Intersect ( const Ray ray,
Intersection isect 
) const [virtual]

bool lux::PerspectiveCamera::IsDelta (  )  const [inline, virtual]

Reimplemented from lux::Camera.

Definition at line 49 of file perspective.h.

References lux::ProjectiveCamera::LensRadius.

bool PerspectiveCamera::IsVisibleFromEyes ( const Scene scene,
const Point lenP,
const Point worldP,
Sample sample_gen,
Ray ray_gen 
) const [virtual]

float PerspectiveCamera::Pdf ( const Point p,
const Normal n,
const Vector wi 
) const [virtual]

Reimplemented from lux::Camera.

Definition at line 243 of file perspective.cpp.

References posPdf.

SWCSpectrum PerspectiveCamera::Sample_W ( const Scene scene,
const Point p,
const Normal n,
float  u1,
float  u2,
BSDF **  bsdf,
float *  pdf,
float *  pdfDirect,
VisibilityTester visibility 
) const [virtual]

SWCSpectrum PerspectiveCamera::Sample_W ( const Scene scene,
float  u1,
float  u2,
BSDF **  bsdf,
float *  pdf 
) const [virtual]

void PerspectiveCamera::SamplePosition ( float  u1,
float  u2,
Point p,
float *  pdf 
) const [virtual]


Member Data Documentation

Definition at line 97 of file perspective.h.

Referenced by GetFlux2RadianceFactors(), and PerspectiveCamera().

Definition at line 100 of file perspective.h.

Referenced by AutoFocus().

float lux::PerspectiveCamera::fov [private]

Definition at line 94 of file perspective.h.

Referenced by CreateCamera(), PerspectiveCamera(), and Sample_W().

boost::shared_ptr<Shape> lux::PerspectiveCamera::lens [private]

Definition at line 102 of file perspective.h.

Referenced by Intersect(), and PerspectiveCamera().

Definition at line 93 of file perspective.h.

Referenced by GetConnectingFactor(), and PerspectiveCamera().

Definition at line 92 of file perspective.h.

Referenced by PerspectiveCamera(), and SamplePosition().

Definition at line 95 of file perspective.h.

Referenced by EvalPositionPdf(), Pdf(), PerspectiveCamera(), Sample_W(), and SamplePosition().

float lux::PerspectiveCamera::R [private]

Definition at line 97 of file perspective.h.

Referenced by GetFlux2RadianceFactors(), and PerspectiveCamera().

float lux::PerspectiveCamera::screen[4] [private]

Definition at line 96 of file perspective.h.

Referenced by CreateCamera().

Definition at line 97 of file perspective.h.

Referenced by GetFlux2RadianceFactors(), PerspectiveCamera(), and Sample_W().

Definition at line 97 of file perspective.h.

Referenced by GetFlux2RadianceFactors(), and PerspectiveCamera().

Definition at line 97 of file perspective.h.

Referenced by GetFlux2RadianceFactors(), and PerspectiveCamera().

Definition at line 97 of file perspective.h.

Referenced by GetFlux2RadianceFactors(), PerspectiveCamera(), and Sample_W().


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

Generated on Mon May 18 07:16:17 2009 for lux by  doxygen 1.5.8