Nazara Engine
0.4
A fast, complete, cross-platform API designed for game development
|
Math class that represents a sphere "S2" in a three dimensional euclidean space. More...
Public Member Functions | |
Sphere (T X, T Y, T Z, T Radius) | |
Constructs a Sphere object from its center position and radius. More... | |
Sphere (const Vector3< T > ¢er, T Radius) | |
Constructs a Sphere object from its position and radius. More... | |
Sphere (const T sphere[4]) | |
Constructs a Sphere object from an array of four elements. More... | |
template<typename U > | |
Sphere (const Sphere< U > &sphere) | |
Constructs a Sphere object from another type of Sphere. More... | |
Sphere (const Sphere &sphere)=default | |
bool | Contains (T X, T Y, T Z) const |
Tests whether the sphere contains the provided point inclusive of the edge of the sphere. More... | |
bool | Contains (const Box< T > &box) const |
Tests whether the sphere contains the provided box inclusive of the edge of the sphere. More... | |
bool | Contains (const Vector3< T > &point) const |
Tests whether the sphere contains the provided point inclusive of the edge of the sphere. More... | |
T | Distance (T X, T Y, T Z) const |
Returns the distance from the sphere to the point (is negative when the point is inside the sphere) More... | |
T | Distance (const Vector3< T > &point) const |
Returns the distance from the sphere to the point (is negative when the point is inside the sphere) More... | |
Sphere & | ExtendTo (T X, T Y, T Z) |
Extends the sphere to contain the point in the boundary. More... | |
Sphere & | ExtendTo (const Vector3< T > &point) |
Extends the sphere to contain the point in the boundary. More... | |
Vector3< T > | GetNegativeVertex (const Vector3< T > &normal) const |
Computes the negative vertex of one direction. More... | |
Vector3< T > | GetPosition () const |
Gets a Vector3 of the position. More... | |
Vector3< T > | GetPositiveVertex (const Vector3< T > &normal) const |
Computes the positive vertex of one direction. More... | |
bool | Intersect (const Box< T > &box) const |
Checks whether or not this sphere intersects a box. More... | |
bool | Intersect (const Sphere &sphere) const |
Checks whether or not this sphere intersects another sphere. More... | |
bool | IsValid () const |
Checks whether this sphere is valid. More... | |
Sphere & | MakeUnit () |
Makes the sphere position (0, 0, 0) and radius 1. More... | |
Sphere & | MakeZero () |
Makes the sphere position (0, 0, 0) and radius 0. More... | |
Sphere & | Set (T X, T Y, T Z, T Radius) |
Sets the components of the sphere with center and radius. More... | |
Sphere & | Set (const Sphere &sphere) |
Sets the components of the sphere with center and radius from another. More... | |
Sphere & | Set (const Vector3< T > ¢er, T Radius) |
Sets the components of the sphere with center and radius. More... | |
Sphere & | Set (const T sphere[4]) |
Sets the components of the sphere from an array of four elements. More... | |
template<typename U > | |
Sphere & | Set (const Sphere< U > &sphere) |
String | ToString () const |
Gives a string representation. More... | |
T & | operator[] (std::size_t i) |
Returns the ith element of the sphere. More... | |
T | operator[] (std::size_t i) const |
Returns the ith element of the sphere. More... | |
Sphere | operator* (T scalar) const |
Multiplies the radius of the sphere with a scalar. More... | |
Sphere & | operator= (const Sphere &other)=default |
Sphere & | operator*= (T scalar) |
Multiplies the radius of other sphere with a scalar. More... | |
bool | operator== (const Sphere &sphere) const |
Compares the sphere to other one. More... | |
bool | operator!= (const Sphere &sphere) const |
Compares the sphere to other one. More... | |
template<typename U > | |
Sphere< T > & | Set (const Sphere< U > &sphere) |
Sets the components of the sphere from another type of Sphere. More... | |
Static Public Member Functions | |
static Sphere | Lerp (const Sphere &from, const Sphere &to, T interpolation) |
Interpolates the sphere to other one with a factor of interpolation. More... | |
static Sphere | Unit () |
Shorthand for the sphere (0, 0, 0, 1) More... | |
static Sphere | Zero () |
Shorthand for the sphere (0, 0, 0, 0) More... | |
Public Attributes | |
T | x |
T | y |
T | z |
T | radius |
Math class that represents a sphere "S2" in a three dimensional euclidean space.
Nz::Sphere< T >::Sphere | ( | T | X, |
T | Y, | ||
T | Z, | ||
T | Radius | ||
) |
Constructs a Sphere object from its center position and radius.
X | X position |
Y | Y position |
Z | Z position |
Radius | half of the diameter |
Nz::Sphere< T >::Sphere | ( | const Vector3< T > & | center, |
T | Radius | ||
) |
Constructs a Sphere object from its position and radius.
center | Center of the sphere |
Radius | Half of the diameter |
Nz::Sphere< T >::Sphere | ( | const T | sphere[4] | ) |
Constructs a Sphere object from an array of four elements.
sphere[4] | sphere[0] is X component, sphere[1] is Y component, sphere[2] is Z component and sphere[3] is radius |
|
explicit |
bool Nz::Sphere< T >::Contains | ( | T | X, |
T | Y, | ||
T | Z | ||
) | const |
Tests whether the sphere contains the provided point inclusive of the edge of the sphere.
X | X position of the point |
Y | Y position of the point |
Z | Z position of the point |
bool Nz::Sphere< T >::Contains | ( | const Box< T > & | box | ) | const |
Tests whether the sphere contains the provided box inclusive of the edge of the sphere.
box | Three dimensional box |
bool Nz::Sphere< T >::Contains | ( | const Vector3< T > & | point | ) | const |
Tests whether the sphere contains the provided point inclusive of the edge of the sphere.
point | Position of the point |
T Nz::Sphere< T >::Distance | ( | T | X, |
T | Y, | ||
T | Z | ||
) | const |
Returns the distance from the sphere to the point (is negative when the point is inside the sphere)
X | X position of the point |
Y | Y position of the point |
Z | Z position of the point |
T Nz::Sphere< T >::Distance | ( | const Vector3< T > & | point | ) | const |
Returns the distance from the sphere to the point (is negative when the point is inside the sphere)
point | Position of the point |
Sphere< T > & Nz::Sphere< T >::ExtendTo | ( | T | X, |
T | Y, | ||
T | Z | ||
) |
Extends the sphere to contain the point in the boundary.
X | X position of the point |
Y | Y position of the point |
Z | Z position of the point |
Sphere< T > & Nz::Sphere< T >::ExtendTo | ( | const Vector3< T > & | point | ) |
Extends the sphere to contain the point in the boundary.
point | Position of the point |
Vector3< T > Nz::Sphere< T >::GetNegativeVertex | ( | const Vector3< T > & | normal | ) | const |
Computes the negative vertex of one direction.
normal | Vector normalized indicating a direction |
Vector3< T > Nz::Sphere< T >::GetPosition | ( | ) | const |
Gets a Vector3 of the position.
Vector3< T > Nz::Sphere< T >::GetPositiveVertex | ( | const Vector3< T > & | normal | ) | const |
Computes the positive vertex of one direction.
normal | Vector normalized indicating a direction |
bool Nz::Sphere< T >::Intersect | ( | const Box< T > & | box | ) | const |
Checks whether or not this sphere intersects a box.
box | Box to check |
bool Nz::Sphere< T >::Intersect | ( | const Sphere< T > & | sphere | ) | const |
Checks whether or not this sphere intersects another sphere.
sphere | Sphere to check |
bool Nz::Sphere< T >::IsValid | ( | ) | const |
Checks whether this sphere is valid.
|
static |
Interpolates the sphere to other one with a factor of interpolation.
from | Initial sphere |
to | Target sphere |
interpolation | Factor of interpolation |
Sphere< T > & Nz::Sphere< T >::MakeUnit | ( | ) |
Makes the sphere position (0, 0, 0) and radius 1.
Sphere< T > & Nz::Sphere< T >::MakeZero | ( | ) |
Makes the sphere position (0, 0, 0) and radius 0.
bool Nz::Sphere< T >::operator!= | ( | const Sphere< T > & | sphere | ) | const |
Compares the sphere to other one.
sphere | Other sphere to compare with |
Sphere< T > Nz::Sphere< T >::operator* | ( | T | scalar | ) | const |
Multiplies the radius of the sphere with a scalar.
scale | The scalar to multiply radius with |
Sphere< T > & Nz::Sphere< T >::operator*= | ( | T | scalar | ) |
Multiplies the radius of other sphere with a scalar.
scale | The scalar to multiply radius with |
bool Nz::Sphere< T >::operator== | ( | const Sphere< T > & | sphere | ) | const |
Compares the sphere to other one.
sphere | Other sphere to compare with |
T & Nz::Sphere< T >::operator[] | ( | std::size_t | i | ) |
Returns the ith element of the sphere.
std::domain_error | if NAZARA_MATH_SAFE is defined and one of you try to acces to index greather than 4 |
T Nz::Sphere< T >::operator[] | ( | std::size_t | i | ) | const |
Returns the ith element of the sphere.
std::domain_error | if NAZARA_MATH_SAFE is defined and one of you try to acces to index greather than 4 |
Sphere< T > & Nz::Sphere< T >::Set | ( | T | X, |
T | Y, | ||
T | Z, | ||
T | Radius | ||
) |
Sets the components of the sphere with center and radius.
X | X position |
Y | Y position |
Z | Z position |
Radius | half of the diameter |
Sphere< T > & Nz::Sphere< T >::Set | ( | const Sphere< T > & | sphere | ) |
Sets the components of the sphere with center and radius from another.
sphere | The other sphere |
Sphere< T > & Nz::Sphere< T >::Set | ( | const Vector3< T > & | center, |
T | Radius | ||
) |
Sets the components of the sphere with center and radius.
center | Center of the sphere |
Radius | Half of the diameter |
Sphere< T > & Nz::Sphere< T >::Set | ( | const T | sphere[4] | ) |
Sets the components of the sphere from an array of four elements.
sphere[4] | sphere[0] is X position, sphere[1] is Y position, sphere[2] is Z position and sphere[3] is radius |
Sphere<T>& Nz::Sphere< T >::Set | ( | const Sphere< U > & | sphere | ) |
String Nz::Sphere< T >::ToString | ( | ) | const |
Gives a string representation.
|
static |
Shorthand for the sphere (0, 0, 0, 1)
|
static |
Shorthand for the sphere (0, 0, 0, 0)