#include <primitive.h>
Public Member Functions | |
bool | CanIntersect () const |
void | Refine (vector< Primitive * > &refined) const |
virtual BBox | WorldBound () const |
virtual bool | Intersect (const Ray &r, Intersection *isect) const |
virtual bool | IntersectP (const Ray &r) const |
GeometricPrimitive (const boost::shared_ptr< Shape > &s, const boost::shared_ptr< Material > &m, AreaLight *a) | |
const AreaLight * | GetAreaLight () const |
BSDF * | GetBSDF (const DifferentialGeometry &dg, const Transform &WorldToObject, float u) const |
Private Attributes | |
boost::shared_ptr< Shape > | shape |
boost::shared_ptr< Material > | material |
AreaLight * | areaLight |
Definition at line 65 of file primitive.h.
GeometricPrimitive::GeometricPrimitive | ( | const boost::shared_ptr< Shape > & | s, | |
const boost::shared_ptr< Material > & | m, | |||
AreaLight * | a | |||
) |
Definition at line 139 of file primitive.cpp.
Referenced by Refine().
bool GeometricPrimitive::CanIntersect | ( | ) | const [virtual] |
const AreaLight * GeometricPrimitive::GetAreaLight | ( | ) | const [virtual] |
BSDF * GeometricPrimitive::GetBSDF | ( | const DifferentialGeometry & | dg, | |
const Transform & | WorldToObject, | |||
float | u | |||
) | const [virtual] |
Implements lux::Primitive.
Definition at line 157 of file primitive.cpp.
References lux::Transform::GetInverse(), material, and shape.
bool GeometricPrimitive::Intersect | ( | const Ray & | r, | |
Intersection * | isect | |||
) | const [virtual] |
Implements lux::Primitive.
Definition at line 143 of file primitive.cpp.
References lux::Intersection::dg, lux::Ray::maxt, lux::Intersection::primitive, shape, and lux::Intersection::WorldToObject.
bool GeometricPrimitive::IntersectP | ( | const Ray & | r | ) | const [virtual] |
void GeometricPrimitive::Refine | ( | vector< Primitive * > & | refined | ) | const |
Definition at line 125 of file primitive.cpp.
References areaLight, GeometricPrimitive(), material, and shape.
BBox GeometricPrimitive::WorldBound | ( | ) | const [virtual] |
AreaLight* lux::GeometricPrimitive::areaLight [private] |
Definition at line 84 of file primitive.h.
Referenced by GetAreaLight(), and Refine().
boost::shared_ptr<Material> lux::GeometricPrimitive::material [private] |
Definition at line 83 of file primitive.h.
boost::shared_ptr<Shape> lux::GeometricPrimitive::shape [private] |
Definition at line 82 of file primitive.h.
Referenced by CanIntersect(), GetBSDF(), Intersect(), IntersectP(), Refine(), and WorldBound().