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.24 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlRW51bUNvbnZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlL25hdGl2ZUVudW1Db252ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUErRTtBQVUvRSxTQUFnQixvQkFBb0IsQ0FDbEMsU0FBbUMsRUFDbkMsWUFBMEI7SUFFMUIsUUFBUSxZQUFZLEVBQUU7UUFDcEIsS0FBSyxvQkFBWSxDQUFDLE9BQU87WUFDdkIsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxLQUFLLG9CQUFZLENBQUMsT0FBTztZQUN2QixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3hDLEtBQUssb0JBQVksQ0FBQyxRQUFRO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDekMsS0FBSyxvQkFBWSxDQUFDLFFBQVE7WUFDeEIsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN6QztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUM3QztBQUNILENBQUM7QUFoQkQsb0RBZ0JDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLFNBQW1DLEVBQ25DLFFBQWtCO0lBRWxCLFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssZ0JBQVEsQ0FBQyxZQUFZO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDekMsS0FBSyxnQkFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNsQyxLQUFLLGdCQUFRLENBQUMsVUFBVTtZQUN0QixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLEtBQUssZ0JBQVEsQ0FBQyxHQUFHO1lBQ2YsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUNoQztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN4QztBQUNILENBQUM7QUFoQkQsNENBZ0JDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLFNBQW1DLEVBQ25DLFFBQWtCO0lBRWxCLFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssZ0JBQVEsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDcEMsS0FBSyxnQkFBUSxDQUFDLElBQUk7WUFDaEIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNqQztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN4QztBQUNILENBQUM7QUFaRCw0Q0FZQztBQUVELFNBQWdCLGdCQUFnQixDQUM5QixTQUFtQyxFQUNuQyxRQUFrQjtJQUVsQixRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLGdCQUFRLENBQUMsTUFBTTtZQUNsQixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ25DLEtBQUssZ0JBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDbEMsS0FBSyxnQkFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNsQztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN4QztBQUNILENBQUM7QUFkRCw0Q0FjQztBQUVELFNBQWdCLGVBQWUsQ0FDN0IsU0FBbUMsRUFDbkMsT0FBZ0I7SUFFaEIsUUFBUSxPQUFPLEVBQUU7UUFDZixLQUFLLGVBQU8sQ0FBQyxhQUFhO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDekMsS0FBSyxlQUFPLENBQUMsVUFBVTtZQUNyQixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3RDLEtBQUssZUFBTyxDQUFDLFFBQVE7WUFDbkIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNwQyxLQUFLLGVBQU8sQ0FBQyxVQUFVO1lBQ3JCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDdEMsS0FBSyxlQUFPLENBQUMsU0FBUztZQUNwQixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3JDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBQ3ZDO0FBQ0gsQ0FBQztBQWxCRCwwQ0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlwVHlwZSwgRW5kVHlwZSwgSm9pblR5cGUsIFBvbHlGaWxsVHlwZSwgUG9seVR5cGUgfSBmcm9tIFwiLi4vZW51bXNcIjtcbmltcG9ydCB7IE5hdGl2ZUNsaXBwZXJMaWJJbnN0YW5jZSB9IGZyb20gXCIuL05hdGl2ZUNsaXBwZXJMaWJJbnN0YW5jZVwiO1xuaW1wb3J0IHtcbiAgTmF0aXZlQ2xpcFR5cGUsXG4gIE5hdGl2ZUVuZFR5cGUsXG4gIE5hdGl2ZUpvaW5UeXBlLFxuICBOYXRpdmVQb2x5RmlsbFR5cGUsXG4gIE5hdGl2ZVBvbHlUeXBlLFxufSBmcm9tIFwiLi9uYXRpdmVFbnVtc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcG9seUZpbGxUeXBlVG9OYXRpdmUoXG4gIG5hdGl2ZUxpYjogTmF0aXZlQ2xpcHBlckxpYkluc3RhbmNlLFxuICBwb2x5RmlsbFR5cGU6IFBvbHlGaWxsVHlwZVxuKTogTmF0aXZlUG9seUZpbGxUeXBlIHtcbiAgc3dpdGNoIChwb2x5RmlsbFR5cGUpIHtcbiAgICBjYXNlIFBvbHlGaWxsVHlwZS5FdmVuT2RkOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Qb2x5RmlsbFR5cGUuRXZlbk9kZDtcbiAgICBjYXNlIFBvbHlGaWxsVHlwZS5Ob25aZXJvOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Qb2x5RmlsbFR5cGUuTm9uWmVybztcbiAgICBjYXNlIFBvbHlGaWxsVHlwZS5Qb3NpdGl2ZTpcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuUG9seUZpbGxUeXBlLlBvc2l0aXZlO1xuICAgIGNhc2UgUG9seUZpbGxUeXBlLk5lZ2F0aXZlOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Qb2x5RmlsbFR5cGUuTmVnYXRpdmU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVua25vd24gcG9seSBmaWxsIHR5cGVcIik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsaXBUeXBlVG9OYXRpdmUoXG4gIG5hdGl2ZUxpYjogTmF0aXZlQ2xpcHBlckxpYkluc3RhbmNlLFxuICBjbGlwVHlwZTogQ2xpcFR5cGVcbik6IE5hdGl2ZUNsaXBUeXBlIHtcbiAgc3dpdGNoIChjbGlwVHlwZSkge1xuICAgIGNhc2UgQ2xpcFR5cGUuSW50ZXJzZWN0aW9uOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5DbGlwVHlwZS5JbnRlcnNlY3Rpb247XG4gICAgY2FzZSBDbGlwVHlwZS5VbmlvbjpcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuQ2xpcFR5cGUuVW5pb247XG4gICAgY2FzZSBDbGlwVHlwZS5EaWZmZXJlbmNlOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5DbGlwVHlwZS5EaWZmZXJlbmNlO1xuICAgIGNhc2UgQ2xpcFR5cGUuWG9yOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5DbGlwVHlwZS5Yb3I7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVua25vd24gY2xpcCB0eXBlXCIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb2x5VHlwZVRvTmF0aXZlKFxuICBuYXRpdmVMaWI6IE5hdGl2ZUNsaXBwZXJMaWJJbnN0YW5jZSxcbiAgcG9seVR5cGU6IFBvbHlUeXBlXG4pOiBOYXRpdmVQb2x5VHlwZSB7XG4gIHN3aXRjaCAocG9seVR5cGUpIHtcbiAgICBjYXNlIFBvbHlUeXBlLlN1YmplY3Q6XG4gICAgICByZXR1cm4gbmF0aXZlTGliLlBvbHlUeXBlLlN1YmplY3Q7XG4gICAgY2FzZSBQb2x5VHlwZS5DbGlwOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Qb2x5VHlwZS5DbGlwO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHBvbHkgdHlwZVwiKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gam9pblR5cGVUb05hdGl2ZShcbiAgbmF0aXZlTGliOiBOYXRpdmVDbGlwcGVyTGliSW5zdGFuY2UsXG4gIGpvaW5UeXBlOiBKb2luVHlwZVxuKTogTmF0aXZlSm9pblR5cGUge1xuICBzd2l0Y2ggKGpvaW5UeXBlKSB7XG4gICAgY2FzZSBKb2luVHlwZS5TcXVhcmU6XG4gICAgICByZXR1cm4gbmF0aXZlTGliLkpvaW5UeXBlLlNxdWFyZTtcbiAgICBjYXNlIEpvaW5UeXBlLlJvdW5kOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Kb2luVHlwZS5Sb3VuZDtcbiAgICBjYXNlIEpvaW5UeXBlLk1pdGVyOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5Kb2luVHlwZS5NaXRlcjtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBqb2luIHR5cGVcIik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuZFR5cGVUb05hdGl2ZShcbiAgbmF0aXZlTGliOiBOYXRpdmVDbGlwcGVyTGliSW5zdGFuY2UsXG4gIGVuZFR5cGU6IEVuZFR5cGVcbik6IE5hdGl2ZUVuZFR5cGUge1xuICBzd2l0Y2ggKGVuZFR5cGUpIHtcbiAgICBjYXNlIEVuZFR5cGUuQ2xvc2VkUG9seWdvbjpcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuRW5kVHlwZS5DbG9zZWRQb2x5Z29uO1xuICAgIGNhc2UgRW5kVHlwZS5DbG9zZWRMaW5lOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5FbmRUeXBlLkNsb3NlZExpbmU7XG4gICAgY2FzZSBFbmRUeXBlLk9wZW5CdXR0OlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5FbmRUeXBlLk9wZW5CdXR0O1xuICAgIGNhc2UgRW5kVHlwZS5PcGVuU3F1YXJlOlxuICAgICAgcmV0dXJuIG5hdGl2ZUxpYi5FbmRUeXBlLk9wZW5TcXVhcmU7XG4gICAgY2FzZSBFbmRUeXBlLk9wZW5Sb3VuZDpcbiAgICAgIHJldHVybiBuYXRpdmVMaWIuRW5kVHlwZS5PcGVuUm91bmQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVua25vd24gZW5kIHR5cGVcIik7XG4gIH1cbn1cbiJdfQ==