Class RegionFactory.DifferenceMerger
java.lang.Object
org.apache.commons.math3.geometry.partitioning.RegionFactory.DifferenceMerger
- All Implemented Interfaces:
BSPTree.LeafMerger<S>
,BSPTree.VanishingCutHandler<S>
- Enclosing class:
RegionFactory<S extends Space>
private class RegionFactory.DifferenceMerger
extends Object
implements BSPTree.LeafMerger<S>, BSPTree.VanishingCutHandler<S>
BSP tree leaf merger computing difference of two regions.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
region1
Region to subtract from. -
region2
Region to subtract.
-
-
Constructor Details
-
DifferenceMerger
Simple constructor.- Parameters:
region1
- region to subtract fromregion2
- region to subtract
-
-
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)
-
fixNode
Fix a node with both vanished cut and children.- Specified by:
fixNode
in interfaceBSPTree.VanishingCutHandler<S extends Space>
- Parameters:
node
- node to fix- Returns:
- fixed node
-