Class RegionFactory.XorMerger
java.lang.Object
org.apache.commons.math3.geometry.partitioning.RegionFactory.XorMerger
- All Implemented Interfaces:
BSPTree.LeafMerger<S>
- Enclosing class:
RegionFactory<S extends Space>
BSP tree leaf merger computing symmetric difference (exclusive or) of two regions.
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
XorMerger
private XorMerger()
-
-
Method Details
-
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)
-