UNPKG

react-planner-viewer

Version:

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

80 lines (64 loc) 1.71 kB
import React from 'react'; export default function AreaFactory(name, info, textures) { let areaElement = { name, prototype: 'areas', info: { ...info, visibility: { catalog: false, layerElementsVisible: false } }, properties: { patternColor: { label: 'Color', type: 'color', defaultValue: '#f5f4f4' }, name: { label: 'Name', type: 'string', defaultValue: '', }, }, render2D: function (element, layer, scene) { let path = ''; ///print area path element.vertices.forEach((vertexID, ind) => { let vertex = layer.vertices.get(vertexID); path += ( ind ? 'L' : 'M' ) + vertex.x + ' ' + vertex.y + ' '; }); //add holes element.holes.forEach(areaID => { let area = layer.areas.get( areaID ); area.vertices.reverse().forEach((vertexID, ind) => { let vertex = layer.vertices.get(vertexID); path += ( ind ? 'L' : 'M' ) + vertex.x + ' ' + vertex.y + ' '; }); }); let fill; if(element.showHeatMap && element.heatMapColor){ fill = element.heatMapColor; }else { fill = element.properties.get('patternColor') } return (<path d={path} fill={fill}/>); }, }; if (textures && textures !== {}) { let textureValues = { 'none': 'None' }; for (let textureName in textures) { textureValues[textureName] = textures[textureName].name } areaElement.properties.texture = { label: 'Floor', type: 'enum', defaultValue: 'none', values: textureValues }; } return areaElement }