Пример #1
0
        // Token: 0x06000052 RID: 82 RVA: 0x00002FBC File Offset: 0x000011BC
        public DistancePlane3Ray3(Plane3 plane, Ray3 ray)
        {
            this = default(DistancePlane3Ray3);
            DistanceVector3Plane3 distanceVector3Plane = new DistanceVector3Plane3(ray.Origin, plane);
            double signedDistance = distanceVector3Plane.SignedDistance;
            double num            = ray.Direction.Dot(plane.Normal);

            if ((signedDistance > 0.0 && num > -1E-08) || (signedDistance < 0.0 && num < 1E-08))
            {
                this.SignedDistance = signedDistance;
                return;
            }
            this.SignedDistance = 0.0;
        }
Пример #2
0
        // Token: 0x06000056 RID: 86 RVA: 0x00003064 File Offset: 0x00001264
        public DistancePlane3Segment3(Plane3 plane, Segment3 segment)
        {
            this = default(DistancePlane3Segment3);
            DistanceVector3Plane3 distanceVector3Plane  = new DistanceVector3Plane3(segment.NegativeEnd, plane);
            DistanceVector3Plane3 distanceVector3Plane2 = new DistanceVector3Plane3(segment.PositiveEnd, plane);
            double signedDistance  = distanceVector3Plane.SignedDistance;
            double signedDistance2 = distanceVector3Plane2.SignedDistance;

            if (signedDistance > 0.0 && signedDistance2 > 0.0)
            {
                this.SignedDistance = Math.Min(signedDistance, signedDistance2);
                return;
            }
            if (signedDistance < 0.0 && signedDistance2 < 0.0)
            {
                this.SignedDistance = Math.Max(signedDistance, signedDistance2);
                return;
            }
            this.SignedDistance = 0.0;
        }
Пример #3
0
        // Token: 0x0600005E RID: 94 RVA: 0x00003258 File Offset: 0x00001458
        public DistancePlane3Triangle3(Plane3 plane, Triangle3 triangle)
        {
            this = default(DistancePlane3Triangle3);
            DistanceVector3Plane3 distanceVector3Plane  = new DistanceVector3Plane3(triangle.V0, plane);
            DistanceVector3Plane3 distanceVector3Plane2 = new DistanceVector3Plane3(triangle.V1, plane);
            DistanceVector3Plane3 distanceVector3Plane3 = new DistanceVector3Plane3(triangle.V2, plane);
            double signedDistance  = distanceVector3Plane.SignedDistance;
            double signedDistance2 = distanceVector3Plane2.SignedDistance;
            double signedDistance3 = distanceVector3Plane3.SignedDistance;

            if (signedDistance > 0.0 && signedDistance2 > 0.0 && signedDistance3 > 0.0)
            {
                this.SignedDistance = Math.Min(signedDistance, Math.Min(signedDistance2, signedDistance3));
                return;
            }
            if (signedDistance < 0.0 && signedDistance2 < 0.0 && signedDistance3 < 0.0)
            {
                this.SignedDistance = Math.Max(signedDistance, Math.Max(signedDistance2, signedDistance3));
                return;
            }
            this.SignedDistance = 0.0;
        }
Пример #4
0
        // Token: 0x0600005A RID: 90 RVA: 0x00003120 File Offset: 0x00001320
        public DistancePlane3Rectangle3(Plane3 plane, Rectangle3 rectangle)
        {
            this = default(DistancePlane3Rectangle3);
            DistanceVector3Plane3 distanceVector3Plane  = new DistanceVector3Plane3(rectangle.MMCorner, plane);
            DistanceVector3Plane3 distanceVector3Plane2 = new DistanceVector3Plane3(rectangle.MPCorner, plane);
            DistanceVector3Plane3 distanceVector3Plane3 = new DistanceVector3Plane3(rectangle.PMCorner, plane);
            DistanceVector3Plane3 distanceVector3Plane4 = new DistanceVector3Plane3(rectangle.PPCorner, plane);
            double signedDistance  = distanceVector3Plane.SignedDistance;
            double signedDistance2 = distanceVector3Plane2.SignedDistance;
            double signedDistance3 = distanceVector3Plane3.SignedDistance;
            double signedDistance4 = distanceVector3Plane4.SignedDistance;

            if (signedDistance > 0.0 && signedDistance2 > 0.0 && signedDistance3 > 0.0 && signedDistance4 > 0.0)
            {
                this.SignedDistance = Math.Min(signedDistance, Math.Min(signedDistance2, Math.Min(signedDistance3, signedDistance4)));
                return;
            }
            if (signedDistance < 0.0 && signedDistance2 < 0.0 && signedDistance3 < 0.0)
            {
                this.SignedDistance = Math.Max(signedDistance, Math.Max(signedDistance2, Math.Max(signedDistance3, signedDistance4)));
                return;
            }
            this.SignedDistance = 0.0;
        }
Пример #5
0
        // Token: 0x0600020C RID: 524 RVA: 0x0000931C File Offset: 0x0000751C
        public static Segment3 ShortestSegmentTo(this Vector3 vector3, Plane3 plane3)
        {
            DistanceVector3Plane3 distanceVector3Plane = new DistanceVector3Plane3(vector3, plane3);

            return(new Segment3(distanceVector3Plane.ClosestPointOnVector, distanceVector3Plane.ClosestPointOnPlane));
        }
Пример #6
0
        // Token: 0x0600020B RID: 523 RVA: 0x000092FC File Offset: 0x000074FC
        public static double SignedDistanceTo(this Vector3 vector3, Plane3 plane3)
        {
            DistanceVector3Plane3 distanceVector3Plane = new DistanceVector3Plane3(vector3, plane3);

            return(distanceVector3Plane.SignedDistance);
        }
Пример #7
0
        // Token: 0x06000103 RID: 259 RVA: 0x00005D98 File Offset: 0x00003F98
        public static double DistanceTo(this Plane3 plane3, Vector3 vector3)
        {
            DistanceVector3Plane3 distanceVector3Plane = new DistanceVector3Plane3(vector3, plane3);

            return(distanceVector3Plane.Distance);
        }
Пример #8
0
        // Token: 0x06000105 RID: 261 RVA: 0x00005DD8 File Offset: 0x00003FD8
        public static Vector3 ClosestPointTo(this Plane3 plane3, Vector3 vector3)
        {
            DistanceVector3Plane3 distanceVector3Plane = new DistanceVector3Plane3(vector3, plane3);

            return(distanceVector3Plane.ClosestPointOnPlane);
        }