예제 #1
0
    // 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;
        }
    }
예제 #2
0
 /// <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
 }