Max() public static method

Returns the greater of two values.
public static Max ( double value1, double value2 ) : double
value1 double Source value.
value2 double Source value.
return double
Exemplo n.º 1
0
        /// <summary>
        /// Checks whether the current BoundingBox intersects a Ray.
        /// </summary>
        /// <param name="ray">The Ray to check for intersection with.</param><param name="result">[OutAttribute] Distance at which the ray intersects the BoundingBox, or null if there is no intersection.</param>
        public void Intersects(ref RayD ray, out double?result)
        {
            result = new double?();
            double num1 = 0.0f;
            double num2 = double.MaxValue;

            if ((double)Math.Abs(ray.Direction.X) < 9.99999997475243E-07)
            {
                if ((double)ray.Position.X < (double)this.Min.X || (double)ray.Position.X > (double)this.Max.X)
                {
                    return;
                }
            }
            else
            {
                double num3 = 1f / ray.Direction.X;
                double num4 = (this.Min.X - ray.Position.X) * num3;
                double num5 = (this.Max.X - ray.Position.X) * num3;
                if ((double)num4 > (double)num5)
                {
                    double num6 = num4;
                    num4 = num5;
                    num5 = num6;
                }
                num1 = MathHelper.Max(num4, num1);
                num2 = MathHelper.Min(num5, num2);
                if ((double)num1 > (double)num2)
                {
                    return;
                }
            }
            if ((double)Math.Abs(ray.Direction.Y) < 9.99999997475243E-07)
            {
                if ((double)ray.Position.Y < (double)this.Min.Y || (double)ray.Position.Y > (double)this.Max.Y)
                {
                    return;
                }
            }
            else
            {
                double num3 = 1f / ray.Direction.Y;
                double num4 = (this.Min.Y - ray.Position.Y) * num3;
                double num5 = (this.Max.Y - ray.Position.Y) * num3;
                if ((double)num4 > (double)num5)
                {
                    double num6 = num4;
                    num4 = num5;
                    num5 = num6;
                }
                num1 = MathHelper.Max(num4, num1);
                num2 = MathHelper.Min(num5, num2);
                if ((double)num1 > (double)num2)
                {
                    return;
                }
            }
            if ((double)Math.Abs(ray.Direction.Z) < 9.99999997475243E-07)
            {
                if ((double)ray.Position.Z < (double)this.Min.Z || (double)ray.Position.Z > (double)this.Max.Z)
                {
                    return;
                }
            }
            else
            {
                double num3 = 1f / ray.Direction.Z;
                double num4 = (this.Min.Z - ray.Position.Z) * num3;
                double num5 = (this.Max.Z - ray.Position.Z) * num3;
                if ((double)num4 > (double)num5)
                {
                    double num6 = num4;
                    num4 = num5;
                    num5 = num6;
                }
                num1 = MathHelper.Max(num4, num1);
                double num7 = MathHelper.Min(num5, num2);
                if ((double)num1 > (double)num7)
                {
                    return;
                }
            }
            result = new double?(num1);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Return vector with each component max
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Vector3 MaxComponents(ref Vector3 a, ref Vector3 b)
 {
     return(new Vector3(MathHelper.Max(a.X, b.X), MathHelper.Max(a.Y, b.Y), MathHelper.Max(a.Z, b.Z)));
 }
Exemplo n.º 3
0
        /// <summary>
        /// Checks whether the current BoundingBoxI intersects a Ray.
        /// </summary>
        /// <param name="ray">The Ray to check for intersection with.</param>
        public float?Intersects(Ray ray)
        {
            float num1 = 0.0f;
            float num2 = float.MaxValue;

            if ((double)Math.Abs(ray.Direction.X) < 9.99999997475243E-07)
            {
                if ((double)ray.Position.X < (double)this.Min.X || (double)ray.Position.X > (double)this.Max.X)
                {
                    return(new float?());
                }
            }
            else
            {
                float num3 = 1f / ray.Direction.X;
                float num4 = (this.Min.X - ray.Position.X) * num3;
                float num5 = (this.Max.X - ray.Position.X) * num3;
                if ((double)num4 > (double)num5)
                {
                    float num6 = num4;
                    num4 = num5;
                    num5 = num6;
                }
                num1 = MathHelper.Max(num4, num1);
                num2 = MathHelper.Min(num5, num2);
                if ((double)num1 > (double)num2)
                {
                    return(new float?());
                }
            }
            if ((double)Math.Abs(ray.Direction.Y) < 9.99999997475243E-07)
            {
                if ((double)ray.Position.Y < (double)this.Min.Y || (double)ray.Position.Y > (double)this.Max.Y)
                {
                    return(new float?());
                }
            }
            else
            {
                float num3 = 1f / ray.Direction.Y;
                float num4 = (this.Min.Y - ray.Position.Y) * num3;
                float num5 = (this.Max.Y - ray.Position.Y) * num3;
                if ((double)num4 > (double)num5)
                {
                    float num6 = num4;
                    num4 = num5;
                    num5 = num6;
                }
                num1 = MathHelper.Max(num4, num1);
                num2 = MathHelper.Min(num5, num2);
                if ((double)num1 > (double)num2)
                {
                    return(new float?());
                }
            }
            if ((double)Math.Abs(ray.Direction.Z) < 9.99999997475243E-07)
            {
                if ((double)ray.Position.Z < (double)this.Min.Z || (double)ray.Position.Z > (double)this.Max.Z)
                {
                    return(new float?());
                }
            }
            else
            {
                float num3 = 1f / ray.Direction.Z;
                float num4 = (this.Min.Z - ray.Position.Z) * num3;
                float num5 = (this.Max.Z - ray.Position.Z) * num3;
                if ((double)num4 > (double)num5)
                {
                    float num6 = num4;
                    num4 = num5;
                    num5 = num6;
                }
                num1 = MathHelper.Max(num4, num1);
                float num7 = MathHelper.Min(num5, num2);
                if ((double)num1 > (double)num7)
                {
                    return(new float?());
                }
            }
            return(new float?(num1));
        }