#include <PhysicalEngine.h>
Inheritance diagram for Enki::PhysicalObject:

Public Member Functions | |
| PhysicalObject () | |
| Constructor. | |
| virtual | ~PhysicalObject () |
| Destructor. | |
| double | getRadius () const |
| double | getHeight () const |
| bool | isCylindric () const |
| const Hull & | getHull () const |
| const Color & | getColor () const |
| double | getInfraredReflectiveness () const |
| double | getMass () const |
| double | getMomentOfInertia () const |
| void | setCylindric (double radius, double height, double mass) |
| Make the object cylindric with a given mass. | |
| void | setRectangular (double l1, double l2, double height, double mass) |
| Make the object rectangular of size l1 x l2 with a given mass. | |
| void | setCustomHull (const Hull &hull, double mass) |
| Set a custom shape and mass to the object. | |
| void | setColor (const Color &color) |
| Set the overall color of this object, if hull is empty or if it does not contain any texture. | |
| void | setInfraredReflectiveness (double value) |
| Set the infrared reflectiveness of the object. | |
Public Attributes | |
| UserData * | userData |
| Data attached by the user to this physical object. If non-null, will be destroyed with the object. | |
| double | collisionElasticity |
| Elasticity of collisions of this object. If 0, soft collision, 100% energy dissipation; if 1, elastic collision, 0% energy dissipation. Actual elasticity is the product of the elasticity of the two colliding objects. Walls are fully elastics. | |
| double | dryFrictionCoefficient |
| The dry friction coefficient mu. | |
| double | viscousFrictionCoefficient |
| The viscous friction coefficient. Premultiplied by mass. A value of k applies a force of -k * speed * mass. | |
| double | viscousMomentFrictionCoefficient |
| The viscous friction moment coefficient. Premultiplied by momentOfInertia. A value of k applies a force of -k * speed * momentOfInertia. | |
| Point | pos |
| The position of the object. | |
| double | angle |
| The orientation of the object in the world, standard trigonometric orientation. | |
| Vector | speed |
| The speed of the object. | |
| double | angSpeed |
| The rotation speed of the object, standard trigonometric orientation. | |
Static Public Attributes | |
| static const double | g |
Protected Member Functions | |
| virtual void | controlStep (double dt) |
| Control step, not oversampled. | |
| virtual void | applyForces (double dt) |
| Apply forces, typically friction to reduce speed, but one can override to change behaviour. | |
| virtual void | initLocalInteractions (double dt, World *w) |
| Initialize the object specific interactions, do nothing for PhysicalObject. | |
| virtual void | doLocalInteractions (double dt, World *w, PhysicalObject *o) |
| Do the interactions with the other PhysicalObject, do nothing for PhysicalObject. | |
| virtual void | doLocalWallsInteraction (double dt, World *w) |
| Do the interactions with the walls of world w, do nothing for PhysicalObject. | |
| virtual void | finalizeLocalInteractions (double dt, World *w) |
| All interactions are finished, do nothing for PhysicalObject. | |
| virtual void | initGlobalInteractions (double dt, World *w) |
| Initialize the global interactions, do nothing for PhysicalObject. | |
| virtual void | doGlobalInteractions (double dt, World *w) |
| Do the global interactions with the world, do nothing for PhysicalObject. | |
| virtual void | finalizeGlobalInteractions (double dt, World *w) |
| All global interactions are finished, do nothing for PhysicalObject. | |
Private Member Functions | |
| void | computeMomentOfInertia () |
| Compute the moment of inertia tensor depending on radius, mass, height, and hull, assuming that the hull is centered around the center of mass, which is done by setupCentorOfMass(). | |
| void | setupCenterOfMass () |
| Compute the center of mass and move bounding surfaces accordingly. Does not update the moment of inertia tensor. | |
| void | computeTransformedShape () |
| Compute the hull of this object in world coordinates. | |
| void | initPhysicsInteractions (double dt) |
| Initialize the collision logic. | |
| void | finalizePhysicsInteractions (double dt) |
| All collisions are finished, deinterlace the object. | |
| void | collideWithStaticObject (const Vector &n, const Point &cp) |
| Dynamics for collision with a static object at points cp with normal vector n. | |
| void | collideWithObject (PhysicalObject &that, const Point &cp, const Vector &dist) |
| Dynamics for collision with that at point cp with a penetrated distance of dist. | |
Private Attributes | |
| double | mass |
| The mass of the object. If below zero, the object can't move (infinite mass). | |
| double | momentOfInertia |
| ! The moment of inertia tensor | |
| Hull | hull |
| The hull of this object, which can be composed of several Hull. | |
| double | r |
| The radius of circular objects or, if hull is not empty, the bounding circle. | |
| double | height |
| The height of circular object or, if hull is not empty, the maximum height. | |
| Color | color |
| The overall color of this object, if hull is empyt or if it does not contain any texture. | |
| double | infraredReflectiveness |
| The infrared reflection factor of the part. It acts only on proximity sensors. 1 one, the object is seen normally. If less than 1, the range on which the object is visible dimishes. If 0, the object is invisible to proximity sensors. For now it is global to the PhysicalObject, but ideally it should be part of the color. | |
Friends | |
| class | World |
Classes | |
| struct | Hull |
| A hull is a vector of Hull. More... | |
| class | Part |
| A part is one of the convex geometrical element that composes the physical object. More... | |
| class | UserData |
| User specific data that can be attached to any object in the world. More... | |
1.5.1