public static Vector2 Distance(BoundingCapsule2 value1, BoundingCapsule2 value2) { Vector2 d1 = -PointToLine(value2.Min, value2.Max, value1.Min); Vector2 d2 = -PointToLine(value2.Min, value2.Max, value1.Max); Vector2 d3 = PointToLine(value1.Min, value1.Max, value2.Min); Vector2 d4 = PointToLine(value1.Min, value1.Max, value2.Max); return(MinLength(MinLength(d1, d2), MinLength(d3, d4))); }
public static Vector2 Distance(BoundingCapsule2 value1, BoundingCapsule2 value2) { Vector2 d1 = -PointToLine(value2.Min, value2.Max, value1.Min); Vector2 d2 = -PointToLine(value2.Min, value2.Max, value1.Max); Vector2 d3 = PointToLine(value1.Min, value1.Max, value2.Min); Vector2 d4 = PointToLine(value1.Min, value1.Max, value2.Max); return MinLength(MinLength(d1, d2), MinLength(d3, d4)); }
public static DistanceInfo DistanceInfo(BoundingCapsule2 value1, BoundingCapsule2 value2) { float l1, l2, l3, l4; Vector2 d1 = -PointToLine(value2.Min, value2.Max, value1.Min, out l1); Vector2 d2 = -PointToLine(value2.Min, value2.Max, value1.Max, out l2); Vector2 d3 = PointToLine(value1.Min, value1.Max, value2.Min, out l3); Vector2 d4 = PointToLine(value1.Min, value1.Max, value2.Max, out l4); DistanceInfo di1 = new DistanceInfo(d1, 0, l1); DistanceInfo di2 = new DistanceInfo(d2, 1, l2); DistanceInfo di3 = new DistanceInfo(d3, l3, 0); DistanceInfo di4 = new DistanceInfo(d4, l4, 1); return(MinLength(MinLength(di1, di2), MinLength(di3, di4))); }
public static DistanceInfo DistanceInfo(BoundingCapsule2 value1, BoundingCapsule2 value2) { float l1, l2, l3, l4; Vector2 d1 = -PointToLine(value2.Min, value2.Max, value1.Min, out l1); Vector2 d2 = -PointToLine(value2.Min, value2.Max, value1.Max, out l2); Vector2 d3 = PointToLine(value1.Min, value1.Max, value2.Min, out l3); Vector2 d4 = PointToLine(value1.Min, value1.Max, value2.Max, out l4); DistanceInfo di1 = new DistanceInfo(d1, 0, l1); DistanceInfo di2 = new DistanceInfo(d2, 1, l2); DistanceInfo di3 = new DistanceInfo(d3, l3, 0); DistanceInfo di4 = new DistanceInfo(d4, l4, 1); return MinLength(MinLength(di1, di2), MinLength(di3, di4)); }
public Vector2 Distance(BoundingCapsule2 capsule) { return(Distance(this, capsule)); }
public static bool Intersects(BoundingCapsule2 value1, BoundingCapsule2 value2) { float totalRadius = value1.Radius + value2.Radius; return(Distance(value1, value2).LengthSquared() < totalRadius * totalRadius); }
public bool Intersects(BoundingCapsule2 capsule) { return(Intersects(this, capsule)); }
public Vector2 Distance(BoundingCapsule2 capsule) { return Distance(this, capsule); }
public static bool Intersects(BoundingCapsule2 value1, BoundingCapsule2 value2) { float totalRadius = value1.Radius + value2.Radius; return Distance(value1, value2).LengthSquared() < totalRadius * totalRadius; }
public bool Intersects(BoundingCapsule2 capsule) { return Intersects(this, capsule); }