Clprtype clip_type = [ | `None| `IntersectionAND -- regions covered by both subject and clip polygons
*)| `UnionOR -- regions covered by subject or clip polygons, or both polygons
*)| `DifferenceNOT -- regions covered by subject, but not clip polygons
*)| `Xorexclusive or -- regions covered by subject or clip polygons, but not both
*) ]Clipping types for boolean operations. See Clipper2's docs for visual demonstrations.
type fill_rule = [ | `EvenOddonly odd numbered sub-regions are filled
*)| `NonZeronon-zero sub-regions are filled
*)| `Positiveonly sub-regions with winding counts > 0 are filled
| `Negativeonly sub-regions with winding counts < 0 are filled
]Filling rules used by the clipping algorithm for boolean operations. See Clipper2's docs for a detailed explanation of how they differ).
type join_type = [ | `Squaresquaring applied uniformally at all joins where the internal join angle is less than 90 degrees. The squared edg will be at exactly the offset distance from the join vertex
*)| `Roundrounding is appliedto all joins that have convex external angles, and it maintains the exact offset distance from the join vertex
*)| `Miterthere's a necessary limit to mitered joins (to avoid narrow angled joins producing excessively long and narrow spikes)). The limit sets the maximum distance in multiples of the delta specified for the offsetting operation (default is 2., which is the minimum allowed).
]Defines the treatment of corners when offsetting paths. Visual examples are available in the Clipper2 docs.
type end_type = [ | `Polygonpaths are assumed to be closed and treated as polygons
*)| `Joinedends are joined and the paths are treated as polylines
*)| `Buttends are squared off without any extrusion
*)| `Squareends extend the offset amount while being squared off
*)| `Roundends extend the offset amount while being rounded off
*) ]Sets whether paths are treated as closed (`Polygon) when offsetting or open (and how to do so, if so). Visual examples are available in the Clipper2 docs.
module PointD : sig ... end2d points (float)
module RectD : sig ... endAn axis-aligned rectangle used bounding box computations and quick rectangular clipping (boolean intersection) operations. (see PathsD.rect_clip)
module PathD : sig ... endRectangular clipping, simplification, and other transformations on sequences of vertices (float) defining a single contour (open or closed path).
module PathsD : sig ... endClipping (boolean), offseting, simplification, and minkowski operations on sequences of PathD.t.
module PolyTreeD : sig ... endPolyTreeD.t is a read-only data structure that receives solutions from clipping operations. It's an alternative to the PathsD.t data structure which also receives solutions. However the principle advantage of PolyTreeD.t over PathsD.t is that it also represents the parent-child relationships of the polygons in the solution (where a parent's polygon will contain all its children polygons).
module ClipperD : sig ... endClipping (boolean) operations on float paths/polygons
module Point64 : sig ... end2d points (int64)
module Rect64 : sig ... endAn axis-aligned rectangle used bounding box computations and quick rectangular clipping (boolean intersection) operations. (see Paths64.rect_clip)
module Path64 : sig ... endRectangular clipping, simplification, and other transformations on sequences of vertices (int64) defining a single contour (open or closed path).
module Paths64 : sig ... endClipping (boolean), offseting, simplification, and minkowski operations on sequences of Path64.t
module PolyTree64 : sig ... endPolyTree64.t is a read-only data structure that receives solutions from clipping operations. It's an alternative to the Paths64.t data structure which also receives solutions. However the principle advantage of PolyTree64.t over Paths64.t is that it also represents the parent-child relationships of the polygons in the solution (where a parent's polygon will contain all its children polygons).
module Clipper64 : sig ... endClipping (boolean) operations on int64 paths/polygons
module Offset : sig ... endThis class provides a mixed interface (float and int64). Unlike the purpose built ClipperD.t it does not perform handle the conversion of incoming doubles to int64 using a precision set by the user -- they are simply truncated. Thus if you are working with floats, it is recommended that you make use of the helper function PathsD.inflate at this time.
module SvgWriter : sig ... endmodule SvgReader : sig ... end