#include <primitive.h>
Public Member Functions | |
virtual | ~Primitive () |
virtual BBox | WorldBound () const =0 |
virtual bool | CanIntersect () const |
virtual bool | Intersect (const Ray &r, Intersection *in) const =0 |
virtual bool | IntersectP (const Ray &r) const =0 |
virtual void | Refine (vector< Primitive * > &refined) const |
void | FullyRefine (vector< Primitive * > &refined) const |
virtual const AreaLight * | GetAreaLight () const =0 |
virtual BSDF * | GetBSDF (const DifferentialGeometry &dg, const Transform &WorldToObject, float u) const =0 |
Definition at line 34 of file primitive.h.
Primitive::~Primitive | ( | ) | [virtual] |
Definition at line 31 of file primitive.cpp.
bool Primitive::CanIntersect | ( | ) | const [virtual] |
Reimplemented in lux::BruteForceAccel, lux::GridAccel, lux::TaBRecKdTreeAccel, lux::UnsafeKdTreeAccel, and lux::GeometricPrimitive.
Definition at line 33 of file primitive.cpp.
Referenced by FullyRefine(), lux::Voxel::Intersect(), and lux::Voxel::IntersectP().
void Primitive::FullyRefine | ( | vector< Primitive * > & | refined | ) | const |
Definition at line 69 of file primitive.cpp.
References CanIntersect(), and Refine().
Referenced by lux::BruteForceAccel::BruteForceAccel(), lux::GridAccel::GridAccel(), lux::Voxel::Intersect(), lux::Voxel::IntersectP(), lux::TaBRecKdTreeAccel::TaBRecKdTreeAccel(), and lux::UnsafeKdTreeAccel::UnsafeKdTreeAccel().
virtual const AreaLight* lux::Primitive::GetAreaLight | ( | ) | const [pure virtual] |
Implemented in lux::GeometricPrimitive, lux::InstancePrimitive, and lux::Aggregate.
Referenced by lux::EstimateDirect(), and lux::Intersection::Le().
virtual BSDF* lux::Primitive::GetBSDF | ( | const DifferentialGeometry & | dg, | |
const Transform & | WorldToObject, | |||
float | u | |||
) | const [pure virtual] |
Implemented in lux::GeometricPrimitive, lux::InstancePrimitive, and lux::Aggregate.
Referenced by lux::Intersection::GetBSDF().
virtual bool lux::Primitive::Intersect | ( | const Ray & | r, | |
Intersection * | in | |||
) | const [pure virtual] |
Implemented in lux::BruteForceAccel, lux::GridAccel, lux::TaBRecKdTreeAccel, lux::UnsafeKdTreeAccel, lux::GeometricPrimitive, and lux::InstancePrimitive.
Referenced by lux::UnsafeKdTreeAccel::Intersect(), lux::TaBRecKdTreeAccel::Intersect(), lux::ShapeSet::Intersect(), lux::Scene::Intersect(), and lux::InstancePrimitive::Intersect().
virtual bool lux::Primitive::IntersectP | ( | const Ray & | r | ) | const [pure virtual] |
Implemented in lux::BruteForceAccel, lux::GridAccel, lux::TaBRecKdTreeAccel, lux::UnsafeKdTreeAccel, lux::GeometricPrimitive, and lux::InstancePrimitive.
Referenced by lux::UnsafeKdTreeAccel::IntersectP(), lux::TaBRecKdTreeAccel::IntersectP(), lux::Scene::IntersectP(), and lux::InstancePrimitive::IntersectP().
void Primitive::Refine | ( | vector< Primitive * > & | refined | ) | const [virtual] |
Definition at line 38 of file primitive.cpp.
References LUX_BUG, LUX_SEVERE, and luxError.
Referenced by FullyRefine().
virtual BBox lux::Primitive::WorldBound | ( | ) | const [pure virtual] |