Class RegionFactory.IntersectionMerger
java.lang.Object
org.apache.commons.math3.geometry.partitioning.RegionFactory.IntersectionMerger
- All Implemented Interfaces:
BSPTree.LeafMerger<S>
- Enclosing class:
RegionFactory<S extends Space>
BSP tree leaf merger computing intersection of two regions.
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
IntersectionMerger
private IntersectionMerger()
-
-
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.insertInTree
method may be useful to implement this method.- Specified by:
merge
in 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)
-