A Zone defining a point in the universe. More...
Public Member Functions | |
Point (const Vector3D &position=Vector3D(0.0f, 0.0f, 0.0f)) | |
Constructor of Point. | |
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 Point * | create (const Vector3D &position=Vector3D(0.0f, 0.0f, 0.0f)) |
Creates and registers a new Point. |
A Zone defining a point in the universe.
Definition at line 36 of file SPK_Point.h.
Computes the normal for the point.
point | : the point from where the normal is computed |
Implements Zone.
bool contains | ( | const Vector3D & | point | ) | const [virtual] |
Checks whether a point is within the Zone.
point | : the point to check |
Implements Zone.
Definition at line 80 of file SPK_Point.h.
Creates and registers a new Point.
position | : the position of the Point |
Definition at line 68 of file SPK_Point.h.
void generatePosition | ( | Particle & | particle, | |
bool | full | |||
) | const [virtual] |
Randomly generates a position inside this Zone for a given Particle.
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.
Definition at line 75 of file SPK_Point.h.
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.
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 |
Implements Zone.
Definition at line 85 of file SPK_Point.h.
void moveAtBorder | ( | Vector3D & | point, | |
bool | inside | |||
) | const [virtual] |