UNPKG

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
"use strict"; 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