Esempio n. 1
0
        /// <summary>
        /// Determines whether bounding box intersects with current one
        /// </summary>
        /// <param name="bb">bounding box</param>
        /// <param name="Epsilon">epsilon</param>
        /// <returns>true if given bounding box intersects the current one, else false.</returns>
        public bool Intersects(BoundaryBox bb, double Epsilon)
        {
            if (Min == null || Max == null)
            {
                return(false);
            }

            if (Min.X - Epsilon > bb.Max.X || Min.Y - Epsilon > bb.Max.Y || Min.Z - Epsilon > bb.Max.Z)
            {
                return(false);
            }

            if (bb.Min.X - Epsilon > Max.X || bb.Min.Y - Epsilon > Max.Y || bb.Min.Z - Epsilon > Max.Z)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Determines whether bounding box contains the other bounding box
        /// </summary>
        /// <param name="bb">bounding box</param>
        /// <param name="Epsilon">epsilon</param>
        /// <returns>true if given bounding box intersects the current one, else false.</returns>
        public bool Contains(BoundaryBox bb, double epsilon)
        {
            if (Min == null || Max == null)
            {
                return(false);
            }

            if (Max.X + epsilon < bb.Max.X || Max.Y + epsilon < bb.Max.Y || Max.Z + epsilon < bb.Max.Z)
            {
                return(false);
            }

            if (bb.Min.X + epsilon < Min.X || bb.Min.Y + epsilon < Min.Y || bb.Min.Z + epsilon < Min.Z)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 3
0
 public void AddBoundingBox(BoundaryBox bb)
 {
     AddPoint(bb.Min);
     AddPoint(bb.Max);
 }