Class RegionFactory<S extends Space>

  • Type Parameters:
    S - Type of the space.

    public class RegionFactory<S extends Space>
    extends Object
    This class is a factory for Region.
    • Constructor Detail

      • RegionFactory

        public RegionFactory()
        Simple constructor.
    • Method Detail

      • buildConvex

        @SafeVarargs
        public final Region<S> buildConvex​(Hyperplane<S>... hyperplanes)
        Build a convex region from a collection of bounding hyperplanes.
        Parameters:
        hyperplanes - collection of bounding hyperplanes
        Returns:
        a new convex region, or null if the collection is empty
      • union

        public Region<S> union​(Region<S> region1,
                               Region<S> region2)
        Compute the union of two regions.
        Parameters:
        region1 - first region (will be unusable after the operation as parts of it will be reused in the new region)
        region2 - second region (will be unusable after the operation as parts of it will be reused in the new region)
        Returns:
        a new region, result of region1 union region2
      • intersection

        public Region<S> intersection​(Region<S> region1,
                                      Region<S> region2)
        Compute the intersection of two regions.
        Parameters:
        region1 - first region (will be unusable after the operation as parts of it will be reused in the new region)
        region2 - second region (will be unusable after the operation as parts of it will be reused in the new region)
        Returns:
        a new region, result of region1 intersection region2
      • xor

        public Region<S> xor​(Region<S> region1,
                             Region<S> region2)
        Compute the symmetric difference (exclusive or) of two regions.
        Parameters:
        region1 - first region (will be unusable after the operation as parts of it will be reused in the new region)
        region2 - second region (will be unusable after the operation as parts of it will be reused in the new region)
        Returns:
        a new region, result of region1 xor region2
      • difference

        public Region<S> difference​(Region<S> region1,
                                    Region<S> region2)
        Compute the difference of two regions.
        Parameters:
        region1 - first region (will be unusable after the operation as parts of it will be reused in the new region)
        region2 - second region (will be unusable after the operation as parts of it will be reused in the new region)
        Returns:
        a new region, result of region1 minus region2
      • getComplement

        public Region<S> getComplement​(Region<S> region)
        Get the complement of the region (exchanged interior/exterior).
        Parameters:
        region - region to complement, it will not modified, a new region independent region will be built
        Returns:
        a new region, complement of the specified one