#include <shape.h>
Public Member Functions | |
Shape (const Transform &o2w, bool ro) | |
virtual | ~Shape () |
virtual BBox | ObjectBound () const =0 |
virtual BBox | WorldBound () const |
virtual bool | CanIntersect () const |
virtual void | Refine (vector< Reference< Shape > > &refined) const |
virtual bool | Intersect (const Ray &ray, float *tHit, DifferentialGeometry *dg) const |
virtual bool | IntersectP (const Ray &ray) const |
virtual void | GetShadingGeometry (const Transform &obj2world, const DifferentialGeometry &dg, DifferentialGeometry *dgShading) const |
virtual float | Area () const |
virtual Point | Sample (float u1, float u2, Normal *Ns) const |
virtual float | Pdf (const Point &Pshape) const |
virtual Point | Sample (const Point &P, float u1, float u2, Normal *Ns) const |
virtual float | Pdf (const Point &p, const Vector &wi) const |
Public Attributes | |
const Transform | ObjectToWorld |
const Transform | WorldToObject |
const bool | reverseOrientation |
const bool | transformSwapsHandedness |
Definition at line 51 of file shape.h.
virtual BBox Shape::ObjectBound | ( | ) | const [pure virtual] |
Implemented in ShapeSet, Cone, Cylinder, Disk, Heightfield, Hyperboloid, LoopSubdiv, NURBS, Paraboloid, Sphere, TriangleMesh, and Triangle.
virtual BBox Shape::WorldBound | ( | ) | const [inline, virtual] |
Reimplemented in LoopSubdiv, NURBS, TriangleMesh, and Triangle.
virtual bool Shape::CanIntersect | ( | ) | const [inline, virtual] |
Reimplemented in ShapeSet, Heightfield, LoopSubdiv, NURBS, and TriangleMesh.
Reimplemented in ShapeSet, Heightfield, LoopSubdiv, NURBS, and TriangleMesh.
Definition at line 62 of file shape.h.
References Severe().
virtual bool Shape::Intersect | ( | const Ray & | ray, | |
float * | tHit, | |||
DifferentialGeometry * | dg | |||
) | const [inline, virtual] |
virtual bool Shape::IntersectP | ( | const Ray & | ray | ) | const [inline, virtual] |
Reimplemented in Cone, Cylinder, Disk, Hyperboloid, Paraboloid, Sphere, and Triangle.
Definition at line 71 of file shape.h.
References Severe().
virtual void Shape::GetShadingGeometry | ( | const Transform & | obj2world, | |
const DifferentialGeometry & | dg, | |||
DifferentialGeometry * | dgShading | |||
) | const [inline, virtual] |
virtual float Shape::Area | ( | ) | const [inline, virtual] |
virtual float Shape::Pdf | ( | const Point & | Pshape | ) | const [inline, virtual] |
Reimplemented in Sphere.
Definition at line 96 of file shape.h.
References AbsDot(), DistanceSquared(), INFINITY, and DifferentialGeometry::nn.
Definition at line 109 of file shape.h.
Referenced by Triangle::GetShadingGeometry(), Sphere::Intersect(), Paraboloid::Intersect(), Hyperboloid::Intersect(), Disk::Intersect(), Cylinder::Intersect(), Cone::Intersect(), Sphere::Pdf(), TriangleMesh::Refine(), NURBS::Refine(), LoopSubdiv::Refine(), Heightfield::Refine(), Sphere::Sample(), Disk::Sample(), Cylinder::Sample(), TriangleMesh::TriangleMesh(), NURBS::WorldBound(), and LoopSubdiv::WorldBound().
Definition at line 109 of file shape.h.
Referenced by Sphere::Intersect(), Paraboloid::Intersect(), Hyperboloid::Intersect(), Disk::Intersect(), Cylinder::Intersect(), Cone::Intersect(), Sphere::IntersectP(), Paraboloid::IntersectP(), Hyperboloid::IntersectP(), Disk::IntersectP(), Cylinder::IntersectP(), Cone::IntersectP(), Triangle::ObjectBound(), and TriangleMesh::ObjectBound().
const bool Shape::reverseOrientation |
Definition at line 110 of file shape.h.
Referenced by Material::Bump(), DifferentialGeometry::DifferentialGeometry(), TriangleMesh::Refine(), NURBS::Refine(), LoopSubdiv::Refine(), Heightfield::Refine(), Triangle::Sample(), Sphere::Sample(), Disk::Sample(), and Cylinder::Sample().
const bool Shape::transformSwapsHandedness |
Definition at line 110 of file shape.h.
Referenced by Material::Bump(), and DifferentialGeometry::DifferentialGeometry().