Body constructor
Implementation
Body(BodyDef bd, this.world)
: assert(!bd.position.isInfinite && !bd.position.isNaN),
assert(!bd.linearVelocity.isInfinite && !bd.linearVelocity.isNaN),
assert(bd.angularDamping >= 0.0),
assert(bd.linearDamping >= 0.0) {
flags = 0;
if (bd.bullet) {
flags |= bulletFlag;
}
if (bd.fixedRotation) {
flags |= fixedRotationFlag;
}
if (bd.allowSleep) {
flags |= autoSleepFlag;
}
if (bd.isAwake) {
flags |= awakeFlag;
}
if (bd.active) {
flags |= activeFlag;
}
transform.p.setFrom(bd.position);
transform.q.setAngle(bd.angle);
sweep.localCenter.setZero();
sweep.c0.setFrom(transform.p);
sweep.c.setFrom(transform.p);
sweep.a0 = bd.angle;
sweep.a = bd.angle;
sweep.alpha0 = 0.0;
linearVelocity.setFrom(bd.linearVelocity);
_angularVelocity = bd.angularVelocity;
linearDamping = bd.linearDamping;
angularDamping = bd.angularDamping;
gravityOverride = bd.gravityOverride;
gravityScale = bd.gravityScale;
force.setZero();
sleepTime = 0.0;
_bodyType = bd.type;
if (_bodyType == BodyType.dynamic) {
_mass = 1.0;
_inverseMass = 1.0;
} else {
_mass = 0.0;
_inverseMass = 0.0;
}
inertia = 0.0;
inverseInertia = 0.0;
userData = bd.userData;
}