lux::Torus Class Reference

#include <torus.h>

Inheritance diagram for lux::Torus:
[legend]
Collaboration diagram for lux::Torus:
[legend]

List of all members.

Public Member Functions

 Torus (const Transform &o2w, bool ro, float marad, float mirad, float zmin, float zmax, float phiMax)
virtual ~Torus ()
virtual BBox ObjectBound () const
virtual bool Intersect (const Ray &ray, float *tHit, DifferentialGeometry *dg) const
virtual bool IntersectP (const Ray &ray) const
virtual float Area () const
virtual Point Sample (float u1, float u2, float u3, Normal *ns) const

Static Public Member Functions

static ShapeCreateShape (const Transform &o2w, bool reverseOrientation, const ParamSet &params)

Private Member Functions

bool FindIntersection (const Ray &ray, float *tHit, Point *pHit, float *phiHit, float *thetaHit) const

Private Attributes

float majorRadius
float minorRadius
float phiMax
float thetaMin
float thetaMax
float zmin
float zmax

Detailed Description

Definition at line 31 of file torus.h.


Constructor & Destructor Documentation

Torus::Torus ( const Transform o2w,
bool  ro,
float  marad,
float  mirad,
float  zmin,
float  zmax,
float  phiMax 
)
virtual lux::Torus::~Torus (  )  [inline, virtual]

Definition at line 36 of file torus.h.


Member Function Documentation

float Torus::Area (  )  const [virtual]

Returns the area of this primitive.

Reimplemented from lux::Primitive.

Definition at line 450 of file torus.cpp.

References majorRadius, minorRadius, phiMax, thetaMax, and thetaMin.

Shape * Torus::CreateShape ( const Transform o2w,
bool  reverseOrientation,
const ParamSet params 
) [static]

Definition at line 454 of file torus.cpp.

References lux::ParamSet::FindOneFloat(), majorRadius, minorRadius, and Torus().

bool Torus::FindIntersection ( const Ray ray,
float *  tHit,
Point pHit,
float *  phiHit,
float *  thetaHit 
) const [private]
bool Torus::Intersect ( const Ray ray,
float *  tHit,
DifferentialGeometry dg 
) const [virtual]
bool Torus::IntersectP ( const Ray r  )  const [virtual]

Tests for intersection of this primitive with the given ray.

Parameters:
r The ray to intersect with this primitive.
Returns:
Whether an intersection was found.

Reimplemented from lux::Primitive.

Definition at line 438 of file torus.cpp.

References FindIntersection(), and lux::Shape::WorldToObject.

BBox Torus::ObjectBound (  )  const [virtual]

Reimplemented from lux::Shape.

Definition at line 349 of file torus.cpp.

References majorRadius, and minorRadius.

virtual Point lux::Torus::Sample ( float  u1,
float  u2,
float  u3,
Normal ns 
) const [inline, virtual]

Member Data Documentation

float lux::Torus::majorRadius [private]

Definition at line 68 of file torus.h.

Referenced by Area(), CreateShape(), FindIntersection(), ObjectBound(), Sample(), and Torus().

float lux::Torus::minorRadius [private]

Definition at line 68 of file torus.h.

Referenced by Area(), CreateShape(), FindIntersection(), Intersect(), ObjectBound(), Sample(), and Torus().

float lux::Torus::phiMax [private]

Definition at line 69 of file torus.h.

Referenced by Area(), FindIntersection(), Intersect(), and Torus().

float lux::Torus::thetaMax [private]

Definition at line 70 of file torus.h.

Referenced by Area(), FindIntersection(), Intersect(), Sample(), and Torus().

float lux::Torus::thetaMin [private]

Definition at line 70 of file torus.h.

Referenced by Area(), Intersect(), Sample(), and Torus().

float lux::Torus::zmax [private]

Definition at line 72 of file torus.h.

Referenced by Torus().

float lux::Torus::zmin [private]

Definition at line 72 of file torus.h.

Referenced by Torus().


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.2-20100208