|
waLBerla 7.2
|
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. | |
| 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 |