Exemplo n.º 1
0
        /** Return the interval with elements from this not in other;
         *  other must not be totally enclosed (properly contained)
         *  within this, which would result in two disjoint intervals
         *  instead of the single one returned by this method.
         */
        public virtual Interval DifferenceNotProperlyContained(Interval other)
        {
            Interval diff = null;

            // other.a to left of this.a (or same)
            if (other.StartsBeforeNonDisjoint(this))
            {
                diff = Interval.Create(Math.Max(this.a, other.b + 1),
                                       this.b);
            }

            // other.a to right of this.a
            else if (other.StartsAfterNonDisjoint(this))
            {
                diff = Interval.Create(this.a, other.a - 1);
            }
            return(diff);
        }
Exemplo n.º 2
0
        /** Return the interval with elements from this not in other;
         *  other must not be totally enclosed (properly contained)
         *  within this, which would result in two disjoint intervals
         *  instead of the single one returned by this method.
         */
        public virtual Interval DifferenceNotProperlyContained( Interval other )
        {
            Interval diff = null;
            // other.a to left of this.a (or same)
            if ( other.StartsBeforeNonDisjoint( this ) )
            {
                diff = Interval.Create( Math.Max( this.a, other.b + 1 ),
                                       this.b );
            }

            // other.a to right of this.a
            else if ( other.StartsAfterNonDisjoint( this ) )
            {
                diff = Interval.Create( this.a, other.a - 1 );
            }
            return diff;
        }