in commons-geometry-core/src/main/java/org/apache/commons/geometry/core/partitioning/bsp/AbstractBSPTree.java [305:333]
protected N extractParentPath(final N src, final N dst) {
N dstParent = dst;
N dstChild;
N srcChild = src;
N srcParent = srcChild.getParent();
while (srcParent != null) {
dstChild = dstParent;
dstParent = copyNode(srcParent);
if (srcChild.isMinus()) {
dstParent.setSubtree(
srcParent.getCut(),
dstChild,
copyNode(srcParent.getPlus()));
} else {
dstParent.setSubtree(
srcParent.getCut(),
copyNode(srcParent.getMinus()),
dstChild);
}
srcChild = srcParent;
srcParent = srcChild.getParent();
}
return dstParent;
}