构造函数与析构函数
b2World::b2World ( const b2Vec2 & gravity,
bool doSleep
)
构造一个世界对象。
参数: gravity 世界重力向量。
doSleep 物体是否可休眠。通过不模拟休眠物体来提高引擎的效率。
b2World::~b2World ( )
摧毁世界。所有的物理学实体被摧毁,而且所有的堆内存被释放。
成员函数
void b2World::ClearForces ( )
在一个时间步之后通过调用该方法来清除队列。通常在每个 Step 方法调用后调用该方法,除非你在处理子步骤 (注,原意为表演子步骤 performing sub-steps)。默认的情况下,队列会被自动的清除,因此你不需要调用这个方法。
参见:
SetAutoClearForces
b2Body * b2World::CreateBody ( const b2BodyDef * def )
根据定义来创建一个刚体,定义的引用不会被保存。
警告:
此函数在回调期间会被锁定。
b2Joint * b2World::CreateJoint ( const b2JointDef * def )
创建一个关节用于约束物体。这可能导致被连接的物体之间会停止碰撞。定义的引用不会被保存。
警告:
此函数在回调期间会被锁定。
void b2World::DestroyBody ( b2Body * body )
摧毁给定的一个刚体。刚体的引用不会被保存。
警告:
这会自动地删除所有相关的形状和关节。
此函数在回调期间会被锁定。
void b2World::DestroyJoint ( b2Joint * joint )
摧毁一个关节。这可能导致被连接的物体之间会开始碰撞。
警告:
此函数在回调期间会被锁定
void b2World::DrawDebugData ( )
调用该方法来绘制形状以及其它调试绘制数据。
bool b2World::GetAutoClearForces ( ) const [inline]
获取在每个时间步之后用于控制自动清除队列的标志。
int32 b2World::GetBodyCount ( ) const [inline]
获取物体的数量。
b2Body * b2World::GetBodyList ( ) [inline]
获取世界物体的列表。它会返回一个物体的指针,请使用 b2Body::GetNext 方法来获得在世界列表中的下一个物体。一个为 NULL 的物体对象指针表示目录结束。
返回:
世界物体列表的起始。
int32 b2World::GetContactCount ( ) const [inline]
获取接触的数量(每个可能有0个或更多的接触点)。
b2Contact * b2World::GetContactList ( ) [inline]
获取世界接触的列表。它会返回一个接触的指针,请使用 b2Contact::GetNext 方法来获得在世界列表中的下一个接触。一个为 NULL 的接触对象指针表示目录结束。
返回:
世界接触列表的起始。
警告:
contacts are (该处原文未写完,可能是作者的失误。)
b2Vec2 b2World::GetGravity ( ) const [inline]
获得全局重力向量。
int32 b2World::GetJointCount ( ) const [inline]
获得关节的数量。
b2Joint * b2World::GetJointList ( ) [inline]
获取世界关节的列表。它会返回一个关节的指针,请使用 b2Joint::GetNext 方法来获得在世界列表中的下一个关节。一个为 NULL 的关节对象指针表示目录结束。
返回:
世界关节列表的起始。
int32 b2World::GetProxyCount ( ) const
获得 broad-phase 代理的数量.
bool b2World::IsLocked ( ) const [inline]
世界是否被锁定(在每个时间步中)。
void b2World::QueryAABB ( b2QueryCallback * callback,
const b2AABB & aabb
) const
查询世界中所有可能与提供AABB重叠的固定装置。
参数: callback 一个由使用者实现的回调类。
aabb 一个用于查询的盒子。
void b2World::RayCast ( b2RayCastCallback * callback,
const b2Vec2 & point1,
const b2Vec2 & point2
) const
光线投射的路径射向世界中所有的固定装置。你的回调是否控制离你最近的点、任何一点、或n-点(n-points)。光线投射会忽略包含出发点的形状。Ray-cast the world for all fixtures in the path of the ray. Your callback controls whether you get the closest point, any point, or n-points. The ray-cast ignores shapes that contain the starting point.
参数: callback 一个用户实现的回调类。
point1 光线起始点
point2 光线结束点
void b2World::SetAutoClearForces ( bool flag ) [inline]
设置一个标志来控制每一个时间步后是否自动清除力。
void b2World::SetContactFilter ( b2ContactFilter * filter )
注册一个接触过滤器控制特定地碰撞。否则,使用默认的过滤器b2_defaultFilter。该监听器归你持有,而且必须保证其有效性。
void b2World::SetContactListener ( b2ContactListener * listener )
注册一个接触事件监听器。该监听器归你持有,而且必须保证其有效性。
void b2World::SetContinuousPhysics ( bool flag ) [inline]
启用/禁用 连续物理测试。
void b2World::SetDebugDraw ( b2DebugDraw * debugDraw )
注册一个调试模式的绘图程序。调试功能的使用需要配合 b2World::DrawDebugData 方法。调试绘制对象归你持有,而且必须保证其有效性。
void b2World::SetDestructionListener ( b2DestructionListener * listener )
注册一个摧毁监听器。调试绘制对该监听器归你持有,而且必须保证其有效性。
void b2World::SetGravity ( const b2Vec2 & gravity ) [inline]
改变全局重力向量。
void b2World::SetWarmStarting ( bool flag ) [inline]
开启/禁用 用于测试的热启动。
void b2World::Step ( float32 timeStep,
int32 velocityIterations,
int32 positionIterations
)
执行一个时间步。这个操作中会执行碰撞检测(collision detection)、集成(integration)、求解约束(constraint solution)。
参数: timeStep 模拟的时间量,这不应该是一个变化的量。
velocityIterations 速度的约束求解量。
positionIterations 位置的约束求解量。
b2World::b2World ( const b2Vec2 & gravity,
bool doSleep
)
构造一个世界对象。
参数: gravity 世界重力向量。
doSleep 物体是否可休眠。通过不模拟休眠物体来提高引擎的效率。
b2World::~b2World ( )
摧毁世界。所有的物理学实体被摧毁,而且所有的堆内存被释放。
成员函数
void b2World::ClearForces ( )
在一个时间步之后通过调用该方法来清除队列。通常在每个 Step 方法调用后调用该方法,除非你在处理子步骤 (注,原意为表演子步骤 performing sub-steps)。默认的情况下,队列会被自动的清除,因此你不需要调用这个方法。
参见:
SetAutoClearForces
b2Body * b2World::CreateBody ( const b2BodyDef * def )
根据定义来创建一个刚体,定义的引用不会被保存。
警告:
此函数在回调期间会被锁定。
b2Joint * b2World::CreateJoint ( const b2JointDef * def )
创建一个关节用于约束物体。这可能导致被连接的物体之间会停止碰撞。定义的引用不会被保存。
警告:
此函数在回调期间会被锁定。
void b2World::DestroyBody ( b2Body * body )
摧毁给定的一个刚体。刚体的引用不会被保存。
警告:
这会自动地删除所有相关的形状和关节。
此函数在回调期间会被锁定。
void b2World::DestroyJoint ( b2Joint * joint )
摧毁一个关节。这可能导致被连接的物体之间会开始碰撞。
警告:
此函数在回调期间会被锁定
void b2World::DrawDebugData ( )
调用该方法来绘制形状以及其它调试绘制数据。
bool b2World::GetAutoClearForces ( ) const [inline]
获取在每个时间步之后用于控制自动清除队列的标志。
int32 b2World::GetBodyCount ( ) const [inline]
获取物体的数量。
b2Body * b2World::GetBodyList ( ) [inline]
获取世界物体的列表。它会返回一个物体的指针,请使用 b2Body::GetNext 方法来获得在世界列表中的下一个物体。一个为 NULL 的物体对象指针表示目录结束。
返回:
世界物体列表的起始。
int32 b2World::GetContactCount ( ) const [inline]
获取接触的数量(每个可能有0个或更多的接触点)。
b2Contact * b2World::GetContactList ( ) [inline]
获取世界接触的列表。它会返回一个接触的指针,请使用 b2Contact::GetNext 方法来获得在世界列表中的下一个接触。一个为 NULL 的接触对象指针表示目录结束。
返回:
世界接触列表的起始。
警告:
contacts are (该处原文未写完,可能是作者的失误。)
b2Vec2 b2World::GetGravity ( ) const [inline]
获得全局重力向量。
int32 b2World::GetJointCount ( ) const [inline]
获得关节的数量。
b2Joint * b2World::GetJointList ( ) [inline]
获取世界关节的列表。它会返回一个关节的指针,请使用 b2Joint::GetNext 方法来获得在世界列表中的下一个关节。一个为 NULL 的关节对象指针表示目录结束。
返回:
世界关节列表的起始。
int32 b2World::GetProxyCount ( ) const
获得 broad-phase 代理的数量.
bool b2World::IsLocked ( ) const [inline]
世界是否被锁定(在每个时间步中)。
void b2World::QueryAABB ( b2QueryCallback * callback,
const b2AABB & aabb
) const
查询世界中所有可能与提供AABB重叠的固定装置。
参数: callback 一个由使用者实现的回调类。
aabb 一个用于查询的盒子。
void b2World::RayCast ( b2RayCastCallback * callback,
const b2Vec2 & point1,
const b2Vec2 & point2
) const
光线投射的路径射向世界中所有的固定装置。你的回调是否控制离你最近的点、任何一点、或n-点(n-points)。光线投射会忽略包含出发点的形状。Ray-cast the world for all fixtures in the path of the ray. Your callback controls whether you get the closest point, any point, or n-points. The ray-cast ignores shapes that contain the starting point.
参数: callback 一个用户实现的回调类。
point1 光线起始点
point2 光线结束点
void b2World::SetAutoClearForces ( bool flag ) [inline]
设置一个标志来控制每一个时间步后是否自动清除力。
void b2World::SetContactFilter ( b2ContactFilter * filter )
注册一个接触过滤器控制特定地碰撞。否则,使用默认的过滤器b2_defaultFilter。该监听器归你持有,而且必须保证其有效性。
void b2World::SetContactListener ( b2ContactListener * listener )
注册一个接触事件监听器。该监听器归你持有,而且必须保证其有效性。
void b2World::SetContinuousPhysics ( bool flag ) [inline]
启用/禁用 连续物理测试。
void b2World::SetDebugDraw ( b2DebugDraw * debugDraw )
注册一个调试模式的绘图程序。调试功能的使用需要配合 b2World::DrawDebugData 方法。调试绘制对象归你持有,而且必须保证其有效性。
void b2World::SetDestructionListener ( b2DestructionListener * listener )
注册一个摧毁监听器。调试绘制对该监听器归你持有,而且必须保证其有效性。
void b2World::SetGravity ( const b2Vec2 & gravity ) [inline]
改变全局重力向量。
void b2World::SetWarmStarting ( bool flag ) [inline]
开启/禁用 用于测试的热启动。
void b2World::Step ( float32 timeStep,
int32 velocityIterations,
int32 positionIterations
)
执行一个时间步。这个操作中会执行碰撞检测(collision detection)、集成(integration)、求解约束(constraint solution)。
参数: timeStep 模拟的时间量,这不应该是一个变化的量。
velocityIterations 速度的约束求解量。
positionIterations 位置的约束求解量。