/// <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); }
/// <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); }
public void AddBoundingBox(BoundaryBox bb) { AddPoint(bb.Min); AddPoint(bb.Max); }