UNPKG

react-planner-electron

Version:

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

86 lines (69 loc) 2.64 kB
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; }; import React from 'react'; import { createArea, updatedArea } from './area-factory-3d'; import * as SharedStyle from '../../shared-style'; import Translator from '../../translator/translator'; var translator = new Translator(); export 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 React.createElement('path', { d: path, fill: fill }); }, render3D: function render3D(element, layer, scene) { return createArea(element, layer, scene, textures); }, updateRender3D: function updateRender3D(element, layer, scene, mesh, oldElement, differences, selfDestroy, selfBuild) { return 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; }