#include <quad.h>
Public Member Functions | |
Quad (const Transform &o2w, bool ro, int nq, int nv, const int *vi, const Point *P) | |
virtual | ~Quad () |
virtual BBox | ObjectBound () const |
virtual BBox | WorldBound () 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 Shape * | CreateShape (const Transform &o2w, bool reverseOrientation, const ParamSet ¶ms) |
Private Attributes | |
QuadMesh * | mesh |
Quadrilateral * | quad |
Definition at line 31 of file quad.h.
Definition at line 31 of file quad.cpp.
References lux::QuadMesh::idx, mesh, and quad.
Referenced by CreateShape().
float Quad::Area | ( | ) | const [virtual] |
Returns the area of this primitive.
Reimplemented from lux::Primitive.
Definition at line 63 of file quad.cpp.
References lux::Quadrilateral::Area(), and quad.
Shape * Quad::CreateShape | ( | const Transform & | o2w, | |
bool | reverseOrientation, | |||
const ParamSet & | params | |||
) | [static] |
Definition at line 166 of file quad.cpp.
References lux::ParamSet::FindOneFloat(), lux::ParamSet::FindPoint(), IsConvex(), IsDegenerate(), IsPlanar(), LUX_CONSISTENCY, LUX_ERROR, luxError, p, and Quad().
bool Quad::Intersect | ( | const Ray & | ray, | |
float * | tHit, | |||
DifferentialGeometry * | dg | |||
) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 52 of file quad.cpp.
References lux::Quadrilateral::Intersect(), and quad.
bool Quad::IntersectP | ( | const Ray & | r | ) | const [virtual] |
Tests for intersection of this primitive with the given ray.
r | The ray to intersect with this primitive. |
Reimplemented from lux::Primitive.
Definition at line 58 of file quad.cpp.
References lux::Quadrilateral::IntersectP(), and quad.
BBox Quad::ObjectBound | ( | ) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 44 of file quad.cpp.
References lux::Quadrilateral::ObjectBound(), and quad.
virtual Point lux::Quad::Sample | ( | float | u1, | |
float | u2, | |||
float | u3, | |||
Normal * | Ns | |||
) | const [inline, virtual] |
Reimplemented from lux::Shape.
Definition at line 43 of file quad.h.
References quad, and lux::Quadrilateral::Sample().
BBox Quad::WorldBound | ( | ) | const [virtual] |
Returns the world bounds of this primitive.
Reimplemented from lux::Shape.
Definition at line 48 of file quad.cpp.
References quad, and lux::Quadrilateral::WorldBound().
QuadMesh* lux::Quad::mesh [private] |
Quadrilateral* lux::Quad::quad [private] |
Definition at line 51 of file quad.h.
Referenced by Area(), Intersect(), IntersectP(), ObjectBound(), Quad(), Sample(), WorldBound(), and ~Quad().