// the lines do intersect
final boolean direct = FastMath.sin(thisLine.getAngle() - otherLine.getAngle()) < 0;
final Vector1D x = thisLine.toSubSpace((Point<Euclidean2D>) crossing);
final SubHyperplane<Euclidean1D> subPlus =
new OrientedPoint(x, !direct, tolerance).wholeHyperplane();
final SubHyperplane<Euclidean1D> subMinus =
new OrientedPoint(x, direct, tolerance).wholeHyperplane();
final BSPTree<Euclidean1D> splitTree = getRemainingRegion().getTree(false).split(subMinus);
final BSPTree<Euclidean1D> plusTree = getRemainingRegion().isEmpty(splitTree.getPlus()) ?
new BSPTree<Euclidean1D>(Boolean.FALSE) :
new BSPTree<Euclidean1D>(subPlus, new BSPTree<Euclidean1D>(Boolean.FALSE),