Box2DX.Collision.Collision.CollideCircles C# (CSharp) Method

CollideCircles() public static method

public static CollideCircles ( Manifold &manifold, CircleShape circle1, Box2DX.Common.Transform xf1, CircleShape circle2, Box2DX.Common.Transform xf2 ) : void
manifold Manifold
circle1 CircleShape
xf1 Box2DX.Common.Transform
circle2 CircleShape
xf2 Box2DX.Common.Transform
return void
        public static void CollideCircles(ref Manifold manifold, CircleShape circle1, Transform xf1, CircleShape circle2, Transform xf2)
        {
            manifold.PointCount = 0;

            Vector2 p1 = xf1.TransformPoint(circle1._position);
            Vector2 p2 = xf2.TransformPoint(circle2._position);

            Vector2 d = p2 - p1;
            float distSqr = Vector2.Dot(d, d);
            float radius = circle1._radius + circle2._radius;
            if (distSqr > radius * radius)
            {
                return;
            }

            manifold.Type = ManifoldType.Circles;
            manifold.LocalPoint = circle1._position;
            manifold.LocalPlaneNormal = Vector2.zero;
            manifold.PointCount = 1;

            manifold.Points[0].LocalPoint = circle2._position;
            manifold.Points[0].ID.Key = 0;
        }