成员函数
void b2Body::ApplyAngularImpulse ( float32 impulse ) [inline]应用一个角冲力。
参数: impulse 角冲力。单位为 kg*m*m/s。
void b2Body::ApplyForce ( const b2Vec2 & force,
const b2Vec2 & point
) [inline]
在一个世界点(world point)施加一个力。如果这个力没有应用于质心,则该力会产生一个旋转的力矩,且影响角速度。该操作会唤醒(wakes up)物体。
参数: force 世界力量向量,单位通常为牛顿(N)。
point 应用力的点的世界位置(world position)。
void b2Body::ApplyLinearImpulse ( const b2Vec2 & impulse,
const b2Vec2 & point
) [inline]
在某一点上施加一个冲力。这会立即改变速度,它还会改变角速度,这要看施加力的点在不在质心。该操作会唤醒物体。
参数: impulse 世界冲力向量,单位通常为牛顿每秒(N-S)或千克米每秒(kg-m/s)。
point 应用力的点的世界位置。
void b2Body::ApplyTorque ( float32 torque ) [inline]
应用一个力矩。在没有影响质心线速度的情况下会影响它的角速度。该操作会唤醒物体。
参数: torque 关于Z轴 (窗口范围外,out of the screen)。单位牛顿米(N-m)。
b2Fixture * b2Body::CreateFixture ( const b2Shape * shape,
float32 density
)
创建一个形状(shape)固定装置(fixture)并把它附加到物体上。这是一个比较方便的功能。如果你需要设置如摩擦(friction)、恢复度(restitution)、用户数据、筛选参数(filtering),请使用 b2FixtureDef 。如果密度不为0,这个函数会更新物体的质量。
参数: shape 被复制的形状。
density 形状的密度(静态物体设置为0)。
警告:
此函数在回调(during callbacks)期间会被锁定。
b2Fixture * b2Body::CreateFixture ( const b2FixtureDef * def )
创建一个固定装置它附加到物体上。用这个函数可以设置一些固定装置的参数,比如摩擦。否则你只能从形状直接产生固定装置。如果密度不为0,这个函数会更新物体的质量。到下一个时间步之前不会创建接触。
参数: def 固定装置的定义。
警告:
此函数在回调期间会被锁定。
void b2Body::DestroyFixture ( b2Fixture * fixture )
摧毁一个固定装置。函数会在 broad-phase(一种数据结构) 中移除固定装置且销毁与其相关的所有约束(contacts)。如果物体是动态的,而且固定装置有确定的密度,函数会自动地重新调整物体的质量。当物体被摧毁时,所有的固定装置都会被隐式摧毁。
参数: fixture 被移除的固定装置。
警告:
此函数在回调期间会被锁定。
float32 b2Body::GetAngle ( ) const [inline]
获得角度(弧度制)。
返回:
在当前世界的旋转角(弧度制)。
float32 b2Body::GetAngularDamping ( ) const [inline]
获得物体的角阻尼。
float32 b2Body::GetAngularVelocity ( ) const [inline]
获得角速度。
返回:
角速度(单位: 弧度/秒 radians/second)。
const b2ContactEdge * b2Body::GetContactList ( ) const [inline]
b2ContactEdge * b2Body::GetContactList ( ) [inline]
获得附加在物体上的约束列表。
警告:
如果你不使用 b2ContactListener 则在一个时间步中变动列表(list changes),可能会造成你错过一些碰撞。
const b2Fixture * b2Body::GetFixtureList ( ) const [inline]
b2Fixture * b2Body::GetFixtureList ( ) [inline]
获得附加在物体上的固定装置列表。
float32 b2Body::GetInertia ( ) const [inline]
获得局部原点位置(local origin)上的物体上的旋转惯性(rotational inertia)。
返回:
旋转惯性(单位通常用 kg-m^2)。
const b2JointEdge * b2Body::GetJointList ( ) const [inline]
b2JointEdge * b2Body::GetJointList ( ) [inline]
获得附加在物体上的关节列表。
float32 b2Body::GetLinearDamping ( ) const [inline]
获得物体的线性阻尼。
b2Vec2 b2Body::GetLinearVelocity ( ) const [inline]
获得质心的线速度。
返回:
质心的线速度。
b2Vec2 b2Body::GetLinearVelocityFromLocalPoint ( const b2Vec2 & localPoint ) const [inline]
获得一个局部点(local point)的世界速度。
参数: localPoint 局部点坐标。
返回:
点的世界速度。
b2Vec2 b2Body::GetLinearVelocityFromWorldPoint ( const b2Vec2 & worldPoint ) const [inline]
获得在附着在物体上的一个世界点的世界速度。
参数: worldPoint 世界点坐标。
返回:
点的世界速度。
const b2Vec2 & b2Body::GetLocalCenter ( ) const [inline]
获得质心的局部位置。
b2Vec2 b2Body::GetLocalPoint ( const b2Vec2 & worldPoint ) const [inline]
提供一个世界坐标点获得一个局部坐标点。
参数: worldPoint 世界点坐标。
返回:
与所提供的世界点相对应的在物体上的局部点。
b2Vec2 b2Body::GetLocalVector ( const b2Vec2 & worldVector ) const [inline]
提供一个世界向量,获得一个局部向量。
参数: worldVector 世界坐标系向量。
返回:
对应的局部向量。
float32 b2Body::GetMass ( ) const [inline]
获得物体的总质量。
返回:
质量(单位为千克 Kg)。
void b2Body::GetMassData ( b2MassData * data ) const [inline]
获得物体的质量数据。
返回:
一个包含物体质量、惯性和中心的结构体。
const b2Body * b2Body::GetNext ( ) const [inline]
b2Body * b2Body::GetNext ( ) [inline]
获得在世界物体列表中的下一个物体。
const b2Vec2 & b2Body::GetPosition ( ) const [inline]
获得世界物体的原点位置。
返回:
物体原点的世界位置。
const b2Transform & b2Body::GetTransform ( ) const [inline]
为物体的原点获得物体的变换。
返回:
物体原点的世界变换(world transform)\。
b2BodyType b2Body::GetType ( ) const [inline]
获得该物体的类型。
void * b2Body::GetUserData ( ) const [inline]
获得在物体中存储的用户自定义数据指针。
const b2World * b2Body::GetWorld ( ) const [inline]
b2World * b2Body::GetWorld ( ) [inline]
获得该物体所处的世界。
const b2Vec2 & b2Body::GetWorldCenter ( ) const [inline]
获得质心在世界坐标的位置。
b2Vec2 b2Body::GetWorldPoint ( const b2Vec2 & localPoint ) const [inline]
提供一个局部坐标点获得一个世界坐标点。
参数: localPoint 相对于物体原点位置的一个局部点。
返回:
与所提供的在物体上的局部坐标点所对应的世界坐标点。
b2Vec2 b2Body::GetWorldVector ( const b2Vec2 & localVector ) const [inline]
提供一个局部向量获得一个世界向量。
参数: localVector 一个局部向量。
返回:
所对应的世界向量。
bool b2Body::IsActive ( ) const [inline]
获得物体的活动状态。
bool b2Body::IsAwake ( ) const [inline]
获得物体的休眠状态。
返回:
如果物体正在休眠则返回 true。
bool b2Body::IsBullet ( ) const [inline]
检测这个物体的连续碰撞处理是否被视为子弹。
bool b2Body::IsFixedRotation ( ) const [inline]
这个物体的旋转状态是否被固定(不可旋转)。
bool b2Body::IsSleepingAllowed ( ) const [inline]
该物体是否允许休眠。
void b2Body::ResetMassData ( )
这会根据固定装置的质量属性的总数来重新设定质量属性,该函数通常不需要被调用,除非你调用 SetMassData 放弃质量后,想要重设质量。
void b2Body::SetActive ( bool flag )
设置物体的活动状态。一个不活动的物体不能够被模拟(not simulated)以及不可被碰撞和唤醒。如果你设置标志为 true,所有的固定装置将会添加到 broad-phase(一种数据结构)。如果你设置标志为 false,所有的固定装置将会被从 broad-phase 移除以及摧毁所有的约束。除固定装置和关节以外的数据不受影响。你可以继续在一个不活动的物体上创建或删除固定装置和关节。在一个不活动的物体上的固定装置会被隐式地无效且将不参与碰撞、线转换(ray-casts)或查询。被连接到一个不活动的物体上的关节会被隐式地无效。一个不活动的物体仍然被 b2World 拥有且保留在物体目录。
void b2Body::SetAngularDamping ( float32 angularDamping ) [inline]
设置物体的角阻尼。
void b2Body::SetAngularVelocity ( float32 omega ) [inline]
设置角速度。
参数: omega 新的角速度(单位: 弧度/秒 radians/second) 。
void b2Body::SetAwake ( bool flag ) [inline]
设置物体的休眠状态,一个休眠的物体只有极低的CPU开销。
参数: flag 设置为 true 则让其休眠,设置为 false 则让它醒来。
void b2Body::SetBullet ( bool flag ) [inline]
这个物体的连续碰撞处理应该被视为子弹吗?
void b2Body::SetFixedRotation ( bool flag ) [inline]
设置这个物体的旋转状态是否被固定,这会导致物体质量会被重新设定。
void b2Body::SetLinearDamping ( float32 linearDamping ) [inline]
设置物体的线性阻尼。
void b2Body::SetLinearVelocity ( const b2Vec2 & v ) [inline]
设置质心的线速度。
参数: v 质心的新线速度。
void b2Body::SetMassData ( const b2MassData * data )
设置一个质量属性来覆盖固定装置的质量属性。注意这会改变质心位置。注意创建以及摧毁固定装置都会改变质量。如果物体不是动态(dynamic)的,那么这个函数没有任何作用。
Parameters: massData the mass properties.
void b2Body::SetSleepingAllowed ( bool flag ) [inline]
你可以让一个物体禁用休眠的能力。如果你禁用了休眠,物体将会被唤醒。
void b2Body::SetTransform ( const b2Vec2 & position,
float32 angle
)
设置物体原点位置与旋转。这会打破任何约束而唤醒其他物体,控制物体的变换可能会造成异常的物理行为(nonphysical behavior)。
参数: position 物体局部原点的世界位置。
angle 世界旋转角。
void b2Body::SetType ( b2BodyType type )
设置物体的类型,该操作可能改变质量和速度。
void b2Body::SetUserData ( void * data ) [inline]
设置用户数据指针。用来申请存储特殊用途的数据