Box geometry.
The Box class represents the geometric primitive box, which is one of the basic geometric primitives of the pe physics module. The class is derived from the GeomPrimitive base class, which makes the box both a geometric primitive and a rigid body.
A box is created axis-aligned with the global coordinate system, where its geometric center is exactly in the middle of the box, the x-side is aligned with the x-axis, the y-side is aligned with the y-axis and the z-side is aligned with the z-axis.
#include <Box.h>
Public Member Functions | |
Constructors | |
Box (id_t sid, id_t uid, const Vec3 &gpos, const Quat &q, const Vec3 &lengths, MaterialID material, const bool global, const bool communicating, const bool infiniteMass) | |
Instantiation constructor for the Box class. More... | |
Destructor | |
~Box () override | |
Destructor for the Box class. More... | |
Get functions | |
const Vec3 & | getLengths () const |
Returns the side lengths of the box. More... | |
real_t | getVolume () const override |
Returns the volume of the box. More... | |
Output functions | |
void | print (std::ostream &os, const char *tab) const override |
Output of the current state of a box. 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... | |
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 x, real_t y, real_t z) |
Calculates the volume of a box for given side lengths. More... | |
static real_t | calcVolume (const Vec3 &l) |
Calculates the volume of a box for given side lengths. More... | |
static real_t | calcMass (real_t x, real_t y, real_t z, real_t density) |
Calculates the mass of a box for given side lengths and density. More... | |
static real_t | calcMass (const Vec3 &l, real_t density) |
Calculates the mass of a box for given side lengths and density. More... | |
static real_t | calcDensity (real_t x, real_t y, real_t z, real_t mass) |
Calculates the density of a box for given side lengths and mass. More... | |
static real_t | calcDensity (const Vec3 &l, real_t mass) |
Calculates the density of a box for given side lengths and mass. More... | |
static Mat3 | calcInertia (const Vec3 &length, const real_t mass) |
Calculation of the moment of inertia in reference to the body frame of the box. 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 box's frame of reference. More... | |
real_t | getRelDepth (const Vec3 &rpos) const |
Calculates the depth of a point relative to the box's frame of reference. 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 box's frame of reference. More... | |
real_t | getRelDistance (const Vec3 &rpos) const |
Calculates the distance of a point relative to the box'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... | |
Vec3 | supportContactThreshold (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 box. 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 box. More... | |
void | calcBoundingBox () override |
Calculation of the bounding box of the box. More... | |
Member variables | |
Vec3 | lengths_ |
Lengths of the x-, y- and z-sides of the box. 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 |
Instantiation constructor for the Box class.
sid | Unique system-specific ID for the box. |
uid | User-specific ID for the box. |
gpos | Global geometric center of the box. |
q | The orientation of the box's body frame in the global world frame. |
lengths | Side lengths of the box \( (0..\infty) \). |
material | The material of the box. |
global | specifies if the box should be created in the global storage |
communicating | specifies if the box should take part in synchronization (syncNextNeighbour, syncShadowOwner) |
infiniteMass | specifies if the box has infinite mass and will be treated as an obstacle |
|
override |
Destructor for the Box class.
|
overrideprotectedvirtual |
Calculation of the bounding box of the box.
This function updates the axis-aligned bounding box of the box primitive according to the current position and orientation of the box. Note that the bounding box is increased in all dimensions by pe::contactThreshold to guarantee that rigid bodies in close proximity of the box are also considered during the collision detection process.
Implements walberla::pe::RigidBody.
Calculates the density of a box for given side lengths and mass.
l | The side lengths of the box. |
mass | The total mass of the box. |
Calculates the density of a box for given side lengths and mass.
x | The x-length of the box. |
y | The y-length of the box. |
z | The z-length of the box. |
mass | The total mass of the box. |
Calculation of the moment of inertia in reference to the body frame of the box.
Calculates the mass of a box for given side lengths and density.
l | The side lengths of the box. |
density | The density of the box. |
Calculates the mass of a box for given side lengths and density.
x | The x-length of the box. |
y | The y-length of the box. |
z | The z-length of the box. |
density | The density of the box. |
Calculates the volume of a box for given side lengths.
l | The side lengths of the box. |
Calculates the volume of a box for given side lengths.
x | The x-length of the box. |
y | The y-length of the box. |
z | The z-length of the box. |
|
overrideprotectedvirtual |
Checks, whether a point in body relative coordinates lies inside the box.
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 box and a negative value, if the point lies outside the box. The returned depth is calculated relative to the closest side of the box.
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 box and a negative value, if the point lies outside the box. The returned depth is calculated relative to the closest side of the box.
Calculates the distance of a point in global coordinates.
gpos | The global coordinate. |
Returns a positive value, if the point lies outside the box and a negative value, if the point lies inside the box. The returned distance is calculated relative to the closest side of the box.
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 box and a negative value, if the point lies inside the box. The returned distance is calculated relative to the closest side of the box.
|
inline |
Returns the side lengths of the box.
Calculates the depth of a point relative to the box's frame of reference.
rpos | The relative coordinate. |
Returns a positive value, if the point lies inside the box and a negative value, if the point lies outside the box. The returned depth is calculated relative to the closest side of the box.
Calculates the depth of a point relative to the box'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 inside the box and a negative value, if the point lies outside the box. The returned depth is calculated relative to the closest side of the box.
Calculates the distance of a point relative to the box's frame of reference.
rpos | The relative coordinate. |
Returns a positive value, if the point lies outside the box and a negative value, if the point lies inside the box. The returned distance is calculated relative to the closest side of the box.
Calculates the distance of a point relative to the box'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 box and a negative value, if the point lies inside the box. The returned distance is calculated relative to the closest side of the box.
|
inlinestatic |
Returns unique type id of this type.
|
inlineoverridevirtual |
Returns the volume of the box.
Reimplemented from walberla::pe::RigidBody.
|
overrideprotectedvirtual |
Checks, whether a point in body relative coordinates lies on the surface of the box.
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 box.
os | Reference to the output stream. |
tab | Indentation in front of every line of the box 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.
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 |
Lengths of the x-, y- and z-sides of the box.
All side lengths are constrained to values larger than 0.