js-angusj-clipper
Version:
Polygon and line clipping and offsetting library for Javascript / Typescript - a port of Angus Johnson's clipper to WebAssembly / Asm.JS
80 lines • 7.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NativeClipperLibLoadedFormat = exports.NativeClipperLibRequestedFormat = exports.PointInPolygonResult = exports.EndType = exports.JoinType = exports.PolyType = exports.ClipType = exports.PolyFillType = void 0;
/**
* By far the most widely used winding rules for polygon filling are EvenOdd & NonZero (GDI, GDI+, XLib, OpenGL, Cairo, AGG, Quartz, SVG, Gr32)
* Others rules include Positive, Negative and ABS_GTR_EQ_TWO (only in OpenGL)
* see http://glprogramming.com/red/chapter11.html
*/
var PolyFillType;
(function (PolyFillType) {
PolyFillType["EvenOdd"] = "evenOdd";
PolyFillType["NonZero"] = "nonZero";
PolyFillType["Positive"] = "positive";
PolyFillType["Negative"] = "negative";
})(PolyFillType = exports.PolyFillType || (exports.PolyFillType = {}));
var ClipType;
(function (ClipType) {
ClipType["Intersection"] = "intersection";
ClipType["Union"] = "union";
ClipType["Difference"] = "difference";
ClipType["Xor"] = "xor";
})(ClipType = exports.ClipType || (exports.ClipType = {}));
var PolyType;
(function (PolyType) {
PolyType["Subject"] = "subject";
PolyType["Clip"] = "clip";
})(PolyType = exports.PolyType || (exports.PolyType = {}));
var JoinType;
(function (JoinType) {
JoinType["Square"] = "square";
JoinType["Round"] = "round";
JoinType["Miter"] = "miter";
})(JoinType = exports.JoinType || (exports.JoinType = {}));
var EndType;
(function (EndType) {
EndType["ClosedPolygon"] = "closedPolygon";
EndType["ClosedLine"] = "closedLine";
EndType["OpenButt"] = "openButt";
EndType["OpenSquare"] = "openSquare";
EndType["OpenRound"] = "openRound";
})(EndType = exports.EndType || (exports.EndType = {}));
var PointInPolygonResult;
(function (PointInPolygonResult) {
PointInPolygonResult[PointInPolygonResult["Outside"] = 0] = "Outside";
PointInPolygonResult[PointInPolygonResult["Inside"] = 1] = "Inside";
PointInPolygonResult[PointInPolygonResult["OnBoundary"] = -1] = "OnBoundary";
})(PointInPolygonResult = exports.PointInPolygonResult || (exports.PointInPolygonResult = {}));
/**
* Format to use when loading the native library instance.
*/
var NativeClipperLibRequestedFormat;
(function (NativeClipperLibRequestedFormat) {
/**
* Try to load the WebAssembly version, if it fails try to load the Asm.js version.
*/
NativeClipperLibRequestedFormat["WasmWithAsmJsFallback"] = "wasmWithAsmJsFallback";
/**
* Load the WebAssembly version exclusively.
*/
NativeClipperLibRequestedFormat["WasmOnly"] = "wasmOnly";
/**
* Load the Asm.js version exclusively.
*/
NativeClipperLibRequestedFormat["AsmJsOnly"] = "asmJsOnly";
})(NativeClipperLibRequestedFormat = exports.NativeClipperLibRequestedFormat || (exports.NativeClipperLibRequestedFormat = {}));
/**
* The format the native library being used is in.
*/
var NativeClipperLibLoadedFormat;
(function (NativeClipperLibLoadedFormat) {
/**
* WebAssembly.
*/
NativeClipperLibLoadedFormat["Wasm"] = "wasm";
/**
* Asm.js.
*/
NativeClipperLibLoadedFormat["AsmJs"] = "asmJs";
})(NativeClipperLibLoadedFormat = exports.NativeClipperLibLoadedFormat || (exports.NativeClipperLibLoadedFormat = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW51bXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNILElBQVksWUFLWDtBQUxELFdBQVksWUFBWTtJQUN0QixtQ0FBbUIsQ0FBQTtJQUNuQixtQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBcUIsQ0FBQTtJQUNyQixxQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFLdkI7QUFFRCxJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDbEIseUNBQTZCLENBQUE7SUFDN0IsMkJBQWUsQ0FBQTtJQUNmLHFDQUF5QixDQUFBO0lBQ3pCLHVCQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7QUFDRCxJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDbEIsK0JBQW1CLENBQUE7SUFDbkIseUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUduQjtBQUVELElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFDRCxJQUFZLE9BTVg7QUFORCxXQUFZLE9BQU87SUFDakIsMENBQStCLENBQUE7SUFDL0Isb0NBQXlCLENBQUE7SUFDekIsZ0NBQXFCLENBQUE7SUFDckIsb0NBQXlCLENBQUE7SUFDekIsa0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQU5XLE9BQU8sR0FBUCxlQUFPLEtBQVAsZUFBTyxRQU1sQjtBQUVELElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixxRUFBVyxDQUFBO0lBQ1gsbUVBQVUsQ0FBQTtJQUNWLDRFQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLG9CQUFvQixHQUFwQiw0QkFBb0IsS0FBcEIsNEJBQW9CLFFBSS9CO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLCtCQWFYO0FBYkQsV0FBWSwrQkFBK0I7SUFDekM7O09BRUc7SUFDSCxrRkFBK0MsQ0FBQTtJQUMvQzs7T0FFRztJQUNILHdEQUFxQixDQUFBO0lBQ3JCOztPQUVHO0lBQ0gsMERBQXVCLENBQUE7QUFDekIsQ0FBQyxFQWJXLCtCQUErQixHQUEvQix1Q0FBK0IsS0FBL0IsdUNBQStCLFFBYTFDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLDRCQVNYO0FBVEQsV0FBWSw0QkFBNEI7SUFDdEM7O09BRUc7SUFDSCw2Q0FBYSxDQUFBO0lBQ2I7O09BRUc7SUFDSCwrQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFUVyw0QkFBNEIsR0FBNUIsb0NBQTRCLEtBQTVCLG9DQUE0QixRQVN2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBCeSBmYXIgdGhlIG1vc3Qgd2lkZWx5IHVzZWQgd2luZGluZyBydWxlcyBmb3IgcG9seWdvbiBmaWxsaW5nIGFyZSBFdmVuT2RkICYgTm9uWmVybyAoR0RJLCBHREkrLCBYTGliLCBPcGVuR0wsIENhaXJvLCBBR0csIFF1YXJ0eiwgU1ZHLCBHcjMyKVxyXG4gKiBPdGhlcnMgcnVsZXMgaW5jbHVkZSBQb3NpdGl2ZSwgTmVnYXRpdmUgYW5kIEFCU19HVFJfRVFfVFdPIChvbmx5IGluIE9wZW5HTClcclxuICogc2VlIGh0dHA6Ly9nbHByb2dyYW1taW5nLmNvbS9yZWQvY2hhcHRlcjExLmh0bWxcclxuICovXHJcbmV4cG9ydCBlbnVtIFBvbHlGaWxsVHlwZSB7XHJcbiAgRXZlbk9kZCA9IFwiZXZlbk9kZFwiLFxyXG4gIE5vblplcm8gPSBcIm5vblplcm9cIixcclxuICBQb3NpdGl2ZSA9IFwicG9zaXRpdmVcIixcclxuICBOZWdhdGl2ZSA9IFwibmVnYXRpdmVcIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBDbGlwVHlwZSB7XHJcbiAgSW50ZXJzZWN0aW9uID0gXCJpbnRlcnNlY3Rpb25cIixcclxuICBVbmlvbiA9IFwidW5pb25cIixcclxuICBEaWZmZXJlbmNlID0gXCJkaWZmZXJlbmNlXCIsXHJcbiAgWG9yID0gXCJ4b3JcIlxyXG59XHJcbmV4cG9ydCBlbnVtIFBvbHlUeXBlIHtcclxuICBTdWJqZWN0ID0gXCJzdWJqZWN0XCIsXHJcbiAgQ2xpcCA9IFwiY2xpcFwiXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEpvaW5UeXBlIHtcclxuICBTcXVhcmUgPSBcInNxdWFyZVwiLFxyXG4gIFJvdW5kID0gXCJyb3VuZFwiLFxyXG4gIE1pdGVyID0gXCJtaXRlclwiXHJcbn1cclxuZXhwb3J0IGVudW0gRW5kVHlwZSB7XHJcbiAgQ2xvc2VkUG9seWdvbiA9IFwiY2xvc2VkUG9seWdvblwiLFxyXG4gIENsb3NlZExpbmUgPSBcImNsb3NlZExpbmVcIixcclxuICBPcGVuQnV0dCA9IFwib3BlbkJ1dHRcIixcclxuICBPcGVuU3F1YXJlID0gXCJvcGVuU3F1YXJlXCIsXHJcbiAgT3BlblJvdW5kID0gXCJvcGVuUm91bmRcIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQb2ludEluUG9seWdvblJlc3VsdCB7XHJcbiAgT3V0c2lkZSA9IDAsXHJcbiAgSW5zaWRlID0gMSxcclxuICBPbkJvdW5kYXJ5ID0gLTFcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdCB0byB1c2Ugd2hlbiBsb2FkaW5nIHRoZSBuYXRpdmUgbGlicmFyeSBpbnN0YW5jZS5cclxuICovXHJcbmV4cG9ydCBlbnVtIE5hdGl2ZUNsaXBwZXJMaWJSZXF1ZXN0ZWRGb3JtYXQge1xyXG4gIC8qKlxyXG4gICAqIFRyeSB0byBsb2FkIHRoZSBXZWJBc3NlbWJseSB2ZXJzaW9uLCBpZiBpdCBmYWlscyB0cnkgdG8gbG9hZCB0aGUgQXNtLmpzIHZlcnNpb24uXHJcbiAgICovXHJcbiAgV2FzbVdpdGhBc21Kc0ZhbGxiYWNrID0gXCJ3YXNtV2l0aEFzbUpzRmFsbGJhY2tcIixcclxuICAvKipcclxuICAgKiBMb2FkIHRoZSBXZWJBc3NlbWJseSB2ZXJzaW9uIGV4Y2x1c2l2ZWx5LlxyXG4gICAqL1xyXG4gIFdhc21Pbmx5ID0gXCJ3YXNtT25seVwiLFxyXG4gIC8qKlxyXG4gICAqIExvYWQgdGhlIEFzbS5qcyB2ZXJzaW9uIGV4Y2x1c2l2ZWx5LlxyXG4gICAqL1xyXG4gIEFzbUpzT25seSA9IFwiYXNtSnNPbmx5XCJcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBmb3JtYXQgdGhlIG5hdGl2ZSBsaWJyYXJ5IGJlaW5nIHVzZWQgaXMgaW4uXHJcbiAqL1xyXG5leHBvcnQgZW51bSBOYXRpdmVDbGlwcGVyTGliTG9hZGVkRm9ybWF0IHtcclxuICAvKipcclxuICAgKiBXZWJBc3NlbWJseS5cclxuICAgKi9cclxuICBXYXNtID0gXCJ3YXNtXCIsXHJcbiAgLyoqXHJcbiAgICogQXNtLmpzLlxyXG4gICAqL1xyXG4gIEFzbUpzID0gXCJhc21Kc1wiXHJcbn1cclxuIl19