private class RegionFactory.XorMerger extends java.lang.Object implements BSPTree.LeafMerger<S>
Modifier | Constructor and Description |
---|---|
private |
XorMerger() |
public BSPTree<S> merge(BSPTree<S> leaf, BSPTree<S> tree, BSPTree<S> parentTree, boolean isPlusChild, boolean leafFromInstance)
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.
merge
in interface BSPTree.LeafMerger<S extends Space>
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
)Copyright (c) 2003-2016 Apache Software Foundation