Public Member Functions | |
| InfinitePortalBxDF (const InfiniteAreaLight &l, const Transform &WL, const Vector &x, const Vector &y, const Vector &z, const Point &p, const vector< boost::shared_ptr< Primitive > > &portalList, u_int portal, float u) | |
| virtual | ~InfinitePortalBxDF () |
| virtual bool | Sample_f (const TsPack *tspack, const Vector &wo, Vector *wi, float u1, float u2, SWCSpectrum *const f, float *pdf, float *pdfBack=NULL, bool reverse=false) const |
| virtual void | f (const TsPack *tspack, const Vector &wo, const Vector &wi, SWCSpectrum *const f) const |
| virtual float | Pdf (const TsPack *tspack, const Vector &wi, const Vector &wo) const |
Private Attributes | |
| const InfiniteAreaLight & | light |
| const Transform & | WorldToLight |
| Vector | X |
| Vector | Y |
| Vector | Z |
| Point | ps |
| const vector < boost::shared_ptr< Primitive > > & | PortalShapes |
| u_int | shapeIndex |
| float | u3 |
Definition at line 50 of file infinite.cpp.
| InfinitePortalBxDF::InfinitePortalBxDF | ( | const InfiniteAreaLight & | l, | |
| const Transform & | WL, | |||
| const Vector & | x, | |||
| const Vector & | y, | |||
| const Vector & | z, | |||
| const Point & | p, | |||
| const vector< boost::shared_ptr< Primitive > > & | portalList, | |||
| u_int | portal, | |||
| float | u | |||
| ) | [inline] |
Definition at line 53 of file infinite.cpp.
| virtual InfinitePortalBxDF::~InfinitePortalBxDF | ( | ) | [inline, virtual] |
Definition at line 54 of file infinite.cpp.
| virtual void InfinitePortalBxDF::f | ( | const TsPack * | tspack, | |
| const Vector & | wo, | |||
| const Vector & | wi, | |||
| SWCSpectrum *const | f | |||
| ) | const [inline, virtual] |
Evaluates the BxDF. Accumulates the result in the f parameter.
Implements lux::BxDF.
Definition at line 83 of file infinite.cpp.
References lux::InfiniteAreaLight::Le(), light, X, lux::Vector::x, Y, lux::Vector::y, Z, and lux::Vector::z.
| virtual float InfinitePortalBxDF::Pdf | ( | const TsPack * | tspack, | |
| const Vector & | wi, | |||
| const Vector & | wo | |||
| ) | const [inline, virtual] |
Reimplemented from lux::BxDF.
Definition at line 88 of file infinite.cpp.
References lux::AbsDot(), lux::Intersection::dg, lux::DistanceSquared(), lux::Dot(), lux::Ray::mint, lux::DifferentialGeometry::nn, lux::DifferentialGeometry::p, PortalShapes, ps, X, lux::Vector::x, Y, lux::Vector::y, Z, and lux::Vector::z.
| virtual bool InfinitePortalBxDF::Sample_f | ( | const TsPack * | tspack, | |
| const Vector & | wo, | |||
| Vector * | wi, | |||
| float | u1, | |||
| float | u2, | |||
| SWCSpectrum *const | f, | |||
| float * | pdf, | |||
| float * | pdfBack = NULL, |
|||
| bool | reverse = false | |||
| ) | const [inline, virtual] |
Samples the BxDF. Returns the result of the BxDF for the sampled direction in f.
Reimplemented from lux::BxDF.
Definition at line 55 of file infinite.cpp.
References lux::AbsDot(), lux::Intersection::dg, lux::DistanceSquared(), lux::Dot(), lux::InfiniteAreaLight::Le(), light, lux::Ray::mint, lux::DifferentialGeometry::nn, lux::Normalize(), lux::DifferentialGeometry::p, PortalShapes, ps, cimg_library::reverse(), shapeIndex, lux::TsPack::time, lux::DifferentialGeometry::time, u3, X, lux::Vector::x, Y, lux::Vector::y, Z, and lux::Vector::z.
const InfiniteAreaLight& InfinitePortalBxDF::light [private] |
Definition at line 102 of file infinite.cpp.
Referenced by f(), and Sample_f().
const vector<boost::shared_ptr<Primitive> >& InfinitePortalBxDF::PortalShapes [private] |
Definition at line 106 of file infinite.cpp.
Referenced by Pdf(), and Sample_f().
Point InfinitePortalBxDF::ps [private] |
Definition at line 105 of file infinite.cpp.
Referenced by Pdf(), and Sample_f().
u_int InfinitePortalBxDF::shapeIndex [private] |
Definition at line 107 of file infinite.cpp.
Referenced by Sample_f().
float InfinitePortalBxDF::u3 [private] |
Definition at line 108 of file infinite.cpp.
Referenced by Sample_f().
const Transform& InfinitePortalBxDF::WorldToLight [private] |
Definition at line 103 of file infinite.cpp.
Vector InfinitePortalBxDF::X [private] |
Definition at line 104 of file infinite.cpp.
Referenced by f(), Pdf(), and Sample_f().
Vector InfinitePortalBxDF::Y [private] |
Definition at line 104 of file infinite.cpp.
Referenced by f(), Pdf(), and Sample_f().
Vector InfinitePortalBxDF::Z [private] |
Definition at line 104 of file infinite.cpp.
Referenced by f(), Pdf(), and Sample_f().
1.6.2-20100208