Sphere Class Reference

A Zone defining a sphere in the universe. More...

Inheritance diagram for Sphere:
Zone Registerable Transformable

List of all members.

Public Member Functions

 Sphere (const Vector3D &position=Vector3D(0.0f, 0.0f, 0.0f), float radius=0.0f)
 Constructor of Sphere.
void setRadius (float radius)
 Sets the radius of this Sphere.
float getRadius () const
 Gets the radius of this Sphere.
virtual void generatePosition (Particle &particle, bool full) const
 Randomly generates a position inside this Zone for a given Particle.
virtual bool contains (const Vector3D &v) const
 Checks whether a point is within the Zone.
virtual bool intersects (const Vector3D &v0, const Vector3D &v1, Vector3D *intersection, Vector3D *normal) const
 Checks whether a line intersects the Zone.
virtual void moveAtBorder (Vector3D &v, bool inside) const
 Moves a point at the border of the Zone.
virtual Vector3D computeNormal (const Vector3D &point) const
 Computes the normal for the point.

Static Public Member Functions

static Spherecreate (const Vector3D &position=Vector3D(0.0f, 0.0f, 0.0f), float radius=0.0f)
 Creates and registers a new Sphere.

Detailed Description

A Zone defining a sphere in the universe.

Definition at line 34 of file SPK_Sphere.h.


Constructor & Destructor Documentation

Sphere ( const Vector3D position = Vector3D(0.0f, 0.0f, 0.0f),
float  radius = 0.0f 
)

Constructor of Sphere.

Parameters:
position : position of the center of the Sphere
radius : radius of the Sphere

Member Function Documentation

virtual Vector3D computeNormal ( const Vector3D point  )  const [virtual]

Computes the normal for the point.

Parameters:
point : the point from where the normal is computed
Returns:
the normal vector
Since:
1.02.00

Implements Zone.

virtual bool contains ( const Vector3D point  )  const [virtual]

Checks whether a point is within the Zone.

Parameters:
point : the point to check
Returns:
true if the point is within the Zone, false otherwise

Implements Zone.

Sphere * create ( const Vector3D position = Vector3D(0.0f,0.0f,0.0f),
float  radius = 0.0f 
) [static]

Creates and registers a new Sphere.

Parameters:
position : position of the center of the Sphere
radius : radius of the Sphere
Returns:
A new registered Sphere
Since:
1.04.00

Definition at line 99 of file SPK_Sphere.h.

virtual void generatePosition ( Particle particle,
bool  full 
) const [virtual]

Randomly generates a position inside this Zone for a given Particle.

Parameters:
particle : the Particle whose position will be generated
full : true to generate a position in the whole volume of this Zone, false to generate a position only at borders

Implements Zone.

float getRadius (  )  const

Gets the radius of this Sphere.

Returns:
the radius of this Sphere

Definition at line 111 of file SPK_Sphere.h.

virtual bool intersects ( const Vector3D v0,
const Vector3D v1,
Vector3D intersection,
Vector3D normal 
) const [virtual]

Checks whether a line intersects the Zone.

The intersection is computed only if the Vector3D* intersection is not NULL.
The normal is computed if the Vector3D* normal AND intersection are not NULL.

Parameters:
v0 : start of the line
v1 : end of the line
intersection : the Vector3D where the intersection will be stored, NULL not to compute the intersection
normal : the Vector3D where the normal will be stored, NULL not to compute the normal
Returns:
true if the line intersects with the Zone, false otherwise

Implements Zone.

virtual void moveAtBorder ( Vector3D point,
bool  inside 
) const [virtual]

Moves a point at the border of the Zone.

Parameters:
point : the point that will be moved to the border of the Zone
inside : true to move the point inside the Zone of APPROXIMATION_VALUE, false to move it outside of APPROXIMATION_VALUE

Implements Zone.

void setRadius ( float  radius  ) 

Sets the radius of this Sphere.

A negative radius will be clamped to 0.0f and the Sphere will therefore acts as a Point.

Parameters:
radius : the radius of this Sphere

Definition at line 106 of file SPK_Sphere.h.


Generated on Wed Apr 27 21:09:26 2011 for SPARK Particle Engine by  doxygen 1.6.1