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