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.37 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW51bXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNILElBQVksWUFLWDtBQUxELFdBQVksWUFBWTtJQUN0QixtQ0FBbUIsQ0FBQTtJQUNuQixtQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBcUIsQ0FBQTtJQUNyQixxQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFLdkI7QUFFRCxJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDbEIseUNBQTZCLENBQUE7SUFDN0IsMkJBQWUsQ0FBQTtJQUNmLHFDQUF5QixDQUFBO0lBQ3pCLHVCQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7QUFDRCxJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDbEIsK0JBQW1CLENBQUE7SUFDbkIseUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUduQjtBQUVELElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFDRCxJQUFZLE9BTVg7QUFORCxXQUFZLE9BQU87SUFDakIsMENBQStCLENBQUE7SUFDL0Isb0NBQXlCLENBQUE7SUFDekIsZ0NBQXFCLENBQUE7SUFDckIsb0NBQXlCLENBQUE7SUFDekIsa0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQU5XLE9BQU8sR0FBUCxlQUFPLEtBQVAsZUFBTyxRQU1sQjtBQUVELElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixxRUFBVyxDQUFBO0lBQ1gsbUVBQVUsQ0FBQTtJQUNWLDRFQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLG9CQUFvQixHQUFwQiw0QkFBb0IsS0FBcEIsNEJBQW9CLFFBSS9CO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLCtCQWFYO0FBYkQsV0FBWSwrQkFBK0I7SUFDekM7O09BRUc7SUFDSCxrRkFBK0MsQ0FBQTtJQUMvQzs7T0FFRztJQUNILHdEQUFxQixDQUFBO0lBQ3JCOztPQUVHO0lBQ0gsMERBQXVCLENBQUE7QUFDekIsQ0FBQyxFQWJXLCtCQUErQixHQUEvQix1Q0FBK0IsS0FBL0IsdUNBQStCLFFBYTFDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLDRCQVNYO0FBVEQsV0FBWSw0QkFBNEI7SUFDdEM7O09BRUc7SUFDSCw2Q0FBYSxDQUFBO0lBQ2I7O09BRUc7SUFDSCwrQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFUVyw0QkFBNEIsR0FBNUIsb0NBQTRCLEtBQTVCLG9DQUE0QixRQVN2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnkgZmFyIHRoZSBtb3N0IHdpZGVseSB1c2VkIHdpbmRpbmcgcnVsZXMgZm9yIHBvbHlnb24gZmlsbGluZyBhcmUgRXZlbk9kZCAmIE5vblplcm8gKEdESSwgR0RJKywgWExpYiwgT3BlbkdMLCBDYWlybywgQUdHLCBRdWFydHosIFNWRywgR3IzMilcbiAqIE90aGVycyBydWxlcyBpbmNsdWRlIFBvc2l0aXZlLCBOZWdhdGl2ZSBhbmQgQUJTX0dUUl9FUV9UV08gKG9ubHkgaW4gT3BlbkdMKVxuICogc2VlIGh0dHA6Ly9nbHByb2dyYW1taW5nLmNvbS9yZWQvY2hhcHRlcjExLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gUG9seUZpbGxUeXBlIHtcbiAgRXZlbk9kZCA9IFwiZXZlbk9kZFwiLFxuICBOb25aZXJvID0gXCJub25aZXJvXCIsXG4gIFBvc2l0aXZlID0gXCJwb3NpdGl2ZVwiLFxuICBOZWdhdGl2ZSA9IFwibmVnYXRpdmVcIixcbn1cblxuZXhwb3J0IGVudW0gQ2xpcFR5cGUge1xuICBJbnRlcnNlY3Rpb24gPSBcImludGVyc2VjdGlvblwiLFxuICBVbmlvbiA9IFwidW5pb25cIixcbiAgRGlmZmVyZW5jZSA9IFwiZGlmZmVyZW5jZVwiLFxuICBYb3IgPSBcInhvclwiLFxufVxuZXhwb3J0IGVudW0gUG9seVR5cGUge1xuICBTdWJqZWN0ID0gXCJzdWJqZWN0XCIsXG4gIENsaXAgPSBcImNsaXBcIixcbn1cblxuZXhwb3J0IGVudW0gSm9pblR5cGUge1xuICBTcXVhcmUgPSBcInNxdWFyZVwiLFxuICBSb3VuZCA9IFwicm91bmRcIixcbiAgTWl0ZXIgPSBcIm1pdGVyXCIsXG59XG5leHBvcnQgZW51bSBFbmRUeXBlIHtcbiAgQ2xvc2VkUG9seWdvbiA9IFwiY2xvc2VkUG9seWdvblwiLFxuICBDbG9zZWRMaW5lID0gXCJjbG9zZWRMaW5lXCIsXG4gIE9wZW5CdXR0ID0gXCJvcGVuQnV0dFwiLFxuICBPcGVuU3F1YXJlID0gXCJvcGVuU3F1YXJlXCIsXG4gIE9wZW5Sb3VuZCA9IFwib3BlblJvdW5kXCIsXG59XG5cbmV4cG9ydCBlbnVtIFBvaW50SW5Qb2x5Z29uUmVzdWx0IHtcbiAgT3V0c2lkZSA9IDAsXG4gIEluc2lkZSA9IDEsXG4gIE9uQm91bmRhcnkgPSAtMSxcbn1cblxuLyoqXG4gKiBGb3JtYXQgdG8gdXNlIHdoZW4gbG9hZGluZyB0aGUgbmF0aXZlIGxpYnJhcnkgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBlbnVtIE5hdGl2ZUNsaXBwZXJMaWJSZXF1ZXN0ZWRGb3JtYXQge1xuICAvKipcbiAgICogVHJ5IHRvIGxvYWQgdGhlIFdlYkFzc2VtYmx5IHZlcnNpb24sIGlmIGl0IGZhaWxzIHRyeSB0byBsb2FkIHRoZSBBc20uanMgdmVyc2lvbi5cbiAgICovXG4gIFdhc21XaXRoQXNtSnNGYWxsYmFjayA9IFwid2FzbVdpdGhBc21Kc0ZhbGxiYWNrXCIsXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBXZWJBc3NlbWJseSB2ZXJzaW9uIGV4Y2x1c2l2ZWx5LlxuICAgKi9cbiAgV2FzbU9ubHkgPSBcIndhc21Pbmx5XCIsXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBBc20uanMgdmVyc2lvbiBleGNsdXNpdmVseS5cbiAgICovXG4gIEFzbUpzT25seSA9IFwiYXNtSnNPbmx5XCIsXG59XG5cbi8qKlxuICogVGhlIGZvcm1hdCB0aGUgbmF0aXZlIGxpYnJhcnkgYmVpbmcgdXNlZCBpcyBpbi5cbiAqL1xuZXhwb3J0IGVudW0gTmF0aXZlQ2xpcHBlckxpYkxvYWRlZEZvcm1hdCB7XG4gIC8qKlxuICAgKiBXZWJBc3NlbWJseS5cbiAgICovXG4gIFdhc20gPSBcIndhc21cIixcbiAgLyoqXG4gICAqIEFzbS5qcy5cbiAgICovXG4gIEFzbUpzID0gXCJhc21Kc1wiLFxufVxuIl19