// Update is called once per frame void Update() { // Update Green Interval with user input GreenInterval.MinValue = GreenIntervalMin; GreenInterval.MaxValue = GreenIntervalMax; // Update Blue Interval with user input BlueInterval.MinValue = BlueIntervalMin; BlueInterval.MaxValue = BlueIntervalMax; // Intersect Green and Blue Intervals if (GreenIntervalMin <= BlueIntervalMax && GreenIntervalMax >= BlueIntervalMin) // overlap condition { OverlapInterval.DrawInterval = true; // show the overlap interval // set the max/min values OverlapIntervalMax = Mathf.Min(GreenIntervalMax, BlueIntervalMax); OverlapIntervalMin = Mathf.Max(GreenIntervalMin, BlueIntervalMin); OverlapInterval.MaxValue = OverlapIntervalMax; // display these values for the user OverlapInterval.MinValue = OverlapIntervalMin; Debug.Assert(GreenInterval.IntervalsIntersect(BlueInterval)); // This function is also implemented in the MyIntervalBound class } else { OverlapInterval.DrawInterval = false; OverlapIntervalMax = float.NaN; OverlapIntervalMin = float.NaN; } }
/// <summary> /// Return the status of two boxes intersect /// </summary> public bool BoxesIntersect(MyBoxBound otherBound) { return (XInterval.IntervalsIntersect(otherBound.XInterval) // x intervals intersect && // and YInterval.IntervalsIntersect(otherBound.YInterval) // y intervals intersect && // and ZInterval.IntervalsIntersect(otherBound.ZInterval)); // z intervals intersect }