Class RegionFactory<S extends Space>
- java.lang.Object
-
- org.apache.commons.math3.geometry.partitioning.RegionFactory<S>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
RegionFactory.DifferenceMerger
BSP tree leaf merger computing difference of two regions.private class
RegionFactory.IntersectionMerger
BSP tree leaf merger computing intersection of two regions.private class
RegionFactory.NodesCleaner
Visitor removing internal nodes attributes.private class
RegionFactory.UnionMerger
BSP tree leaf merger computing union of two regions.private class
RegionFactory.VanishingToLeaf
Handler replacing nodes with vanishing cuts with leaf nodes.private class
RegionFactory.XorMerger
BSP tree leaf merger computing symmetric difference (exclusive or) of two regions.
-
Field Summary
Fields Modifier and Type Field Description private RegionFactory.NodesCleaner
nodeCleaner
Visitor removing internal nodes attributes.
-
Constructor Summary
Constructors Constructor Description RegionFactory()
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Region<S>
buildConvex(Hyperplane<S>... hyperplanes)
Build a convex region from a collection of bounding hyperplanes.Region<S>
difference(Region<S> region1, Region<S> region2)
Compute the difference of two regions.Region<S>
getComplement(Region<S> region)
Get the complement of the region (exchanged interior/exterior).Region<S>
intersection(Region<S> region1, Region<S> region2)
Compute the intersection of two regions.private BSPTree<S>
recurseComplement(BSPTree<S> node)
Recursively build the complement of a BSP tree.private BSPTree<S>
recurseComplement(BSPTree<S> node, java.util.Map<BSPTree<S>,BSPTree<S>> map)
Recursively build the complement of a BSP tree.Region<S>
union(Region<S> region1, Region<S> region2)
Compute the union of two regions.Region<S>
xor(Region<S> region1, Region<S> region2)
Compute the symmetric difference (exclusive or) of two regions.
-
-
-
Field Detail
-
nodeCleaner
private final RegionFactory.NodesCleaner nodeCleaner
Visitor removing internal nodes attributes.
-
-
Method Detail
-
buildConvex
public 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
-
recurseComplement
private BSPTree<S> recurseComplement(BSPTree<S> node)
Recursively build the complement of a BSP tree.- Parameters:
node
- current node of the original tree- Returns:
- new tree, complement of the node
-
-