diff --git a/src/components/house-planner/HousePlanner.vue b/src/components/house-planner/HousePlanner.vue index 3cc1783..d65af18 100644 --- a/src/components/house-planner/HousePlanner.vue +++ b/src/components/house-planner/HousePlanner.vue @@ -70,6 +70,7 @@ import { RepositionEvent, ToolEvent, Vec2, + Vec2Box, } from '../../modules/house-planner/interfaces'; import type { HousePlannerCanvasTools } from '../../modules/house-planner/tools'; import deepUnref from '../../utils/deep-unref'; @@ -98,16 +99,23 @@ const props = withDefaults( ); const emit = defineEmits<{ - (e: 'update', document: FloorDocument, rooms: Line[]): void; + ( + e: 'update', + document: FloorDocument, + rooms: Line[], + boundingBox?: Vec2Box + ): void; (e: 'edited'): void; }>(); const localFloorDocument = ref(deepUnref(props.floorDocument)); const emitUpdate = () => + module.value.manager && emit( 'update', localFloorDocument.value, - (module.value.manager?.getAllObjectsOfType('room') || []) as Line[] + module.value.manager.getAllObjectsOfType('room') as Line[], + module.value.manager.getBoundingBox() ); const debouncedUpdate = useDebounceFn(emitUpdate, 10000); @@ -241,14 +249,18 @@ defineExpose({ }); onMounted(() => { - module.value.initialize( + const [setZoom, setPos] = module.value.initialize( canvas.value, deepUnref(localFloorDocument.value.layers), [localFloorDocument.value.width, localFloorDocument.value.height], canvasPos.value, canvasZoom.value, - props.editable + props.editable, + localFloorDocument.value.boundingBox ); + canvasPos.value = setPos; + canvasZoom.value = setZoom; + Object.keys(events).forEach((event) => canvas.value.addEventListener(event, events[event]) ); diff --git a/src/components/house-planner/PlannerBuildingSelect.vue b/src/components/house-planner/PlannerBuildingSelect.vue new file mode 100644 index 0000000..a71af9c --- /dev/null +++ b/src/components/house-planner/PlannerBuildingSelect.vue @@ -0,0 +1,104 @@ + + diff --git a/src/components/house-planner/PlannerLayerPanel.vue b/src/components/house-planner/PlannerLayerPanel.vue index f47d176..c3e3159 100644 --- a/src/components/house-planner/PlannerLayerPanel.vue +++ b/src/components/house-planner/PlannerLayerPanel.vue @@ -10,7 +10,7 @@ ]" > - {{ layer.name }} + {{ layer.name }} ({{ layer.contents.length }})
diff --git a/src/components/house-planner/PlannerSidebar.vue b/src/components/house-planner/PlannerSidebar.vue index 5c44cb7..239037e 100644 --- a/src/components/house-planner/PlannerSidebar.vue +++ b/src/components/house-planner/PlannerSidebar.vue @@ -1,12 +1,15 @@