Modifier and Type | Class and Description |
---|---|
private class |
RegionFactory.DifferenceMerger
BSP tree leaf merger computing union of two regions.
|
private class |
RegionFactory.IntersectionMerger
BSP tree leaf merger computing union 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.XorMerger
BSP tree leaf merger computing union of two regions.
|
Modifier and Type | Field and Description |
---|---|
private RegionFactory.NodesCleaner |
nodeCleaner
Visitor removing internal nodes attributes.
|
Constructor and Description |
---|
RegionFactory()
Simple constructor.
|
Modifier and Type | Method and 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.
|
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.
|
private final RegionFactory.NodesCleaner nodeCleaner
public Region<S> buildConvex(Hyperplane<S>... hyperplanes)
hyperplanes
- collection of bounding hyperplanespublic Region<S> union(Region<S> region1, Region<S> region2)
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)region1 union region2
public Region<S> intersection(Region<S> region1, Region<S> region2)
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)region1 intersection region2
public Region<S> xor(Region<S> region1, Region<S> region2)
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)region1 xor region2
public Region<S> difference(Region<S> region1, Region<S> region2)
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)region1 minus region2
public Region<S> getComplement(Region<S> region)
region
- region to complement, it will not modified, a new
region independent region will be builtCopyright (c) 2003-2014 Apache Software Foundation