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

76 lines 9.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.endTypeToNative = exports.joinTypeToNative = exports.polyTypeToNative = exports.clipTypeToNative = exports.polyFillTypeToNative = void 0; var enums_1 = require("../enums"); function polyFillTypeToNative(nativeLib, polyFillType) { switch (polyFillType) { case enums_1.PolyFillType.EvenOdd: return nativeLib.PolyFillType.EvenOdd; case enums_1.PolyFillType.NonZero: return nativeLib.PolyFillType.NonZero; case enums_1.PolyFillType.Positive: return nativeLib.PolyFillType.Positive; case enums_1.PolyFillType.Negative: return nativeLib.PolyFillType.Negative; default: throw new Error("unknown poly fill type"); } } exports.polyFillTypeToNative = polyFillTypeToNative; function clipTypeToNative(nativeLib, clipType) { switch (clipType) { case enums_1.ClipType.Intersection: return nativeLib.ClipType.Intersection; case enums_1.ClipType.Union: return nativeLib.ClipType.Union; case enums_1.ClipType.Difference: return nativeLib.ClipType.Difference; case enums_1.ClipType.Xor: return nativeLib.ClipType.Xor; default: throw new Error("unknown clip type"); } } exports.clipTypeToNative = clipTypeToNative; function polyTypeToNative(nativeLib, polyType) { switch (polyType) { case enums_1.PolyType.Subject: return nativeLib.PolyType.Subject; case enums_1.PolyType.Clip: return nativeLib.PolyType.Clip; default: throw new Error("unknown poly type"); } } exports.polyTypeToNative = polyTypeToNative; function joinTypeToNative(nativeLib, joinType) { switch (joinType) { case enums_1.JoinType.Square: return nativeLib.JoinType.Square; case enums_1.JoinType.Round: return nativeLib.JoinType.Round; case enums_1.JoinType.Miter: return nativeLib.JoinType.Miter; default: throw new Error("unknown join type"); } } exports.joinTypeToNative = joinTypeToNative; function endTypeToNative(nativeLib, endType) { switch (endType) { case enums_1.EndType.ClosedPolygon: return nativeLib.EndType.ClosedPolygon; case enums_1.EndType.ClosedLine: return nativeLib.EndType.ClosedLine; case enums_1.EndType.OpenButt: return nativeLib.EndType.OpenButt; case enums_1.EndType.OpenSquare: return nativeLib.EndType.OpenSquare; case enums_1.EndType.OpenRound: return nativeLib.EndType.OpenRound; default: throw new Error("unknown end type"); } } exports.endTypeToNative = endTypeToNative; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlRW51bUNvbnZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlL25hdGl2ZUVudW1Db252ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUErRTtBQVUvRSxTQUFnQixvQkFBb0IsQ0FDbEMsU0FBbUMsRUFDbkMsWUFBMEI7SUFFMUIsUUFBUSxZQUFZLEVBQUU7UUFDcEIsS0FBSyxvQkFBWSxDQUFDLE9BQU87WUFDdkIsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxLQUFLLG9CQUFZLENBQUMsT0FBTztZQUN2QixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3hDLEtBQUssb0JBQVksQ0FBQyxRQUFRO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDekMsS0FBSyxvQkFBWSxDQUFDLFFBQVE7WUFDeEIsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN6QztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUM3QztBQUNILENBQUM7QUFoQkQsb0RBZ0JDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLFNBQW1DLEVBQ25DLFFBQWtCO0lBRWxCLFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssZ0JBQVEsQ0FBQyxZQUFZO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDekMsS0FBSyxnQkFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNsQyxLQUFLLGdCQUFRLENBQUMsVUFBVTtZQUN0QixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLEtBQUssZ0JBQVEsQ0FBQyxHQUFHO1lBQ2YsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUNoQztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN4QztBQUNILENBQUM7QUFoQkQsNENBZ0JDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLFNBQW1DLEVBQ25DLFFBQWtCO0lBRWxCLFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssZ0JBQVEsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDcEMsS0FBSyxnQkFBUSxDQUFDLElBQUk7WUFDaEIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNqQztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN4QztBQUNILENBQUM7QUFaRCw0Q0FZQztBQUVELFNBQWdCLGdCQUFnQixDQUM5QixTQUFtQyxFQUNuQyxRQUFrQjtJQUVsQixRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLGdCQUFRLENBQUMsTUFBTTtZQUNsQixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ25DLEtBQUssZ0JBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDbEMsS0FBSyxnQkFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNsQztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN4QztBQUNILENBQUM7QUFkRCw0Q0FjQztBQUVELFNBQWdCLGVBQWUsQ0FDN0IsU0FBbUMsRUFDbkMsT0FBZ0I7SUFFaEIsUUFBUSxPQUFPLEVBQUU7UUFDZixLQUFLLGVBQU8sQ0FBQyxhQUFhO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDekMsS0FBSyxlQUFPLENBQUMsVUFBVTtZQUNyQixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3RDLEtBQUssZUFBTyxDQUFDLFFBQVE7WUFDbkIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNwQyxLQUFLLGVBQU8sQ0FBQyxVQUFVO1lBQ3JCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDdEMsS0FBSyxlQUFPLENBQUMsU0FBUztZQUNwQixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3JDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBQ3ZDO0FBQ0gsQ0FBQztBQWxCRCwwQ0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlwVHlwZSwgRW5kVHlwZSwgSm9pblR5cGUsIFBvbHlGaWxsVHlwZSwgUG9seVR5cGUgfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuaW1wb3J0IHsgTmF0aXZlQ2xpcHBlckxpYkluc3RhbmNlIH0gZnJvbSBcIi4vTmF0aXZlQ2xpcHBlckxpYkluc3RhbmNlXCI7XHJcbmltcG9ydCB7XHJcbiAgTmF0aXZlQ2xpcFR5cGUsXHJcbiAgTmF0aXZlRW5kVHlwZSxcclxuICBOYXRpdmVKb2luVHlwZSxcclxuICBOYXRpdmVQb2x5RmlsbFR5cGUsXHJcbiAgTmF0aXZlUG9seVR5cGVcclxufSBmcm9tIFwiLi9uYXRpdmVFbnVtc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBvbHlGaWxsVHlwZVRvTmF0aXZlKFxyXG4gIG5hdGl2ZUxpYjogTmF0aXZlQ2xpcHBlckxpYkluc3RhbmNlLFxyXG4gIHBvbHlGaWxsVHlwZTogUG9seUZpbGxUeXBlXHJcbik6IE5hdGl2ZVBvbHlGaWxsVHlwZSB7XHJcbiAgc3dpdGNoIChwb2x5RmlsbFR5cGUpIHtcclxuICAgIGNhc2UgUG9seUZpbGxUeXBlLkV2ZW5PZGQ6XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuUG9seUZpbGxUeXBlLkV2ZW5PZGQ7XHJcbiAgICBjYXNlIFBvbHlGaWxsVHlwZS5Ob25aZXJvOlxyXG4gICAgICByZXR1cm4gbmF0aXZlTGliLlBvbHlGaWxsVHlwZS5Ob25aZXJvO1xyXG4gICAgY2FzZSBQb2x5RmlsbFR5cGUuUG9zaXRpdmU6XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuUG9seUZpbGxUeXBlLlBvc2l0aXZlO1xyXG4gICAgY2FzZSBQb2x5RmlsbFR5cGUuTmVnYXRpdmU6XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuUG9seUZpbGxUeXBlLk5lZ2F0aXZlO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBwb2x5IGZpbGwgdHlwZVwiKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGlwVHlwZVRvTmF0aXZlKFxyXG4gIG5hdGl2ZUxpYjogTmF0aXZlQ2xpcHBlckxpYkluc3RhbmNlLFxyXG4gIGNsaXBUeXBlOiBDbGlwVHlwZVxyXG4pOiBOYXRpdmVDbGlwVHlwZSB7XHJcbiAgc3dpdGNoIChjbGlwVHlwZSkge1xyXG4gICAgY2FzZSBDbGlwVHlwZS5JbnRlcnNlY3Rpb246XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuQ2xpcFR5cGUuSW50ZXJzZWN0aW9uO1xyXG4gICAgY2FzZSBDbGlwVHlwZS5VbmlvbjpcclxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5DbGlwVHlwZS5VbmlvbjtcclxuICAgIGNhc2UgQ2xpcFR5cGUuRGlmZmVyZW5jZTpcclxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5DbGlwVHlwZS5EaWZmZXJlbmNlO1xyXG4gICAgY2FzZSBDbGlwVHlwZS5Yb3I6XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuQ2xpcFR5cGUuWG9yO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBjbGlwIHR5cGVcIik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcG9seVR5cGVUb05hdGl2ZShcclxuICBuYXRpdmVMaWI6IE5hdGl2ZUNsaXBwZXJMaWJJbnN0YW5jZSxcclxuICBwb2x5VHlwZTogUG9seVR5cGVcclxuKTogTmF0aXZlUG9seVR5cGUge1xyXG4gIHN3aXRjaCAocG9seVR5cGUpIHtcclxuICAgIGNhc2UgUG9seVR5cGUuU3ViamVjdDpcclxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Qb2x5VHlwZS5TdWJqZWN0O1xyXG4gICAgY2FzZSBQb2x5VHlwZS5DbGlwOlxyXG4gICAgICByZXR1cm4gbmF0aXZlTGliLlBvbHlUeXBlLkNsaXA7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHBvbHkgdHlwZVwiKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBqb2luVHlwZVRvTmF0aXZlKFxyXG4gIG5hdGl2ZUxpYjogTmF0aXZlQ2xpcHBlckxpYkluc3RhbmNlLFxyXG4gIGpvaW5UeXBlOiBKb2luVHlwZVxyXG4pOiBOYXRpdmVKb2luVHlwZSB7XHJcbiAgc3dpdGNoIChqb2luVHlwZSkge1xyXG4gICAgY2FzZSBKb2luVHlwZS5TcXVhcmU6XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuSm9pblR5cGUuU3F1YXJlO1xyXG4gICAgY2FzZSBKb2luVHlwZS5Sb3VuZDpcclxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Kb2luVHlwZS5Sb3VuZDtcclxuICAgIGNhc2UgSm9pblR5cGUuTWl0ZXI6XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuSm9pblR5cGUuTWl0ZXI7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIGpvaW4gdHlwZVwiKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmRUeXBlVG9OYXRpdmUoXHJcbiAgbmF0aXZlTGliOiBOYXRpdmVDbGlwcGVyTGliSW5zdGFuY2UsXHJcbiAgZW5kVHlwZTogRW5kVHlwZVxyXG4pOiBOYXRpdmVFbmRUeXBlIHtcclxuICBzd2l0Y2ggKGVuZFR5cGUpIHtcclxuICAgIGNhc2UgRW5kVHlwZS5DbG9zZWRQb2x5Z29uOlxyXG4gICAgICByZXR1cm4gbmF0aXZlTGliLkVuZFR5cGUuQ2xvc2VkUG9seWdvbjtcclxuICAgIGNhc2UgRW5kVHlwZS5DbG9zZWRMaW5lOlxyXG4gICAgICByZXR1cm4gbmF0aXZlTGliLkVuZFR5cGUuQ2xvc2VkTGluZTtcclxuICAgIGNhc2UgRW5kVHlwZS5PcGVuQnV0dDpcclxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5FbmRUeXBlLk9wZW5CdXR0O1xyXG4gICAgY2FzZSBFbmRUeXBlLk9wZW5TcXVhcmU6XHJcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuRW5kVHlwZS5PcGVuU3F1YXJlO1xyXG4gICAgY2FzZSBFbmRUeXBlLk9wZW5Sb3VuZDpcclxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5FbmRUeXBlLk9wZW5Sb3VuZDtcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVua25vd24gZW5kIHR5cGVcIik7XHJcbiAgfVxyXG59XHJcbiJdfQ==