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

toxic::Square Class Reference

#include <square.h>

Inheritance diagram for toxic::Square:

toxic::IAreaLight toxic::IBoundedObject toxic::ILight toxic::IObject toxic::Basis List of all members.

Public Member Functions

 Square (const sheep::Matrix4 &m, const ISurfaceShader *surface_shader, IntersectionMask intersection_mask=INTERSECT_ALL_RAYS)
 m is the object space to world space transformation matrix.

virtual const sheep::AABB3GetAABB () const
virtual sheep::Real ComputeSurfaceArea () const
 Computes the surface area of this object.

virtual void EvaluateSurface (const sheep::Point2 &input, sheep::Point3 *point, sheep::Vector3 *geometric_normal) const
virtual bool Intersect (const Context &context, const Ray &ray, Hit *hit=0) const

Private Attributes

sheep::Point3 m_center
 Center of the object, expressed in world space.

sheep::Vector3 m_normal
 Normal to the plane supporting the square, expressed in world space.

const SurfaceBasis m_basis
sheep::Vector3 m_ex
sheep::Vector3 m_ez
 X (1,0,0) and Z (0,0,1) basis vectors, expressed in world space.

sheep::AABB3 m_aabb
 Bounding box of the object, expressed in world space.


Constructor & Destructor Documentation

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

m is the object space to world space transformation matrix.

Definition at line 42 of file square.cpp.

References sheep::AABB3::Extend(), toxic::OBJECT_AABB_EXTENSION(), and sheep::AABB3::Transform().


Member Function Documentation

sheep::Real Square::ComputeSurfaceArea  )  const [inline, virtual]
 

Computes the surface area of this object.

Implements toxic::IBoundedObject.

Definition at line 121 of file square.h.

void Square::EvaluateSurface const sheep::Point2 input,
sheep::Point3 point,
sheep::Vector3 geometric_normal
const [inline, 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).

Implements toxic::IBoundedObject.

Definition at line 128 of file square.h.

const sheep::AABB3 & Square::GetAABB  )  const [inline, virtual]
 

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

Implements toxic::IBoundedObject.

Definition at line 116 of file square.h.

bool Square::Intersect const Context context,
const Ray ray,
Hit hit = 0
const [virtual]
 

This method returns true if the ray intersect the object, or false otherwise. If 'hit' is not null, intersection data are reported through the 'hit' parameter (only if an intersection has been found; if no intersection has been found, the 'hit' parameter is left unchanged). The ray is expressed in world space.

Parameters:
ray  'ray' is expressed in world space.

Implements toxic::IObject.

Definition at line 58 of file square.cpp.

References toxic::Ray::GetType(), toxic::Hit::m_abscissa, toxic::Ray::m_direction, toxic::Hit::m_geometric_normal, toxic::Statistics::m_intersections_found, toxic::Hit::m_object, toxic::Ray::m_origin, toxic::Hit::m_shading_normal, toxic::Context::m_statistics, toxic::Statistics::m_tested_intersections, toxic::Hit::m_u, toxic::Hit::m_v, sheep::Vector3::m_x, sheep::Point3::m_x, sheep::Point3::m_y, sheep::Vector3::m_y, sheep::Vector3::m_z, sheep::Point3::m_z, and toxic::Basis::TransformToLocal().


Member Data Documentation

sheep::AABB3 toxic::Square::m_aabb [private]
 

Bounding box of the object, expressed in world space.

Definition at line 90 of file square.h.

const SurfaceBasis toxic::Square::m_basis [private]
 

Definition at line 88 of file square.h.

sheep::Point3 toxic::Square::m_center [private]
 

Center of the object, expressed in world space.

Definition at line 86 of file square.h.

sheep::Vector3 toxic::Square::m_ex [private]
 

Definition at line 89 of file square.h.

sheep::Vector3 toxic::Square::m_ez [private]
 

X (1,0,0) and Z (0,0,1) basis vectors, expressed in world space.

Definition at line 89 of file square.h.

sheep::Vector3 toxic::Square::m_normal [private]
 

Normal to the plane supporting the square, expressed in world space.

Definition at line 87 of file square.h.


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