コード例 #1
0
ファイル: BoundingCapsule2.cs プロジェクト: bobsum/PLan2015
        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));
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
 private static DistanceInfo MinLength(DistanceInfo value1, DistanceInfo value2)
 {
     return(value2.Distance.LengthSquared() < value1.Distance.LengthSquared() ? value2 : value1);
 }
コード例 #4
0
ファイル: BoundingCapsule2.cs プロジェクト: bobsum/PLan2015
 private static DistanceInfo MinLength(DistanceInfo value1, DistanceInfo value2)
 {
     return value2.Distance.LengthSquared() < value1.Distance.LengthSquared() ? value2 : value1;
 }