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. |