void Body::SynchronizeFixtures() { Transform2D xf1; xf1.q.Set(m_sweep.a0); xf1.p = m_sweep.c0 - Rotation2D::Mul(xf1.q, m_sweep.localCenter); BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; for (Fixture* f = m_fixtureList; f; f = f->m_next) { f->Synchronize(broadPhase, xf1, m_xf); } }
void Body::SetTransform2D(const glm::vec2& position, real32 angle) { assert(m_world->IsLocked() == false); if (m_world->IsLocked() == true) { return; } m_xf.q.Set(angle); m_xf.p = position; m_sweep.c = Transform2D::Mul(m_xf, m_sweep.localCenter); m_sweep.a = angle; m_sweep.c0 = m_sweep.c; m_sweep.a0 = angle; BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; for (Fixture* f = m_fixtureList; f; f = f->m_next) { f->Synchronize(broadPhase, m_xf, m_xf); } }