Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

toxic::IBoundedObject Class Reference

#include <iboundedobject.h>

Inheritance diagram for toxic::IBoundedObject:

toxic::IObject toxic::Basis toxic::DummyObject toxic::IAreaLight toxic::Octree toxic::Cube toxic::Mesh toxic::Ring toxic::Sphere toxic::Square List of all members.

Public Member Functions

 IBoundedObject (const sheep::Matrix4 &m, const ISurfaceShader *surface_shader=0, IntersectionMask intersection_mask=INTERSECT_ALL_RAYS)
virtual ~IBoundedObject ()
virtual const sheep::AABB3GetAABB () const=0
virtual sheep::Real ComputeSurfaceArea () const=0
 Computes the surface area of this object.

virtual void EvaluateSurface (const sheep::Point2 &input, sheep::Point3 *point, sheep::Vector3 *geometric_normal) const=0

Constructor & Destructor Documentation

IBoundedObject::IBoundedObject const sheep::Matrix4 m,
const ISurfaceShader surface_shader = 0,
IntersectionMask  intersection_mask = INTERSECT_ALL_RAYS
 

m is the object space to world space transformation matrix. The 'surface_shader' pointer may be null because some objects (like the Collection and Octree objects) don't need a shader.

Definition at line 28 of file iboundedobject.cpp.

virtual toxic::IBoundedObject::~IBoundedObject  )  [inline, virtual]
 

Definition at line 53 of file iboundedobject.h.


Member Function Documentation

virtual sheep::Real toxic::IBoundedObject::ComputeSurfaceArea  )  const [pure virtual]
 

Computes the surface area of this object.

Implemented in toxic::Cube, toxic::DummyObject, toxic::Mesh, toxic::Octree, toxic::Ring, toxic::Sphere, and toxic::Square.

Referenced by toxic::IAreaLight::Finalize().

virtual void toxic::IBoundedObject::EvaluateSurface const sheep::Point2 input,
sheep::Point3 point,
sheep::Vector3 geometric_normal
const [pure virtual]
 

Given a point in the unit square (the set of points in [0..1]^2), this method computes the corresponding surface point and normal (both are expressed in world space).

Implemented in toxic::Cube, toxic::DummyObject, toxic::Mesh, toxic::Octree, toxic::Ring, toxic::Sphere, and toxic::Square.

Referenced by toxic::IAreaLight::ComputeIrradiance(), and toxic::IAreaLight::GeneratePhotonRay().

virtual const sheep::AABB3& toxic::IBoundedObject::GetAABB  )  const [pure virtual]
 

Returns the Axis Aligned Bounding Box of this object. The AABB is expressed in world space.

Implemented in toxic::Cube, toxic::DummyObject, toxic::Mesh, toxic::Octree, toxic::Ring, toxic::Sphere, and toxic::Square.

Referenced by toxic::Octree::object_voxel_intersector::Intersect().


The documentation for this class was generated from the following files:
Generated on Tue May 11 01:31:57 2004 for toxic by doxygen 1.3.6