UNPKG

react-planner

Version:

react-planner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.

107 lines (79 loc) 3.32 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = AreaFactory; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _areaFactory3d = require('./area-factory-3d'); var _sharedStyle = require('../../shared-style'); var SharedStyle = _interopRequireWildcard(_sharedStyle); var _translator = require('../../translator/translator'); var _translator2 = _interopRequireDefault(_translator); 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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var translator = new _translator2.default(); function AreaFactory(name, info, textures) { var areaElement = { name: name, prototype: 'areas', info: _extends({}, info, { visibility: { catalog: false, layerElementsVisible: false } }), properties: { patternColor: { label: translator.t('color'), type: 'color', defaultValue: SharedStyle.AREA_MESH_COLOR.unselected }, thickness: { label: translator.t('thickness'), type: 'length-measure', defaultValue: { length: 0 } } }, render2D: function render2D(element, layer, scene) { var path = ''; ///print area path element.vertices.forEach(function (vertexID, ind) { var vertex = layer.vertices.get(vertexID); path += (ind ? 'L' : 'M') + vertex.x + ' ' + vertex.y + ' '; }); //add holes element.holes.forEach(function (areaID) { var area = layer.areas.get(areaID); area.vertices.reverse().forEach(function (vertexID, ind) { var vertex = layer.vertices.get(vertexID); path += (ind ? 'L' : 'M') + vertex.x + ' ' + vertex.y + ' '; }); }); var fill = element.selected ? SharedStyle.AREA_MESH_COLOR.selected : element.properties.get('patternColor'); return _react2.default.createElement('path', { d: path, fill: fill }); }, render3D: function render3D(element, layer, scene) { return (0, _areaFactory3d.createArea)(element, layer, scene, textures); }, updateRender3D: function updateRender3D(element, layer, scene, mesh, oldElement, differences, selfDestroy, selfBuild) { return (0, _areaFactory3d.updatedArea)(element, layer, scene, textures, mesh, oldElement, differences, selfDestroy, selfBuild); } }; if (textures && textures !== {}) { var textureValues = { 'none': 'None' }; for (var textureName in textures) { textureValues[textureName] = textures[textureName].name; } areaElement.properties.texture = { label: translator.t('texture'), type: 'enum', defaultValue: 'none', values: textureValues }; } return areaElement; }