|
Enki
1.9
|
A robot is a PhysicalObject that has additional interactions and a controller. More...
#include <PhysicalEngine.h>
Public Member Functions | |
| void | addLocalInteraction (LocalInteraction *li) |
| Add a new local interaction, re-sort interaction vector from long ranged to short ranged. | |
| void | addGlobalInteraction (GlobalInteraction *gi) |
| Add a global interaction, just add it at the end of the vector. | |
| virtual void | initLocalInteractions (double dt, World *w) |
| Initialize the local interactions, call init on each one. | |
| virtual void | doLocalInteractions (double dt, World *w, PhysicalObject *po) |
| Do the local interactions with other objects, call objectStep on each one. | |
| virtual void | doLocalWallsInteraction (double dt, World *w) |
| Do the local interactions with walls, call wallsStep on each one. | |
| virtual void | finalizeLocalInteractions (double dt, World *w) |
| All the local interactions are finished, call finalize on each one. | |
| virtual void | doGlobalInteractions (double dt, World *w) |
| Do the global interactions, call step on each one. | |
| void | sortLocalInteractions (void) |
| Sort local interactions. Called by addLocalInteraction ; can be called by subclasses in case of interaction radius change. | |
Public Member Functions inherited from Enki::PhysicalObject | |
| PhysicalObject () | |
| Constructor. | |
| virtual | ~PhysicalObject () |
| Destructor. | |
| double | getRadius () const |
| double | getHeight () const |
| bool | isCylindric () const |
| const Hull & | getHull () const |
| const Color & | getColor () const |
| double | getMass () const |
| double | getMomentOfInertia () const |
| double | getInterlacedDistance () 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. | |
| virtual void | clickedInteraction (bool pressed, unsigned int buttonCode, double pointX, double pointY, double pointZ) |
| called for robot if a click is performed on it | |
Protected Attributes | |
| std::vector< LocalInteraction * > | localInteractions |
| Vector of local interactions. | |
| std::vector< GlobalInteraction * > | globalInteractions |
| Vector of global interactions. | |
Additional Inherited Members | |
Public Types inherited from Enki::PhysicalObject | |
| enum | ButtonCode { LEFT_MOUSE_BUTTON = 1<<0, RIGHT_MOUSE_BUTTON = 1<<1, MIDDLE_MOUSE_BUTTON = 1<<3 } |
Public Attributes inherited from Enki::PhysicalObject | |
| 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 inherited from Enki::PhysicalObject | |
| static const double | g = 9.81 |
Protected Member Functions inherited from Enki::PhysicalObject | |
| 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 | collisionEvent (PhysicalObject *o) |
| The object collided with o during the current physical step, if o is null, it collided with walls. Called just before the object is de-interlaced. | |
| virtual void | initGlobalInteractions (double dt, World *w) |
| Initialize the global interactions, do nothing for PhysicalObject. | |
| virtual void | finalizeGlobalInteractions (double dt, World *w) |
| All global interactions are finished, do nothing for PhysicalObject. | |
A robot is a PhysicalObject that has additional interactions and a controller.
1.8.11