Class representing an Ellipsoid in 3D.
Implements body concept, i.e. a fastOverlapCheck and a contains() function, which can be used to initialize fields. For details about the body concept see BodyOverlapFunctions.h
#include <Ellipsoid.h>
Public Member Functions | |
Ellipsoid (const Vector3< real_t > &midpoint, Vector3< real_t > axis1, Vector3< real_t > axis2, const Vector3< real_t > &radii) | |
Ellipsoid constructor. More... | |
const AABB & | boundingBox () const |
bool | contains (const Vector3< real_t > &point) const |
const Vector3< real_t > | midpoint () const |
real_t | maxRadius () const |
real_t | minRadius () const |
Private Member Functions | |
void | updateBoundingBox () |
Private Attributes | |
Vector3< real_t > | midpoint_ |
Matrix3< real_t > | mat_ |
Matrix3< real_t > | rotationMatrix_ |
Vector3< real_t > | radii_ |
real_t | maxRadius_ |
real_t | minRadius_ |
AABB | boundingBox_ |
|
explicit |
Ellipsoid constructor.
midpoint | midpoint of the ellipsoid |
axis1 | the first semi-axis of the ellipsoid ( associated with radius1 ) not required to be normalized, is normalized internally |
axis2 | second semi-axis (must not be parallel to axis1 ) should ideally be perpendicular to axis1 if not perpendicular, axis2 is made perpendicular to axis1 using one Gram-Schmitt step. The third semi-axis is computed as cross-product of axis1 and axis2 |
radii | the length of the semi axes |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |