Package rasj

Class RasMInterval


  • public class RasMInterval
    extends java.lang.Object
    
     PURPOSE:
     The spatial domain of an MDD is represented by an object
     of class RasMInterval. It specifies lower and upper bound
     of the point set for each dimension of an MDD. Internally,
     the class is realized through an array of intervals of type
     RasSInterval.
    
     For the operations union, difference, and intersection the
     dimensionalties of the operands must be equal, otherwise an
     exception is raised. The semantics of the operations are
     defined as follows for each dimension:
    
        | ...  fixed bound
        -* ...  open bound
    
    
     class   orientation       union    difference  intersection
     -----------------------------------------------------------
       1     |-a-| |-b-|       error    a           error
    
       2     |-a-|             [a1,b2]  [a1,b1]     [b1,a2]
       2        |-b-|
    
       3     |--a--|           a        error       b
       3      |-b-|
    
       4     |-b-|             [b1,a2]  [b2,a2]     [a1,b2]
       4        |-a-|
    
       5     |--b--|           b        error       a
       5      |-a-|
    
       6     |-b-| |-a-|       error    a           error
    
       7     |-a-|-b-|         [a1,b2]  a           [a2,a2]
    
       8     |-b-|-a-|         [b1,a2]  a           [b2,b2]
    
       9     |--a--|           a        [a1,b1]     b
       9       |-b-|
    
      10     |--a--|           a        [b2,a2]     b
      10     |-b-|
    
      11     |-a-|             a        error       a
      11     |-b-|
    
      12     |--b--|           b        error       a
      12     |-a-|
    
      13     |--b--|           b        error       a
      13       |-a-|
    
      -----------------------------------------------------
    
      14     |--a--*           a        error       b
      14      |-b-|
    
      15     |--a--*           a        [b2,a2]     b
      15     |-b-|
    
      16     |-b-| |-a-*       error    a           error
    
      17     |-b-|-a-*         [b1,a2]  a           [b2,b2]
    
      18      |--a--*          [b1,a2]  [b2,a2]     [a1,b2]
      18     |-b-|
    
      -----------------------------------------------------
    
      19     *--a--|          a        error       b
      19      |-b-|
    
      20     *--a--|          a        [a1,b1]     b
      20       |-b-|
    
      21     *-a-| |-b-|       error    a           error
    
      22     *-a-|-b-|         [a1,b2]  a           [a2,a2]
    
      23     *--a--|           [a1,b2]  [a1,b1]     [b1,a2]
      23        |-b-|
    
      -----------------------------------------------------
    
      24     |--b--*           b        error       a
      24      |-a-|
    
      25     |--b--*           b        error       a
      25     |-a-|
    
      26     |-a-| |-b-*       error    a           error
    
      27     |-a-|-b-*         [a1,b2]  a           [a2,a2]
    
      28      |--b--*          [a1,b2]  [a1,b1]     [b1,a2]
      28     |-a-|
    
      -----------------------------------------------------
    
      29     *--b--|           b        error       a
      29      |-a-|
    
      30     *--b--|           b        error       a
      30       |-a-|
    
      31     *-b-| |-a-|       error    a           error
    
      32     *-b-|-a-|         [b1,a2]  a           [b2,b2]
    
      33     *--b--|           [b1,a2]  [b2,a2]     [a1,b2]
      33        |-a-|
    
      -----------------------------------------------------
    
      34     *-a-| |-b-*       error    a           error
    
      35     *-a-|-b-*         [a1,b2]  a           [a2,a2]
    
      36     *-a-|             [a1,b2]  [a1,b1]     [b1,a2]
      36        |-b-*
    
      -----------------------------------------------------
    
      37     *-b-| |-a-*       error    a           error
    
      38     *-b-|-a-*         [b1,a2]  a           [b2,b2]
    
      39     *-b-|             [b1,a2]  [a1,b1]     [a1,b2]
      39        |-a-*
    
      -----------------------------------------------------
    
      40     *-a-|             b        error       a
      40      *-b-|
    
      41     *-a-|             a        error       a
      41     *-b-|
    
      42     *-b-|             a        [b2,a2]     b
      42      *-a-|
    
      -----------------------------------------------------
    
      43     |-a-*             a        [a1,b1]     b
      43      |-b-*
    
      44     |-a-*             a        error       a
      44     |-b-*
    
      45     |-b-*             b        error       a
      45      |-a-*
    
      -----------------------------------------------------
      46     *-a-* |-b-|       a        error       b
    
      47     *-b-* |-a-|       b        error       b
    
      48     *-a-*             a        [b2,a2]     b
      48      *-b-|
    
      49     *-a-*             a        [a1,b1]     b
      49      |-b-*
    
      50     *-b-*             b        error       a
      50      *-a-|
    
      51     *-b-*             b        error       a
      51      |-a-*
    
      52     *-a-*             a        error       a
      52     *-b-*
    
     Attention: The difference operation has to be reconsidered in future
     concerning a discrete interpretation of the intervals.
    
     The closure operation defines an interval which is the smallest
     interval containing the two operands.
     The method intersectsWith() returns false in the error cases of the
     intersection operation and true otherwise.
    
     * @version $Revision: 1.15 $
    
    
    
    
     COMMENTS: