import { fabric } from 'fabric' export const MENU = { PLAN_DRAWING: 'planDrawing', INITIAL_CANVAS_SETTING: 'initialCanvasSetting', // 배치면 초기설정 ROOF_COVERING: { EXTERIOR_WALL_LINE: 'exteriorWallLine', // 외벽선 그리기 ROOF_SHAPE_SETTINGS: 'roofShapeSettings', // 지붕형상 설정 ROOF_SHAPE_PASSIVITY_SETTINGS: 'roofShapePassivitySettings', // 지붕형상 수동설정 ROOF_SHAPE_EDITING: 'roofShapeEditing', // 지붕형상 편집 HELP_LINE_DRAWING: 'helpLineDrawing', // 보조선 그리기 EAVES_KERAVA_EDIT: 'eavesKeravaEdit', // 처마.케라마 변경 MOVEMENT_SHAPE_UPDOWN: 'movementShapeUpdown', // 동선이동.형올림내림 OUTLINE_EDIT_OFFSET: 'outlineEditOffset', // 외벽선 편집 및 오프셋 ROOF_SHAPE_ALLOC: 'rootShapeAlloc', // 지붕면 항당 DEFAULT: 'roofCoveringDefault', // 아무것도 선택 안할 경우 }, // 지붕덮개 BATCH_CANVAS: { SLOPE_SETTING: 'slopeSetting', // 경사 설정 BATCH_DRAWING: 'batchDrawing', // 배치면 그리기 SURFACE_SHAPE_BATCH: 'surfaceShapeBatch', // 면형상 배치 SURFACE_SHAPE_BATCH_TEMP: 'surfaceShapeBatchTemp', // 면형상 배치 임시 OBJECT_BATCH: 'objectBatch', // 오브젝트 배치 ALL_REMOVE: 'allRemove', // 전체 삭제 DEFAULT: 'batchCanvasDefault', // default }, // 배치면 MODULE_CIRCUIT_SETTING: { BASIC_SETTING: 'basicSetting', // 기본설정 CIRCUIT_TRESTLE_SETTING: 'circuitTrestleSetting', // 회로가대설정 PLAN_ORIENTATION: 'planOrientation', // 도면 방위적용 DEFAULT: 'moduleCircuitSettingDefault', }, // 모듈회로구성 ESTIMATE: 'estimate', // todo 견적서 POWER_GENERATION_SIMULATION: 'powerGenerationSimulation', // todo 발전 시뮬레이션 } export const Mode = { DRAW_LINE: 'drawLine', // 기준선 긋기모드` EDIT: 'edit', TEMPLATE: 'template', PATTERNA: 'patterna', PATTERNB: 'patternb', TEXTBOX: 'textbox', DRAW_RECT: 'drawRect', ROOF_PATTERN: 'roofPattern', //지붕패턴 모드 ROOF_TRESTLE: 'roofTrestle', //지붕가대 모드 FILL_CELLS: 'fillCells', //태양광셀 모드 CELL_POWERCON: 'cellPowercon', //파워콘 DRAW_HELP_LINE: 'drawHelpLine', // 보조선 그리기 모드 지붕 존재해야함 ADSORPTION_POINT: 'adsorptionPoint', //흡착점 모드 OPENING: 'opening', //개구 모드 SHADOW: 'shadow', //그림자 생성 모드 DEFAULT: 'default', } export const LINE_TYPE = { WALLLINE: { /** * 없음 / 처마 / 캐라바 / 벽 / 팔작지붕 / 반절처 / 한쪽흐름 */ DEFAULT: 'default', EAVES: 'eaves', GABLE: 'gable', GABLE_LEFT: 'gableLeft', //케라바 왼쪽 GABLE_RIGHT: 'gableRight', //케라바 오른쪽 WALL: 'wall', HIPANDGABLE: 'hipAndGable', JERKINHEAD: 'jerkinhead', SHED: 'shed', ETC: 'etc', }, SUBLINE: { /** * 추녀 / 마루 / 박공 / 지붕골 / 박공단 */ HIP: 'hip', RIDGE: 'ridge', GABLE: 'gable', VERGE: 'verge', ONESIDE_FLOW_RIDGE: 'onesideFlowRidge', //한쪽흐름 용마루 YOSEMUNE: 'yosemune', //요세무네 VALLEY: 'valley', //골짜기 L_ABANDON_VALLEY: 'lAbandonValley', //l의버림계곡 MANSARD: 'mansard', //맨사드 WALL_COLLECTION: 'wallCollection', //벽취합 WALL_COLLECTION_TYPE: 'wallCollectionType', //벽취합(형) WALL_COLLECTION_FLOW: 'wallCollectionFlow', //벽취합(흐름) WALL_COLLECTION_FLOW_LEFT: 'wallCollectionFlowLeft', //벽취합(흐름 왼쪽) WALL_COLLECTION_FLOW_RIGHT: 'wallCollectionFlowRight', //벽취합(흐름 오른쪽) }, } // 오브젝트 배치 > 개구배치, 그림자배치 export const BATCH_TYPE = { OPENING: 'opening', OPENING_TEMP: 'openingTemp', SHADOW: 'shadow', SHADOW_TEMP: 'shadowTemp', TRIANGLE_DORMER: 'triangleDormer', TRIANGLE_DORMER_TEMP: 'triangleDormerTemp', PENTAGON_DORMER: 'pentagonDormer', PENTAGON_DORMER_TEMP: 'pentagonDormerTemp', } // 오브젝트 배치 > 프리입력, 치수입력 export const INPUT_TYPE = { FREE: 'free', DIMENSION: 'dimension', } export const POLYGON_TYPE = { ROOF: 'roof', WALL: 'wall', TRESTLE: 'trestle', MODULE_SETUP_SURFACE: 'moduleSetupSurface', MODULE: 'module', OBJECT_SURFACE: 'objectOffset', } // 가대 관련 상수 export const TRESTLE_MATERIAL = { EAVE_BAR: 'eaveBar', HALF_EAVE_BAR: 'halfEaveBar', RACK: 'rack', SMART_RACK: 'smartRack', BRACKET: 'bracket', } export const MODULE_SETUP_TYPE = { LAYOUT: 'layout', AUTO: 'auto', } export const SAVE_KEY = [ 'selectable', 'name', 'parentId', 'id', 'length', 'idx', 'direction', 'parentDirection', 'lines', 'points', 'lockMovementX', 'lockMovementY', 'lockRotation', 'lockScalingX', 'lockScalingY', 'opacity', 'cells', 'maxX', 'maxY', 'minX', 'minY', 'x', 'y', 'x1', 'x2', 'y1', 'y2', 'attributes', 'stickeyPoint', 'text', 'pitch', 'uuid', 'originText', 'groupYn', 'groupName', 'lineDirection', 'groupId', 'planeSize', 'actualSize', 'surfaceId', 'lines', 'offset', 'arrow', 'surfaceCompass', 'surfaceCompassType', 'moduleCompass', 'isFixed', 'modules', 'rackLen', 'itemId', 'supFitQty', 'supFitIntvlPct', 'rackLen', 'trestleDetail', 'turfPoints', 'tempIndex', 'surfaceId', 'moduleRowsTotCnt', 'seq', 'smartRackId', 'directionText', 'quotationParam', 'pcses', 'roofMaterial', 'isComplete', 'moduleInfo', 'circuitNumber', 'circuit', 'onlyOffset', 'isChidory', 'textVisible', 'groupPoints', 'fontSize', 'fontStyle', 'fontWeight', 'dormerAttributes', 'toFixed', 'startPoint', 'endPoint', 'editable', 'isSortedPoints', ] export const OBJECT_PROTOTYPE = [fabric.Line.prototype, fabric.Polygon.prototype, fabric.Triangle.prototype, fabric.Group.prototype]