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

Sphere Class Reference

Class representing a sphere. More...

#include <sphere.h>

Inherits Primitive, and Intersectable.

Inheritance diagram for Sphere:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Sphere ()
 Creates a sphere primitive.
 Sphere (float radius, Material *m=0)
 Creates a sphere at origin with radius r and material m.
virtual ~Sphere ()
 Destroys the sphere.
void setRadius (float r)
 Sets the radius of the sphere.
bool intersect (const Ray &ray) const
 Returns true if the ray intersects the sphere.
bool intersect (const Ray &ray, Intersection &isect) const
 Returns true if the ray intersects the sphere.
void setMaterial (Material *m)
 Sets the material of the primitive to the material pointed to by m, or if m is 0, the material is set to the default material (diffuse gray).
MaterialgetMaterial () const
 Returns a pointer to the primitive's material.
void setTransform (Matrix &M)
 Manually set the local transform matrix to M.
void setTranslation (const Vector &T)
 Sets the translation of the node to T.
void setTranslation (float tx, float ty, float tz)
 Sets the translation of the node to (tx,ty,tz).
void setScale (float s)
 Sets the scale uniformly to s.
void setScale (const Vector &S)
 Sets the scale non-uniformly to S.
void setScale (float sx, float sy, float sz)
 Sets the scale non-uniformly to (sx,sy,sz).
void setRotation (const Vector &R)
 Sets the rotation about the x,y,z axes to the components of R.
void setRotation (float rx, float ry, float rz)
 Sets the rotation about the x,y,z axes to (rx,ry,rz) respectively.

Protected Types

typedef std::list< Node
* >::iterator 
t_itr
typedef std::list< Node
* >::const_iterator 
t_constitr

Protected Member Functions

void prepare ()
 Prepare sphere for rendering.
void getGeometry (std::vector< Intersectable * > &geometry)
 Append all intersectable geometry in this object to the array.
bool solveQuadratic (float A, float B, float C, float &t0, float &t1) const
 Compute the two solutions to the quadratic A*t^2 + B*t + C = 0 and return true if there are real solutions, and false if no real solutions.
void addChild (Node *child)
 Adds a node to the list of children.
bool hasChild (const Node *child) const
 Returns true if a specific node is a child of this node.
void setupTransform (const Matrix &world)
 Setup the local and world transform of the node.

Protected Attributes

float mRadius
 Radius of sphere.
Matrix mInvWorldTransform
 World->Object transform.
MaterialmMaterial
 Ptr to the material used by the primitive.
Vector mT
 Translation.
Vector mS
 Scale.
Vector mR
 Rotation.
bool mTransformSet
 True if the local transform has been setup.
Matrix mLocalTransform
 Local transform, created from the T,S,R parameters.
Matrix mWorldTransform
 Object->World transform (local + inherited transform).
std::list< Node * > mChildren
 List of children attached to the Node.

Detailed Description

Class representing a sphere.


The documentation for this class was generated from the following files:
Generated on Tue Mar 14 09:46:42 2006 for ASR by  doxygen 1.4.4