|
|
| ConvexPolyhedron (id_t sid, id_t uid, const Vec3 &gpos, const Quat &q, const TriangleMesh &mesh, MaterialID material, const bool global, const bool communicating, const bool infiniteMass) |
| Constructor for the ConvexPolyhedron class. More...
|
|
|
virtual | ~ConvexPolyhedron () |
| Destructor for the ConvexPolyhedron class. More...
|
|
void | init (const Vec3 &gpos, const Quat &q, const bool global, const bool communicating, const bool infiniteMass) |
|
|
virtual real_t | getVolume () const |
| Calculation of the volume of the ConvexPolyhedron. More...
|
|
real_t | getSurfaceArea () const |
| Calculation of the surface area of the ConvexPolyhedron. More...
|
|
const TriangleMesh & | getMesh () const |
|
|
virtual void | print (std::ostream &os, const char *tab) const |
| Output of the current state of a ConvexPolyhedron. More...
|
|
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...
|
|
|
Public Attributes inherited from walberla::pe::RigidBody |
MPIRigidBodyTrait | MPITrait |
|
Public Attributes inherited from walberla::pe::cr::HCSITSBodyTrait |
size_t | index_ |
|
| 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...
|
|
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...
|
|