UNPKG

react-planner-viewer

Version:

react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode

105 lines (75 loc) 10 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); exports.sceneSnapElements = sceneSnapElements; var _snap = require('./snap'); var _geometry = require('./geometry'); var Geometry = _interopRequireWildcard(_geometry); var _immutable = require('immutable'); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function sceneSnapElements(scene) { var snapElements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _immutable.List(); var snapMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _immutable.Map(); var a = void 0, b = void 0, c = void 0; return snapElements.withMutations(function (snapElements) { scene.layers.forEach(function (layer) { var lines = layer.lines, vertices = layer.vertices; vertices.forEach(function (_ref) { var vertexID = _ref.id, x = _ref.x, y = _ref.y; if (snapMask.get(_snap.SNAP_POINT)) { (0, _snap.addPointSnap)(snapElements, x, y, 10, 10, vertexID); } if (snapMask.get(_snap.SNAP_LINE)) { var _Geometry$horizontalL = Geometry.horizontalLine(y); a = _Geometry$horizontalL.a; b = _Geometry$horizontalL.b; c = _Geometry$horizontalL.c; (0, _snap.addLineSnap)(snapElements, a, b, c, 10, 1, vertexID); var _Geometry$verticalLin = Geometry.verticalLine(x); a = _Geometry$verticalLin.a; b = _Geometry$verticalLin.b; c = _Geometry$verticalLin.c; (0, _snap.addLineSnap)(snapElements, a, b, c, 10, 1, vertexID); } }); if (snapMask.get(_snap.SNAP_SEGMENT)) { lines.forEach(function (_ref2) { var lineID = _ref2.id, _ref2$vertices = _slicedToArray(_ref2.vertices, 2), v0 = _ref2$vertices[0], v1 = _ref2$vertices[1]; var _vertices$get = vertices.get(v0), x1 = _vertices$get.x, y1 = _vertices$get.y; var _vertices$get2 = vertices.get(v1), x2 = _vertices$get2.x, y2 = _vertices$get2.y; (0, _snap.addLineSegmentSnap)(snapElements, x1, y1, x2, y2, 20, 1, lineID); }); } }); if (snapMask.get(_snap.SNAP_GRID)) { var divider = 5; var gridCellSize = 100 / divider; var xCycle = scene.get('width') / gridCellSize; var yCycle = scene.get('height') / gridCellSize; for (var x = 0; x < xCycle; x++) { var xMul = x * gridCellSize; for (var y = 0; y < yCycle; y++) { var yMul = y * gridCellSize; var onXCross = !(x % divider) ? true : false; var onYCross = !(y % divider) ? true : false; (0, _snap.addGridSnap)(snapElements, xMul, yMul, 10, onXCross && onYCross ? 15 : 10, null); } } } }); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zbmFwLXNjZW5lLmpzIl0sIm5hbWVzIjpbInNjZW5lU25hcEVsZW1lbnRzIiwiR2VvbWV0cnkiLCJzY2VuZSIsInNuYXBFbGVtZW50cyIsInNuYXBNYXNrIiwiYSIsImIiLCJjIiwid2l0aE11dGF0aW9ucyIsImxheWVycyIsImZvckVhY2giLCJsaW5lcyIsImxheWVyIiwidmVydGljZXMiLCJ2ZXJ0ZXhJRCIsImlkIiwieCIsInkiLCJnZXQiLCJob3Jpem9udGFsTGluZSIsInZlcnRpY2FsTGluZSIsImxpbmVJRCIsInYwIiwidjEiLCJ4MSIsInkxIiwieDIiLCJ5MiIsImRpdmlkZXIiLCJncmlkQ2VsbFNpemUiLCJ4Q3ljbGUiLCJ5Q3ljbGUiLCJ4TXVsIiwieU11bCIsIm9uWENyb3NzIiwib25ZQ3Jvc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O1FBS2dCQSxpQixHQUFBQSxpQjs7QUFMaEI7O0FBQ0E7O0lBQVlDLFE7O0FBQ1o7Ozs7QUFHTyxTQUFTRCxpQkFBVCxDQUEyQkUsS0FBM0IsRUFBbUY7QUFBQSxNQUFqREMsWUFBaUQsdUVBQWxDLHFCQUFrQztBQUFBLE1BQXRCQyxRQUFzQix1RUFBWCxvQkFBVzs7O0FBRXhGLE1BQUlDLFVBQUo7QUFBQSxNQUFPQyxVQUFQO0FBQUEsTUFBVUMsVUFBVjtBQUNBLFNBQU9KLGFBQWFLLGFBQWIsQ0FBMkIsd0JBQWdCO0FBQ2hETixVQUFNTyxNQUFOLENBQWFDLE9BQWIsQ0FBcUIsaUJBQVM7QUFBQSxVQUV0QkMsS0FGc0IsR0FFRkMsS0FGRSxDQUV0QkQsS0FGc0I7QUFBQSxVQUVmRSxRQUZlLEdBRUZELEtBRkUsQ0FFZkMsUUFGZTs7O0FBSTVCQSxlQUFTSCxPQUFULENBQWlCLGdCQUE0QjtBQUFBLFlBQXJCSSxRQUFxQixRQUF6QkMsRUFBeUI7QUFBQSxZQUFYQyxDQUFXLFFBQVhBLENBQVc7QUFBQSxZQUFSQyxDQUFRLFFBQVJBLENBQVE7OztBQUUzQyxZQUFJYixTQUFTYyxH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U25hcCwgYWRkTGluZVNuYXAsIGFkZExpbmVTZWdtZW50U25hcCwgYWRkR3JpZFNuYXAgfSBmcm9tICcuL3NuYXAnO1xuaW1wb3J0ICogYXMgR2VvbWV0cnkgZnJvbSAnLi9nZW9tZXRyeSc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IHsgU05BUF9QT0lOVCwgU05BUF9MSU5FLCBTTkFQX1NFR01FTlQsIFNOQVBfR1JJRCB9IGZyb20gJy4vc25hcCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2VuZVNuYXBFbGVtZW50cyhzY2VuZSwgc25hcEVsZW1lbnRzID0gbmV3IExpc3QoKSwgc25hcE1hc2sgPSBuZXcgTWFwKCkpIHtcblxuICBsZXQgYSwgYiwgYztcbiAgcmV0dXJuIHNuYXBFbGVtZW50cy53aXRoTXV0YXRpb25zKHNuYXBFbGVtZW50cyA9PiB7XG4gICAgc2NlbmUubGF5ZXJzLmZvckVhY2gobGF5ZXIgPT4ge1xuXG4gICAgICBsZXQgeyBsaW5lcywgdmVydGljZXMgfSA9IGxheWVyO1xuXG4gICAgICB2ZXJ0aWNlcy5mb3JFYWNoKCh7IGlkOiB2ZXJ0ZXhJRCwgeCwgeSB9KSA9PiB7XG5cbiAgICAgICAgaWYgKHNuYXBNYXNrLmdldChTTkFQX1BPSU5UKSkge1xuICAgICAgICAgIGFkZFBvaW50U25hcChzbmFwRWxlbWVudHMsIHgsIHksIDEwLCAxMCwgdmVydGV4SUQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNuYXBNYXNrLmdldChTTkFQX0xJTkUpKSB7XG4gICAgICAgICAgKHsgYSwgYiwgYyB9ID0gR2VvbWV0cnkuaG9yaXpvbnRhbExpbmUoeSkpO1xuICAgICAgICAgIGFkZExpbmVTbmFwKHNuYXBFbGVtZW50cywgYSwgYiwgYywgMTAsIDEsIHZlcnRleElEKTtcbiAgICAgICAgICAoeyBhLCBiLCBjIH0gPSBHZW9tZXRyeS52ZXJ0aWNhbExpbmUoeCkpO1xuICAgICAgICAgIGFkZExpbmVTbmFwKHNuYXBFbGVtZW50cywgYSwgYiwgYywgMTAsIDEsIHZlcnRleElEKTtcbiAgICAgICAgfVxuXG4gICAgICB9KTtcblxuICAgICAgaWYgKHNuYXBNYXNrLmdldChTTkFQX1NFR01FTlQpKSB7XG4gICAgICAgIGxpbmVzLmZvckVhY2goKHsgaWQ6IGxpbmVJRCwgdmVydGljZXM6IFt2MCwgdjFdIH0pID0+IHtcbiAgICAgICAgICBsZXQgeyB4OiB4MSwgeTogeTEgfSA9IHZlcnRpY2VzLmdldCh2MCk7XG4gICAgICAgICAgbGV0IHsgeDogeDIsIHk6IHkyIH0gPSB2ZXJ0aWNlcy5nZXQodjEpO1xuXG4gICAgICAgICAgYWRkTGluZVNlZ21lbnRTbmFwKHNuYXBFbGVtZW50cywgeDEsIHkxLCB4MiwgeTIsIDIwLCAxLCBsaW5lSUQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgIH0pO1xuXG4gICAgaWYgKHNuYXBNYXNrLmdldChTTkFQX0dSSUQpKSB7XG4gICAgICBsZXQgZGl2aWRlciA9IDU7XG4gICAgICBsZXQgZ3JpZENlbGxTaXplID0gMTAwIC8gZGl2aWRlcjtcbiAgICAgIGxldCB4Q3ljbGUgPSBzY2VuZS5nZXQoJ3dpZHRoJykgLyBncmlkQ2VsbFNpemU7XG4gICAgICBsZXQgeUN5Y2xlID0gc2NlbmUuZ2V0KCdoZWlnaHQnKSAvIGdyaWRDZWxsU2l6ZTtcblxuICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB4Q3ljbGU7IHgrKykge1xuICAgICAgICBsZXQgeE11bCA9IHggKiBncmlkQ2VsbFNpemU7XG5cbiAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCB5Q3ljbGU7IHkrKykge1xuICAgICAgICAgIGxldCB5TXVsID0geSAqIGdyaWRDZWxsU2l6ZTtcblxuICAgICAgICAgIGxldCBvblhDcm9zcyA9ICEoeCAlIGRpdmlkZXIpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgIGxldCBvbllDcm9zcyA9ICEoeSAlIGRpdmlkZXIpID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgICAgYWRkR3JpZFNuYXAoc25hcEVsZW1lbnRzLCB4TXVsLCB5TXVsLCAxMCwgb25YQ3Jvc3MgJiYgb25ZQ3Jvc3MgPyAxNSA6IDEwLCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9KVxufVxuIl19