#include <barytrianglemesh.h>
Public Member Functions | |
BaryTriangle (const Transform &o2w, bool ro, BaryTriangleMesh *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 Attributes | |
BaryTriangleMesh * | mesh |
int * | v |
Definition at line 58 of file barytrianglemesh.h.
lux::BaryTriangle::BaryTriangle | ( | const Transform & | o2w, | |
bool | ro, | |||
BaryTriangleMesh * | m, | |||
int | n | |||
) | [inline] |
Definition at line 61 of file barytrianglemesh.h.
References mesh, v, and lux::BaryTriangleMesh::vertexIndex.
float BaryTriangle::Area | ( | ) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 235 of file barytrianglemesh.cpp.
References lux::Cross(), lux::Vector::Length(), mesh, lux::BaryTriangleMesh::p, and v.
virtual void lux::BaryTriangle::GetShadingGeometry | ( | const Transform & | obj2world, | |
const DifferentialGeometry & | dg, | |||
DifferentialGeometry * | dgShading | |||
) | const [inline, virtual] |
Reimplemented from lux::Shape.
Definition at line 77 of file barytrianglemesh.h.
References lux::Cross(), lux::DifferentialGeometry::dpdu, lux::DifferentialGeometry::dpdx, lux::DifferentialGeometry::dpdy, lux::DifferentialGeometry::dudx, lux::DifferentialGeometry::dudy, lux::DifferentialGeometry::dvdx, lux::DifferentialGeometry::dvdy, GetUVs(), mesh, lux::BaryTriangleMesh::n, lux::DifferentialGeometry::nn, lux::Normalize(), lux::Shape::ObjectToWorld, lux::DifferentialGeometry::p, lux::BaryTriangleMesh::s, lux::DifferentialGeometry::shape, lux::SolveLinearSystem2x2(), lux::DifferentialGeometry::u, v, and lux::DifferentialGeometry::v.
void BaryTriangle::GetUVs | ( | float | uv[3][2] | ) | const |
Definition at line 218 of file barytrianglemesh.cpp.
References mesh, lux::BaryTriangleMesh::p, lux::BaryTriangleMesh::uvs, v, lux::Point::x, and lux::Point::y.
Referenced by GetShadingGeometry(), and Intersect().
bool BaryTriangle::Intersect | ( | const Ray & | ray, | |
float * | tHit, | |||
DifferentialGeometry * | dg | |||
) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 107 of file barytrianglemesh.cpp.
References lux::CoordinateSystem(), lux::Cross(), lux::Ray::d, lux::Dot(), GetUVs(), lux::Ray::maxt, mesh, lux::BaryTriangleMesh::n, lux::DifferentialGeometry::nn, lux::Normalize(), lux::Ray::o, lux::Shape::ObjectToWorld, lux::BaryTriangleMesh::p, and v.
bool BaryTriangle::IntersectP | ( | const Ray & | ray | ) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 184 of file barytrianglemesh.cpp.
References lux::Cross(), lux::Ray::d, lux::Dot(), lux::Ray::maxt, mesh, lux::Ray::o, lux::BaryTriangleMesh::p, and v.
BBox BaryTriangle::ObjectBound | ( | ) | const [virtual] |
Implements lux::Shape.
Definition at line 92 of file barytrianglemesh.cpp.
References mesh, lux::BaryTriangleMesh::p, lux::Union(), v, and lux::Shape::WorldToObject.
Reimplemented from lux::Shape.
Definition at line 242 of file barytrianglemesh.cpp.
References lux::Cross(), mesh, lux::Normalize(), blender::p, lux::BaryTriangleMesh::p, lux::Shape::reverseOrientation, lux::UniformSampleTriangle(), and v.
BBox BaryTriangle::WorldBound | ( | ) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 100 of file barytrianglemesh.cpp.
References mesh, lux::BaryTriangleMesh::p, lux::Union(), and v.
BaryTriangleMesh* lux::BaryTriangle::mesh [private] |
Definition at line 153 of file barytrianglemesh.h.
Referenced by Area(), BaryTriangle(), GetShadingGeometry(), GetUVs(), Intersect(), IntersectP(), ObjectBound(), Sample(), and WorldBound().
int* lux::BaryTriangle::v [private] |
Definition at line 154 of file barytrianglemesh.h.
Referenced by Area(), BaryTriangle(), GetShadingGeometry(), GetUVs(), Intersect(), IntersectP(), ObjectBound(), Sample(), and WorldBound().