Base class for the sphere geometry.
The Sphere class represents the base class for the sphere geometry. It provides the basic functionality of a sphere. For a full description of the sphere geometry, see the Sphere class description.
#include <Sphere.h>
Public Member Functions | |
Constructors | |
Sphere (id_t sid, id_t uid, const Vec3 &gpos, const Quat &q, real_t radius, MaterialID material, const bool global, const bool communicating, const bool infiniteMass) | |
Constructor for the Sphere class. More... | |
Sphere (id_t const typeID, id_t sid, id_t uid, const Vec3 &gpos, const Quat &q, real_t radius, MaterialID material, const bool global, const bool communicating, const bool infiniteMass) | |
Destructor | |
~Sphere () override | |
Destructor for the Sphere class. More... | |
Get functions | |
real_t | getRadius () const |
Returns the radius of the sphere. More... | |
real_t | getVolume () const override |
Returns the volume of the sphere. More... | |
Output functions | |
void | print (std::ostream &os, const char *tab) const override |
Output of the current state of a sphere. More... | |
Public Member Functions inherited from walberla::pe::GeomPrimitive | |
MaterialID | getMaterial () const |
Returns the material of the geometric primitive. More... | |
Public Member Functions inherited from walberla::pe::RigidBody | |
virtual | ~RigidBody ()=0 |
Destructor for the RigidBody class. More... | |
void | wake () |
Waking the rigid body and ending the sleep mode. More... | |
void | calcMotion () |
Calculating the current motion of a rigid body. More... | |
bool | hasManager () const |
Returns whether the rigid body currently has a supervising rigid body manager. More... | |
ManagerID | getManager () |
Returns the supervising rigid body manager of the rigid body. More... | |
ConstManagerID | getManager () const |
bool | hasSuperBody () const |
Returns whether the rigid body is contained in a superordinate body. More... | |
BodyID | getSuperBody () |
Returns the superordinate body in which the rigid body is contained. More... | |
ConstBodyID | getSuperBody () const |
BodyID | getTopSuperBody () |
Returns the top level superordinate body in which the rigid body is contained. More... | |
ConstBodyID | getTopSuperBody () const |
virtual bool | hasSubBodies () const |
bool | isFinite () const |
Returns whether the rigid body is finite or not. More... | |
bool | isAwake () const |
Returns whether the rigid body is awake or not. More... | |
bool | isFixed () const |
Returns whether the rigid body's position is fixed or not. More... | |
bool | hasInfiniteMass () const |
Checks if a body is "mobile" e.g. More... | |
bool | isVisible () const |
Returns whether the rigid body is visible or not. More... | |
bool | isMarkedForDeletion () const |
id_t | getSystemID () const |
Returns the unique system-specific ID of the rigid body. More... | |
id_t | getID () const |
Returns the user-specific ID of the rigid body. More... | |
const Vec3 | getRelPosition () const |
Returns the relative position of the rigid body within the superordinate body. More... | |
const Vec3 | getPosition () const |
Returns the global position of the center of mass of the rigid body. More... | |
const Vec3 | getBodyLinearVel () const |
Returns the relative linear velocity of the rigid body. More... | |
const Vec3 | getLinearVel () const |
Returns the global linear velocity of the rigid body. More... | |
const Vec3 | getBodyAngularVel () const |
Returns the relative angular velocity. More... | |
const Vec3 & | getAngularVel () const |
Returns the global angular velocity. More... | |
const Quat | getRelQuaternion () const |
Returns the relative orientation of the rigid body to its superbody. More... | |
const Quat | getQuaternion () const |
Returns the orientation of the rigid body. More... | |
const Mat3 | getRotation () const |
Returns the rotation of the rigid body. More... | |
real_t | getMass () const |
Returns the total mass of the rigid body. More... | |
real_t | getInvMass () const |
Returns the inverse total mass of the rigid body. More... | |
const Mat3 & | getBodyInertia () const |
Returns the moment of inertia in reference to the body frame of the rigid body. More... | |
const Mat3 | getInertia () const |
Returns the moment of inertia in reference to the global world frame. More... | |
const Mat3 & | getInvBodyInertia () const |
Returns the inverse moment of inertia in reference to the body frame of the rigid body. More... | |
const Mat3 | getInvInertia () const |
Returns the inverse moment of inertia in reference to the global world frame. More... | |
const AABB & | getAABB () const |
Returns the axis-aligned bounding box of the rigid body. More... | |
real_t | getAABBSize () const |
Returns the length of the longest side of the AABB of the rigid body. More... | |
real_t | getKineticEnergy () const |
Returns the kinetic energy of the rigid body. More... | |
real_t | getRotationalEnergy () const |
Returns the rotational energy of the rigid body. More... | |
real_t | getEnergy () const |
Returns the energy of the rigid body. More... | |
const Vec3 | vectorFromBFtoWF (real_t vx, real_t vy, real_t vz) const |
Transformation from a relative to a global vector. More... | |
const Vec3 | vectorFromBFtoWF (const Vec3 &v) const |
Transformation from a relative to a global vector. More... | |
const Vec3 | pointFromBFtoWF (real_t px, real_t py, real_t pz) const |
Transformation from a relative to a global coordinate. More... | |
const Vec3 | pointFromBFtoWF (const Vec3 &rpos) const |
Transformation from a relative to a global coordinate. More... | |
virtual Vec3 | velFromBF (real_t px, real_t py, real_t pz) const |
Calculation of the global velocity of a relative point. More... | |
virtual Vec3 | velFromBF (const Vec3 &rpos) const |
Calculation of the global velocity of a relative point. More... | |
const Vec3 | vectorFromWFtoBF (real_t vx, real_t vy, real_t vz) const |
Transformation from a global to a relative vector. More... | |
const Vec3 | vectorFromWFtoBF (const Vec3 &v) const |
Transformation from a global to a relative vector. More... | |
const Vec3 | pointFromWFtoBF (real_t px, real_t py, real_t pz) const |
Transformation from a global to a relative coordinate. More... | |
const Vec3 | pointFromWFtoBF (const Vec3 &gpos) const |
Transformation from a global to a relative coordinate. More... | |
virtual Vec3 | velFromWF (real_t px, real_t py, real_t pz) const |
Calculation of the global velocity of a point in global coordinates. More... | |
virtual Vec3 | velFromWF (const Vec3 &gpos) const |
Calculation of the global velocity of a point in global coordinates. More... | |
const Vec3 | accFromWF (real_t px, real_t py, real_t pz) const |
Calculation of the global acceleration of a point in global coordinates. More... | |
const Vec3 | accFromWF (const Vec3 &gpos) const |
Calculation of the global acceleration of a point in global coordinates. More... | |
id_t | getTypeID () const |
void | translate (real_t dx, real_t dy, real_t dz) |
Translation of the center of mass of the rigid body by the displacement vector. More... | |
void | translate (const Vec3 &dp) |
Translation of the center of mass of the rigid body by the displacement vector dp. More... | |
void | rotate (real_t x, real_t y, real_t z, real_t angle) |
Rotation of the rigid body around the global rotation axis (x,y,z) by the rotation angle angle. More... | |
void | rotate (const Vec3 &axis, real_t angle) |
Rotation of the rigid body around the specified global rotation axis by the rotation. More... | |
void | rotate (real_t xangle, real_t yangle, real_t zangle) |
Rotation of the rigid body by the Euler angles xangle, yangle and zangle. More... | |
void | rotate (const Vec3 &euler) |
Rotation of the rigid body by the Euler angles euler. More... | |
void | rotate (const Quat &dq) |
Rotation of the rigid body by the quaternion dq. More... | |
void | rotateAroundOrigin (real_t x, real_t y, real_t z, real_t angle) |
Rotation of the rigid body around the origin of the global world frame. More... | |
void | rotateAroundOrigin (const Vec3 &axis, real_t angle) |
Rotation of the rigid body around the origin of the global world frame. More... | |
void | rotateAroundOrigin (real_t xangle, real_t yangle, real_t zangle) |
Rotation of the rigid body around the origin of the global world frame. More... | |
void | rotateAroundOrigin (const Vec3 &euler) |
Rotation of the rigid body around the origin of the global world frame. More... | |
void | rotateAroundOrigin (const Quat &dq) |
Rotation of the rigid body around the origin of the global world frame. More... | |
void | rotateAroundPoint (const Vec3 &point, const Vec3 &axis, real_t angle) |
Rotation of the rigid body around a specific global coordinate. More... | |
void | rotateAroundPoint (const Vec3 &point, const Vec3 &euler) |
Rotation of the rigid body around a specific global coordinate. More... | |
bool | containsRelPoint (real_t px, real_t py, real_t pz) const |
Checks, whether a point in body relative coordinates lies inside the rigid body. More... | |
bool | containsRelPoint (const Vec3 &rpos) const |
Checks, whether a point in body relative coordinates lies inside the rigid body. More... | |
bool | containsPoint (real_t px, real_t py, real_t pz) const |
Checks, whether a point in global coordinates lies inside the rigid body. More... | |
bool | containsPoint (const Vec3 &gpos) const |
Checks, whether a point in global coordinates lies inside the rigid body. More... | |
bool | isSurfaceRelPoint (real_t px, real_t py, real_t pz) const |
Checks, whether a point in relative coordinates lies on the surface of the rigid body. More... | |
bool | isSurfaceRelPoint (const Vec3 &rpos) const |
Checks, whether a point in body relative coordinates lies on the surface of the rigid body. More... | |
bool | isSurfacePoint (real_t px, real_t py, real_t pz) const |
Checks, whether a point in global coordinates lies on the surface of the rigid body. More... | |
bool | isSurfacePoint (const Vec3 &gpos) const |
Checks, whether a point in global coordinates lies on the surface of the rigid body. More... | |
virtual Vec3 | supportContactThreshold (const Vec3 &d) const |
Estimates the point which is farthest in direction d. More... | |
bool | hasForce () const |
Returns whether the rigid body has non-zero acting forces or torques. More... | |
const Vec3 & | getForce () const |
Returns the current force acting on the body's center of mass. More... | |
const Vec3 & | getTorque () const |
Returns the current torque acting on the body's center of mass. More... | |
void | setForce (const Vec3 &f) |
Set the force acting at the body's center of mass. More... | |
void | setTorque (const Vec3 &tau) |
Set the torque acting at the body's center of mass. More... | |
void | addRelForce (real_t fx, real_t fy, real_t fz) |
Increases the total force acting in the body's center of mass. More... | |
void | addRelForce (const Vec3 &f) |
Increases the force acting in the body's center of mass. More... | |
void | addForce (real_t fx, real_t fy, real_t fz) |
Increases the force acting in the body's center of mass. More... | |
void | addForce (const Vec3 &f) |
Increases the force acting in the body's center of mass. More... | |
void | addRelForceAtRelPos (real_t fx, real_t fy, real_t fz, real_t px, real_t py, real_t pz) |
Increases the force acting in the body's center of mass. More... | |
void | addRelForceAtRelPos (const Vec3 &f, const Vec3 &rpos) |
Increases the force acting in the body's center of mass. More... | |
void | addRelForceAtPos (real_t fx, real_t fy, real_t fz, real_t px, real_t py, real_t pz) |
Increases the force acting in the body's center of mass. More... | |
void | addRelForceAtPos (const Vec3 &f, const Vec3 &gpos) |
Increases the force acting in the body's center of mass. More... | |
void | addForceAtRelPos (real_t fx, real_t fy, real_t fz, real_t px, real_t py, real_t pz) |
Increases the force acting in the body's center of mass. More... | |
void | addForceAtRelPos (const Vec3 &f, const Vec3 &rpos) |
Increases the force acting in the body's center of mass. More... | |
void | addForceAtPos (real_t fx, real_t fy, real_t fz, real_t px, real_t py, real_t pz) |
Increases the force acting in the body's center of mass. More... | |
void | addForceAtPos (const Vec3 &f, const Vec3 &gpos) |
Increases the force acting in the body's center of mass. More... | |
void | addTorque (real_t tx, real_t ty, real_t tz) |
Increasing the torque acting in the body's center of mass. More... | |
void | addTorque (const Vec3 &t) |
Increasing the torque acting in the body's center of mass. More... | |
virtual void | resetForceAndTorque () |
Resetting all acting forces and torques from the rigid body. More... | |
void | addImpulse (real_t jx, real_t jy, real_t jz) |
Applying an impulse in the body's center of mass. More... | |
void | addImpulse (const Vec3 &j) |
Applying an impulse in the body's center of mass. More... | |
void | addImpulseAtPos (real_t jx, real_t jy, real_t jz, real_t px, real_t py, real_t pz) |
Applying an impulse at the given global coordinate. More... | |
void | addImpulseAtPos (const Vec3 &j, const Vec3 &p) |
Applying an impulse at the given global coordinate. More... | |
bool | isRemote () const |
Returns whether the rigid body is remote or not. More... | |
virtual void | setRemote (bool remote) |
Setting the remote flag of the rigid body. More... | |
bool | isGlobal () const |
Returns whether the rigid body is global or not. More... | |
void | setGlobal (const bool global) |
Setting the global flag of the rigid body. More... | |
bool | isCommunicating () const |
Returns whether the rigid body is local or not. More... | |
void | setCommunicating (const bool communicating) |
Setting the local flag of the rigid body. More... | |
virtual bool | checkInvariants () |
Checks the validity of the state of the rigid body. More... | |
void | setSB (BodyID body) |
Sets the super body for the current body. More... | |
void | resetSB () |
Resets the super body for the current body. More... | |
void | setFinite (const bool finite) |
void | setVisible (bool visible) |
Setting the rigid body visible/invisible. More... | |
void | setPosition (real_t px, real_t py, real_t pz) |
Setting the global position of the rigid body. More... | |
void | setPosition (const Vec3 &gpos) |
Setting the global position of the rigid body. More... | |
void | setRelPosition (const Vec3 &gpos) |
Setting the global position of the rigid body. More... | |
void | setOrientation (real_t r, real_t i, real_t j, real_t k) |
Setting the global orientation of the rigid body. More... | |
void | setOrientation (const Quat &q) |
Setting the global orientation of the rigid body. More... | |
void | setRelOrientation (const Quat &q) |
Setting the relative position of the rigid body. More... | |
void | setMassAndInertiaToInfinity () |
Setting the mass to infinity. This will also make the inertia tensor infinite. More... | |
void | setRelLinearVel (real_t vx, real_t vy, real_t vz) |
Setting the relative linear velocity of the rigid body. More... | |
void | setRelLinearVel (const Vec3 &lvel) |
void | setLinearVel (real_t vx, real_t vy, real_t vz) |
Setting the global linear velocity of the rigid body. More... | |
void | setLinearVel (const Vec3 &lvel) |
/see setLinearVel( real_t vx, real_t vy, real_t vz ) More... | |
void | setRelAngularVel (real_t ax, real_t ay, real_t az) |
Setting the relative angular velocity of the rigid body. More... | |
void | setRelAngularVel (const Vec3 &avel) |
/see setRelAngularVel( real_t ax, real_t ay, real_t az ) More... | |
void | setAngularVel (real_t ax, real_t ay, real_t az) |
Setting the global angular velocity of the rigid body. More... | |
void | setAngularVel (const Vec3 &avel) |
/see setAngularVel( real_t ax, real_t ay, real_t az ) More... | |
void | markForDeletion () |
Marks the rigid body for deletion during the next synchronization. More... | |
Public Member Functions inherited from walberla::pe::ccd::HashGridsBodyTrait | |
void * | getGrid () const |
Returns the grid the rigid body is currently assigned to. More... | |
size_t | getHash () const |
Returns the current hash value of the rigid body. More... | |
size_t | getCellId () const |
Returns the current body container index within the cell the body is currently assigned to. More... | |
void | setGrid (void *grid) |
Setting the grid the rigid body is associated with. More... | |
void | setHash (size_t hash) |
Setting the hash value of the rigid body. More... | |
void | setCellId (size_t cell) |
Setting the body container index within the cell the body is currently assigned to. More... | |
Static Public Member Functions | |
Volume, mass and density functions | |
static real_t | calcVolume (real_t radius) |
Calculates the volume of a sphere for a given radius. More... | |
static real_t | calcMass (real_t radius, real_t density) |
Calculates the mass of a sphere for a given radius and density. More... | |
static real_t | calcDensity (real_t radius, real_t mass) |
Calculates the density of a sphere for a given radius and mass. More... | |
static Mat3 | calcInertia (const real_t mass, const real_t radius) |
Calculation of the moment of inertia in reference to the body frame of the sphere. More... | |
Utility functions | |
real_t | getRelDepth (real_t px, real_t py, real_t pz) const |
Calculates the depth of a point relative to the sphere's geometric center. More... | |
real_t | getRelDepth (const Vec3 &rpos) const |
Calculates the depth of a point relative to the sphere's geometric center. More... | |
real_t | getDepth (real_t px, real_t py, real_t pz) const |
Calculates the depth of a point in global coordinates. More... | |
real_t | getDepth (const Vec3 &gpos) const |
Calculates the depth of a point in global coordinates. More... | |
real_t | getRelDistance (real_t px, real_t py, real_t pz) const |
Calculates the distance of a point relative to the sphere's frame of reference. More... | |
real_t | getRelDistance (const Vec3 &rpos) const |
Calculates the distance of a point relative to the sphere's frame of reference. More... | |
real_t | getDistance (real_t px, real_t py, real_t pz) const |
Calculates the distance of a point in global coordinates. More... | |
real_t | getDistance (const Vec3 &gpos) const |
Calculates the distance of a point in global coordinates. More... | |
Vec3 | support (const Vec3 &d) const override |
Estimates the point which is farthest in direction d. More... | |
static id_t | getStaticTypeID () |
Returns unique type id of this type. More... | |
bool | containsRelPointImpl (real_t px, real_t py, real_t pz) const override |
Checks, whether a point in body relative coordinates lies inside the sphere. More... | |
bool | isSurfaceRelPointImpl (real_t px, real_t py, real_t pz) const override |
Checks, whether a point in body relative coordinates lies on the surface of the sphere. More... | |
void | calcBoundingBox () override |
Calculation of the bounding box of the sphere. More... | |
Member variables | |
real_t | radius_ |
Radius of the sphere. More... | |
static id_t | staticTypeID_ = std::numeric_limits<id_t>::max() |
template<class T , int N> | |
struct | SetBodyTypeIDs |
needed to be able to set static type ids with setStaticTypeID More... | |
static void | setStaticTypeID (id_t typeID) |
Additional Inherited Members | |
Public Attributes inherited from walberla::pe::RigidBody | |
MPIRigidBodyTrait | MPITrait |
Public Attributes inherited from walberla::pe::cr::HCSITSBodyTrait | |
size_t | index_ |
Protected Member Functions inherited from walberla::pe::GeomPrimitive | |
GeomPrimitive (id_t const typeID, id_t sid, id_t uid, MaterialID material) | |
Constructor for the GeomPrimitive class. More... | |
~GeomPrimitive () override=0 | |
Destructor for the Primitive class. More... | |
Protected Member Functions inherited from walberla::pe::RigidBody | |
virtual void | fix () |
Setting the global position (the center of mass) of the rigid body fixed. More... | |
void | signalModification () |
Signals an internal modification of a contained subordinate body. More... | |
void | signalTranslation () |
Signals a position change of a contained subordinate body. More... | |
void | signalRotation () |
Signals an orientation change of a contained subordinate body. More... | |
void | signalFixation () |
Signals a fixation change of a contained subordinate body. More... | |
virtual void | handleModification () |
Handling an internal modification of a contained subordinate body. More... | |
virtual void | handleTranslation () |
Handling a position change of a contained subordinate body. More... | |
virtual void | handleRotation () |
Handling an orientation change of a contained subordinate body. More... | |
virtual void | handleFixation () |
Handling a fixation change of a contained subordinate body. More... | |
RigidBody (id_t const typeID, id_t sid, id_t uid) | |
Constructor for the RigidBody class. More... | |
virtual void | setPositionImpl (real_t px, real_t py, real_t pz) |
virtual void | setOrientationImpl (real_t r, real_t i, real_t j, real_t k) |
Setting the global orientation of the rigid body. More... | |
virtual void | translateImpl (real_t dx, real_t dy, real_t dz) |
Translation of the center of mass of the rigid body by the displacement vector. More... | |
virtual void | rotateImpl (const Quat &dq) |
Implements the rotation of a rigid body. More... | |
virtual void | rotateAroundOriginImpl (const Quat &dq) |
Implements the rotation of a rigid body. More... | |
virtual void | rotateAroundPointImpl (const Vec3 &point, const Quat &dq) |
Rotation of the rigid body around a specific global coordinate. More... | |
void | setMassAndInertia (const real_t mass, const Mat3 &inertia) |
Sets mass and inertia of a rigid body. More... | |
Protected Member Functions inherited from walberla::pe::ccd::HashGridsBodyTrait | |
HashGridsBodyTrait () | |
Constructor for the BodyTrait<HashGrids> specialization. More... | |
Protected Attributes inherited from walberla::pe::GeomPrimitive | |
MaterialID | material_ |
The material of the geometric primitive. More... | |
Protected Attributes inherited from walberla::pe::RigidBody | |
bool | awake_ |
Sleep mode flag. More... | |
real_t | mass_ |
The total mass of the rigid body. More... | |
real_t | invMass_ |
The inverse total mass of the rigid body. More... | |
real_t | motion_ |
The current motion of the rigid body. More... | |
Vec3 | v_ |
The linear velocity of this rigid body. More... | |
Vec3 | w_ |
Angular velocity of this rigid body. More... | |
Vec3 | force_ |
Total force (external+contact) acting in the body's center of mass. More... | |
Vec3 | torque_ |
Total torque (external+contact) acting in the body's center of mass. More... | |
Mat3 | I_ |
The moment of inertia in reference to the body's own body frame. More... | |
Mat3 | Iinv_ |
The inverse moment of inertia within the body frame. More... | |
ManagerID | manager_ |
The rigid body manager responsible for the rigid body. More... | |
BodyID | sb_ |
The superordinate rigid body. More... | |
bool | finite_ |
Finiteness flag. More... | |
bool | visible_ |
Visibility flag. More... | |
bool | remote_ |
Remote flag. More... | |
bool | communicating_ |
Communicating flag. More... | |
bool | global_ |
Global flag. More... | |
bool | toBeDeleted_ |
This flag marks the body for deletion during the next synchronization (only works on local bodies) More... | |
id_t | sid_ |
The unique system-specific body ID. More... | |
id_t | uid_ |
The user-specific body ID. More... | |
AABB | aabb_ |
Axis-aligned bounding box for the rigid body. More... | |
Protected Attributes inherited from walberla::pe::ccd::HashGridsBodyTrait | |
void * | grid_ |
Pointer to the hash grid this rigid body is currently assigned to. More... | |
size_t | hash_ |
Current hash value of this rigid body. More... | |
size_t | cellId_ |
The body's index in the body container of the grid cell this rigid body is currently assigned to. More... | |
|
explicit |
Constructor for the Sphere class.
sid | Unique system-specific ID for the sphere. |
uid | User-specific ID for the sphere. |
gpos | Global geometric center of the sphere. |
q | The orientation of the sphere's body frame in the global world frame. |
radius | The radius of the sphere \( (0..\infty) \). |
material | The material of the sphere. |
global | specifies if the sphere should be created in the global storage |
communicating | specifies if the sphere should take part in synchronization (syncNextNeighbour, syncShadowOwner) |
infiniteMass | specifies if the sphere has infinite mass and will be treated as an obstacle |
|
explicit |
|
override |
Destructor for the Sphere class.
|
inlineoverrideprotectedvirtual |
Calculation of the bounding box of the sphere.
This function updates the axis-aligned bounding box of the sphere primitive according to the current position and orientation of the sphere. Note that the bounding box is increased in all dimensions by pe::contactThreshold to guarantee that rigid bodies in close proximity of the sphere are also considered during the collision detection process.
Implements walberla::pe::RigidBody.
Calculates the density of a sphere for a given radius and mass.
radius | The radius of the sphere. |
mass | The total mass of the sphere. |
Calculation of the moment of inertia in reference to the body frame of the sphere.
Calculates the mass of a sphere for a given radius and density.
radius | The radius of the sphere. |
density | The density of the sphere. |
Calculates the volume of a sphere for a given radius.
radius | The radius of the sphere. |
|
overrideprotectedvirtual |
Checks, whether a point in body relative coordinates lies inside the sphere.
px | The x-component of the relative coordinate. |
py | The y-component of the relative coordinate. |
pz | The z-component of the relative coordinate. |
Reimplemented from walberla::pe::RigidBody.
Calculates the depth of a point in global coordinates.
gpos | The global coordinate. |
Returns a positive value, if the point lies inside the sphere and a negative value, if the point lies outside the sphere.
Calculates the depth of a point in global coordinates.
px | The x-component of the global coordinate. |
py | The y-component of the global coordinate. |
pz | The z-component of the global coordinate. |
Returns a positive value, if the point lies inside the sphere and a negative value, if the point lies outside the sphere.
Calculates the distance of a point in global coordinates.
gpos | The global coordinate. |
Returns a positive value, if the point lies outside the sphere and a negative value, if the point lies inside the sphere.
Calculates the distance of a point in global coordinates.
px | The x-component of the global coordinate. |
py | The y-component of the global coordinate. |
pz | The z-component of the global coordinate. |
Returns a positive value, if the point lies outside the sphere and a negative value, if the point lies inside the sphere.
|
inline |
Returns the radius of the sphere.
Calculates the depth of a point relative to the sphere's geometric center.
rpos | The relative coordinate. |
Returns a positive value, if the point lies inside the sphere and a negative value, if the point lies outside the sphere.
Calculates the depth of a point relative to the sphere's geometric center.
px | The x-component of the relative coordinate. |
py | The y-component of the relative coordinate. |
pz | The z-component of the relative coordinate. |
Returns a positive value, if the point lies inside the sphere and a negative value, if the point lies outside the sphere.
Calculates the distance of a point relative to the sphere's frame of reference.
rpos | The relative coordinate. |
Returns a positive value, if the point lies outside the sphere and a negative value, if the point lies inside the sphere.
Calculates the distance of a point relative to the sphere's frame of reference.
px | The x-component of the relative coordinate. |
py | The y-component of the relative coordinate. |
pz | The z-component of the relative coordinate. |
Returns a positive value, if the point lies outside the sphere and a negative value, if the point lies inside the sphere.
|
inlinestatic |
Returns unique type id of this type.
|
inlineoverridevirtual |
Returns the volume of the sphere.
Reimplemented from walberla::pe::RigidBody.
|
overrideprotectedvirtual |
Checks, whether a point in body relative coordinates lies on the surface of the sphere.
px | The x-component of the relative coordinate. |
py | The y-component of the relative coordinate. |
pz | The z-component of the relative coordinate. |
The tolerance level of the check is pe::surfaceThreshold.
Reimplemented from walberla::pe::RigidBody.
|
overridevirtual |
Output of the current state of a sphere.
os | Reference to the output stream. |
tab | Indentation in front of every line of the sphere output. |
Implements walberla::pe::RigidBody.
|
inlinestaticprivate |
Estimates the point which is farthest in direction d.
d | The normalized search direction in world-frame coordinates. |
Reimplemented from walberla::pe::RigidBody.
|
friend |
needed to be able to set static type ids with setStaticTypeID
|
protected |
Radius of the sphere.
The radius is constrained to values larger than 0.0.