An PhysicsWorld object simulates collisions and other physical properties. You do not create PhysicsWorld objects directly; instead, you can get it from an Scene object. More...
Public Member Functions | |
| virtual void | addJoint (PhysicsJoint *joint) |
| Adds a joint to this physics world. More... | |
| virtual void | removeJoint (PhysicsJoint *joint, bool destroy=true) |
| Remove a joint from this physics world. More... | |
| virtual void | removeAllJoints (bool destroy=true) |
| Remove all joints from this physics world. More... | |
| virtual void | removeBody (PhysicsBody *body) |
| Remove a body from this physics world. More... | |
| virtual void | removeBody (int tag) |
| Remove body by tag. More... | |
| virtual void | removeAllBodies () |
| Remove all bodies from physics world. More... | |
| void | rayCast (PhysicsRayCastCallbackFunc func, const Vec2 &start, const Vec2 &end, void *data) |
| Searches for physics shapes that intersects the ray. More... | |
| void | queryRect (PhysicsQueryRectCallbackFunc func, const Rect &rect, void *data) |
| Searches for physics shapes that contains in the rect. More... | |
| void | queryPoint (PhysicsQueryPointCallbackFunc func, const Vec2 &point, void *data) |
| Searches for physics shapes that contains the point. More... | |
| Vector< PhysicsShape * > | getShapes (const Vec2 &point) const |
| Get physics shapes that contains the point. More... | |
| PhysicsShape * | getShape (const Vec2 &point) const |
| Get the nearest physics shape that contains the point. More... | |
| const Vector< PhysicsBody * > & | getAllBodies () const |
| Get all the bodies that in this physics world. More... | |
| PhysicsBody * | getBody (int tag) const |
| Get a body by tag. More... | |
| Scene & | getScene () const |
| Get a scene contain this physics world. More... | |
| Vec2 | getGravity () const |
| Get the gravity value of this physics world. More... | |
| void | setGravity (const Vec2 &gravity) |
| set the gravity value of this physics world. More... | |
| void | setSpeed (float speed) |
| Set the speed of this physics world. More... | |
| float | getSpeed () |
| Get the speed of this physics world. More... | |
| void | setUpdateRate (int rate) |
| Set the update rate of this physics world. More... | |
| int | getUpdateRate () |
| Get the update rate of this physics world. More... | |
| void | setSubsteps (int steps) |
| set the number of substeps in an update of the physics world. More... | |
| int | getSubsteps () const |
| Get the number of substeps of this physics world. More... | |
| void | setFixedUpdateRate (int updatesPerSecond) |
| set the number of update of the physics world in a second. More... | |
| int | getFixedUpdateRate () const |
| get the number of substeps | |
| void | setDebugDrawMask (int mask) |
| Set the debug draw mask of this physics world. More... | |
| void | setPreUpdateCallback (const std::function< void()> &callback) |
| set the callback which invoked before update of each object in physics world. | |
| void | setPostUpdateCallback (const std::function< void()> &callback) |
| set the callback which invoked after update of each object in physics world. | |
| int | getDebugDrawMask () |
| Get the debug draw mask. More... | |
| void | setAutoStep (bool autoStep) |
| To control the step of physics. More... | |
| bool | isAutoStep () |
| Get the auto step of this physics world. More... | |
| void | step (float delta) |
| The step for physics world. More... | |
Static Public Attributes | |
| static const int | DEBUGDRAW_NONE |
| draw nothing | |
| static const int | DEBUGDRAW_SHAPE |
| draw shapes | |
| static const int | DEBUGDRAW_JOINT |
| draw joints | |
| static const int | DEBUGDRAW_CONTACT |
| draw contact | |
| static const int | DEBUGDRAW_ALL |
| draw all | |
An PhysicsWorld object simulates collisions and other physical properties. You do not create PhysicsWorld objects directly; instead, you can get it from an Scene object.
|
virtual |
Adds a joint to this physics world.
This joint will be added to this physics world at next frame.
| joint | A pointer to an existing PhysicsJoint object. |
|
virtual |
Remove a joint from this physics world.
If this world is not locked, the joint is removed immediately, otherwise at next frame. If this joint is connected with a body, it will be removed from the body also.
| joint | A pointer to an existing PhysicsJoint object. |
| destroy | true this joint will be destroyed after remove from this world, false otherwise. |
|
virtual |
Remove all joints from this physics world.
| destroy | true all joints will be destroyed after remove from this world, false otherwise. |
|
virtual |
Remove a body from this physics world.
If this world is not locked, the body is removed immediately, otherwise at next frame.
| body | A pointer to an existing PhysicsBody object. |
|
virtual |
Remove body by tag.
If this world is not locked, the object is removed immediately, otherwise at next frame.
| tag | An integer number that identifies a PhysicsBody object. |
|
virtual |
Remove all bodies from physics world.
If this world is not locked, those body are removed immediately, otherwise at next frame.
| void rayCast | ( | PhysicsRayCastCallbackFunc | func, |
| const Vec2 & | start, | ||
| const Vec2 & | end, | ||
| void * | data | ||
| ) |
Searches for physics shapes that intersects the ray.
Query this physics world along the line segment from start to end.
| void queryRect | ( | PhysicsQueryRectCallbackFunc | func, |
| const Rect & | rect, | ||
| void * | data | ||
| ) |
Searches for physics shapes that contains in the rect.
Query this physics world to find all shapes overlap rect.
| func | Func is called for each shape whose bounding box overlaps rect. |
| rect | A Rect object contains a rectangle's x, y, width and height. |
| data | User defined data, it is passed to func. |
| void queryPoint | ( | PhysicsQueryPointCallbackFunc | func, |
| const Vec2 & | point, | ||
| void * | data | ||
| ) |
Searches for physics shapes that contains the point.
| func | Func is called for each shape contains the point. |
| point | A Vec2 object contains the position of the point. |
| data | User defined data, it is passed to func. |
| Vector<PhysicsShape*> getShapes | ( | const Vec2 & | point | ) | const |
Get physics shapes that contains the point.
All shapes contains the point will be pushed in a Vector<PhysicsShape*> object.
| point | A Vec2 object contains the position of the point. |
| PhysicsShape* getShape | ( | const Vec2 & | point | ) | const |
Get the nearest physics shape that contains the point.
Query this physics world at point and return the closest shape.
| point | A Vec2 object contains the position of the point. |
| const Vector<PhysicsBody*>& getAllBodies | ( | ) | const |
Get all the bodies that in this physics world.
| PhysicsBody* getBody | ( | int | tag | ) | const |
Get a body by tag.
| tag | An integer number that identifies a PhysicsBody object. |
|
inline |
Get a scene contain this physics world.
| void setGravity | ( | const Vec2 & | gravity | ) |
set the gravity value of this physics world.
| gravity | A gravity value of this physics world. |
|
inline |
Set the speed of this physics world.
| speed | A float number. Speed is the rate at which the simulation executes. default value is 1.0. |
|
inline |
Get the speed of this physics world.
|
inline |
Set the update rate of this physics world.
Update rate is the value of EngineUpdateTimes/PhysicsWorldUpdateTimes. Set it higher can improve performance, set it lower can improve accuracy of physics world simulation.
| rate | An integer number, default value is 1.0. |
|
inline |
Get the update rate of this physics world.
| void setSubsteps | ( | int | steps | ) |
set the number of substeps in an update of the physics world.
One physics update will be divided into several substeps to increase its accuracy.
| steps | An integer number, default value is 1. |
|
inline |
Get the number of substeps of this physics world.
|
inline |
set the number of update of the physics world in a second.
0 - disable fixed step system default value is 0
| void setDebugDrawMask | ( | int | mask | ) |
Set the debug draw mask of this physics world.
This physics world will draw shapes and joints by DrawNode according to mask.
| mask | Mask has four value:DEBUGDRAW_NONE, DEBUGDRAW_SHAPE, DEBUGDRAW_JOINT, DEBUGDRAW_CONTACT and DEBUGDRAW_ALL, default is DEBUGDRAW_NONE |
|
inline |
Get the debug draw mask.
|
inline |
To control the step of physics.
If you want control it by yourself( fixed-timestep for example ), you can set this to false and call step by yourself.
| autoStep | A bool object, default value is true. |
|
inline |
Get the auto step of this physics world.
| void step | ( | float | delta | ) |
The step for physics world.
The times passing for simulate the physics.
| delta | A float number. |