If true, the input geometry is interpreted as representing nearby
geometry that has been snapped or simplified. It then outputs a
conservative result based on the value of polygon_model() and
polyline_model(). For the most part, this only affects the handling of
degeneracies.
- If the model is OPEN, the result is as open as possible. For
example, the intersection of two identical degenerate shells is empty
under PolygonModel::OPEN because they could have been disjoint before
snapping. Similarly, two identical degenerate polylines have an
empty intersection under PolylineModel::OPEN.
- If the model is CLOSED, the result is as closed as possible. In the
case of the DIFFERENCE operation, this is equivalent to evaluating
A - B as Closure(A) - Interior(B). For other operations, it affects
only the handling of degeneracies. For example, the union of two
identical degenerate holes is empty under PolygonModel::CLOSED
(i.e., the hole disappears) because the holes could have been
disjoint before snapping.
- If the model is SEMI_OPEN, the result is as degenerate as possible.
New degeneracies will not be created, but all degeneracies that
coincide with the opposite region's boundary are retained unless this
would cause a duplicate polygon edge to be created. This model is
is very useful for working with input data that has both positive and
negative degeneracies (i.e., degenerate shells and holes).
If true, the input geometry is interpreted as representing nearby geometry that has been snapped or simplified. It then outputs a conservative result based on the value of polygon_model() and polyline_model(). For the most part, this only affects the handling of degeneracies.
- If the model is OPEN, the result is as open as possible. For example, the intersection of two identical degenerate shells is empty under PolygonModel::OPEN because they could have been disjoint before snapping. Similarly, two identical degenerate polylines have an empty intersection under PolylineModel::OPEN.
- If the model is CLOSED, the result is as closed as possible. In the case of the DIFFERENCE operation, this is equivalent to evaluating A - B as Closure(A) - Interior(B). For other operations, it affects only the handling of degeneracies. For example, the union of two identical degenerate holes is empty under PolygonModel::CLOSED (i.e., the hole disappears) because the holes could have been disjoint before snapping.
- If the model is SEMI_OPEN, the result is as degenerate as possible. New degeneracies will not be created, but all degeneracies that coincide with the opposite region's boundary are retained unless this would cause a duplicate polygon edge to be created. This model is is very useful for working with input data that has both positive and negative degeneracies (i.e., degenerate shells and holes).
DEFAULT: false