private void DrawJoint(Joint joint) { Body bodyA = joint.BodyA; Body bodyB = joint.BodyB; Transform xf1 = bodyA.GetTransform(); Transform xf2 = bodyB.GetTransform(); Vec2 x1 = xf1.P; Vec2 x2 = xf2.P; Vec2 p1 = Pool.PopVec2(); Vec2 p2 = Pool.PopVec2(); joint.GetAnchorA(p1); joint.GetAnchorB(p2); color.Set(0.5f, 0.8f, 0.8f); switch (joint.Type) { // TODO djm write after writing joints case JointType.Distance: DebugDraw.DrawSegment(p1, p2, color); break; case JointType.Pulley: { PulleyJoint pulley = (PulleyJoint)joint; Vec2 s1 = pulley.GroundAnchorA; Vec2 s2 = pulley.GroundAnchorB; DebugDraw.DrawSegment(s1, p1, color); DebugDraw.DrawSegment(s2, p2, color); DebugDraw.DrawSegment(s1, s2, color); } break; case JointType.ConstantVolume: case JointType.Mouse: // don't draw this break; default: DebugDraw.DrawSegment(x1, p1, color); DebugDraw.DrawSegment(p1, p2, color); DebugDraw.DrawSegment(x2, p2, color); break; } Pool.PushVec2(2); }