public virtual void MouseDown(Vec2 p) { m_mouseWorld = p; if (m_mouseJoint != null) { return; } // Make a small box. AABB aabb; Vec2 d = new Vec2(); d.Set(0.001f, 0.001f); aabb.lowerBound = p - d; aabb.upperBound = p + d; // Query the world for overlapping shapes. TestQueryCallback callback = new TestQueryCallback(p); m_world.QueryAABB(callback, aabb); if (callback.m_fixture != null) { Body body = callback.m_fixture.GetBody(); MouseJointDef md = new MouseJointDef(); md.bodyA = m_groundBody; md.bodyB = body; md.target = p; md.maxForce = 1000.0f * body.GetMass(); m_mouseJoint = (MouseJoint)m_world.CreateJoint(md); body.SetAwake(true); } }
public virtual void MouseDown(Vec2 p){ m_mouseWorld = p; if (m_mouseJoint != null) { return; } // Make a small box. AABB aabb; Vec2 d = new Vec2(); d.Set(0.001f, 0.001f); aabb.lowerBound = p - d; aabb.upperBound = p + d; // Query the world for overlapping shapes. TestQueryCallback callback = new TestQueryCallback(p); m_world.QueryAABB(callback, aabb); if (callback.m_fixture != null) { Body body = callback.m_fixture.GetBody(); MouseJointDef md = new MouseJointDef(); md.bodyA = m_groundBody; md.bodyB = body; md.target = p; md.maxForce = 1000.0f * body.GetMass(); m_mouseJoint = (MouseJoint)m_world.CreateJoint(md); body.SetAwake(true); } }