Class RegionFactory.UnionMerger
- java.lang.Object
-
- org.apache.commons.math3.geometry.partitioning.RegionFactory.UnionMerger
-
- All Implemented Interfaces:
BSPTree.LeafMerger<S>
- Enclosing class:
- RegionFactory<S extends Space>
private class RegionFactory.UnionMerger extends java.lang.Object implements BSPTree.LeafMerger<S>
BSP tree leaf merger computing union of two regions.
-
-
Constructor Summary
Constructors Modifier Constructor Description privateUnionMerger()
-
-
-
Method Detail
-
merge
public BSPTree<S> merge(BSPTree<S> leaf, BSPTree<S> tree, BSPTree<S> parentTree, boolean isPlusChild, boolean leafFromInstance)
Merge a leaf node and a tree node.This method is called at the end of a recursive merging resulting from a
tree1.merge(tree2, leafMerger)call, when one of the sub-trees involved is a leaf (i.e. when its cut-hyperplane is null). This is the only place where the precise semantics of the operation are required. For all upper level nodes in the tree, the merging operation is only a generic partitioning algorithm.Since the final operation may be non-commutative, it is important to know if the leaf node comes from the instance tree (
tree1) or the argument tree (tree2). The third argument of the method is devoted to this. It can be ignored for commutative operations.The
BSPTree.insertInTreemethod may be useful to implement this method.- Specified by:
mergein interfaceBSPTree.LeafMerger<S extends Space>- Parameters:
leaf- leaf node (its cut hyperplane is guaranteed to be null)tree- tree node (its cut hyperplane may be null or not)parentTree- parent tree to connect to (may be null)isPlusChild- if true and if parentTree is not null, the resulting tree should be the plus child of its parent, ignored if parentTree is nullleafFromInstance- if true, the leaf node comes from the instance tree (tree1) and the tree node comes from the argument tree (tree2)- Returns:
- the BSP tree resulting from the merging (may be one of the arguments)
-
-