Package rasj

Class RasMInterval

java.lang.Object
rasj.RasMInterval

public class RasMInterval extends 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: