lux::WaldTriangle Class Reference

#include <waldtrianglemesh.h>

Inheritance diagram for lux::WaldTriangle:

lux::Shape

List of all members.

Public Member Functions

 WaldTriangle (const Transform &o2w, bool ro, WaldTriangleMesh *m, int n)
BBox ObjectBound () const
BBox WorldBound () const
bool Intersect (const Ray &ray, float *tHit, DifferentialGeometry *dg) const
bool IntersectP (const Ray &ray) const
void GetUVs (float uv[3][2]) const
float Area () const
virtual void GetShadingGeometry (const Transform &obj2world, const DifferentialGeometry &dg, DifferentialGeometry *dgShading) const
Point Sample (float u1, float u2, Normal *Ns) const

Private Types

enum  IntersectionType {
  DOMINANT_X, DOMINANT_Y, DOMINANT_Z, ORTHOGONAL_X,
  ORTHOGONAL_Y, ORTHOGONAL_Z, DEGENERATE
}

Private Attributes

WaldTriangleMeshmesh
int * v
IntersectionType intersectionType
float nu
float nv
float nd
float bnu
float bnv
float bnd
float cnu
float cnv
float cnd
Vector dpdu
Vector dpdv
Normal normalizedNormal


Detailed Description

Definition at line 60 of file waldtrianglemesh.h.


Member Enumeration Documentation

Enumerator:
DOMINANT_X 
DOMINANT_Y 
DOMINANT_Z 
ORTHOGONAL_X 
ORTHOGONAL_Y 
ORTHOGONAL_Z 
DEGENERATE 

Definition at line 177 of file waldtrianglemesh.h.


Constructor & Destructor Documentation

WaldTriangle::WaldTriangle ( const Transform o2w,
bool  ro,
WaldTriangleMesh m,
int  n 
)


Member Function Documentation

float WaldTriangle::Area (  )  const [virtual]

Reimplemented from lux::Shape.

Definition at line 650 of file waldtrianglemesh.cpp.

References lux::Cross(), lux::Vector::Length(), mesh, lux::WaldTriangleMesh::p, and v.

virtual void lux::WaldTriangle::GetShadingGeometry ( const Transform obj2world,
const DifferentialGeometry dg,
DifferentialGeometry dgShading 
) const [inline, virtual]

void lux::WaldTriangle::GetUVs ( float  uv[3][2]  )  const [inline]

bool WaldTriangle::Intersect ( const Ray ray,
float *  tHit,
DifferentialGeometry dg 
) const [virtual]

bool WaldTriangle::IntersectP ( const Ray ray  )  const [virtual]

BBox WaldTriangle::ObjectBound (  )  const [virtual]

Implements lux::Shape.

Definition at line 270 of file waldtrianglemesh.cpp.

References mesh, lux::WaldTriangleMesh::p, lux::Union(), v, and lux::Shape::WorldToObject.

Point WaldTriangle::Sample ( float  u1,
float  u2,
Normal Ns 
) const [virtual]

Reimplemented from lux::Shape.

Definition at line 658 of file waldtrianglemesh.cpp.

References mesh, normalizedNormal, blender::p, lux::WaldTriangleMesh::p, lux::UniformSampleTriangle(), and v.

BBox WaldTriangle::WorldBound (  )  const [virtual]

Reimplemented from lux::Shape.

Definition at line 279 of file waldtrianglemesh.cpp.

References mesh, lux::WaldTriangleMesh::p, lux::Union(), and v.


Member Data Documentation

float lux::WaldTriangle::bnd [private]

Definition at line 189 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

float lux::WaldTriangle::bnu [private]

Definition at line 189 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

float lux::WaldTriangle::bnv [private]

Definition at line 189 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

float lux::WaldTriangle::cnd [private]

Definition at line 190 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

float lux::WaldTriangle::cnu [private]

Definition at line 190 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

float lux::WaldTriangle::cnv [private]

Definition at line 190 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

Definition at line 193 of file waldtrianglemesh.h.

Referenced by Intersect(), and WaldTriangle().

Definition at line 193 of file waldtrianglemesh.h.

Referenced by Intersect(), and WaldTriangle().

Definition at line 187 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

float lux::WaldTriangle::nd [private]

Definition at line 188 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

Definition at line 194 of file waldtrianglemesh.h.

Referenced by Intersect(), Sample(), and WaldTriangle().

float lux::WaldTriangle::nu [private]

Definition at line 188 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

float lux::WaldTriangle::nv [private]

Definition at line 188 of file waldtrianglemesh.h.

Referenced by Intersect(), IntersectP(), and WaldTriangle().

int* lux::WaldTriangle::v [private]


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

Generated on Fri Jul 24 11:50:06 2009 for lux by  doxygen 1.5.9