AABox Class Reference

A Zone defining an axis-aligned Box. More...

Inheritance diagram for AABox:
Zone Registerable Transformable

List of all members.

Public Member Functions

 AABox (const Vector3D &position=Vector3D(0.0f, 0.0f, 0.0f), const Vector3D &dimension=Vector3D(0.0f, 0.0f, 0.0f))
 Constructor of AABox.
void setDimension (const Vector3D &dimension)
 Sets the dimensions of this AABox.
const Vector3DgetDimension () const
 Gets the dimensions of this AABox.
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 AABoxcreate (const Vector3D &position=Vector3D(0.0f, 0.0f, 0.0f), const Vector3D &dimension=Vector3D(0.0f, 0.0f, 0.0f))
 Creates and registers a new AABox.

Detailed Description

A Zone defining an axis-aligned Box.

An AABox is defined by its center and a dimension in each axis.

Definition at line 36 of file SPK_AABox.h.


Constructor & Destructor Documentation

AABox ( const Vector3D position = Vector3D(0.0f, 0.0f, 0.0f),
const Vector3D dimension = Vector3D(0.0f, 0.0f, 0.0f) 
)

Constructor of AABox.

Parameters:
position : the position of the AABox
dimension : the dimension of the AABox

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.

AABox * create ( const Vector3D position = Vector3D(0.0f,0.0f,0.0f),
const Vector3D dimension = Vector3D(0.0f,0.0f,0.0f) 
) [static]

Creates and registers a new AABox.

Parameters:
position : the position of the AABox
dimension : the dimension of the AABox
Since:
1.04.00

Definition at line 103 of file SPK_AABox.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.

const Vector3D & getDimension (  )  const

Gets the dimensions of this AABox.

Returns:
the dimensions of this AABox

Definition at line 110 of file SPK_AABox.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 setDimension ( const Vector3D dimension  ) 

Sets the dimensions of this AABox.

The negative dimensions are clamped to 0.
An AABox with 0 as its 3 dimensions is equivalent to a Point

Parameters:
dimension : the dimensions of this AABox

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