@collabdt/core 0.0.42 → 0.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/components/Toolbar.d.ts.map +1 -1
- package/dist/core/components/Toolbar.js.map +1 -1
- package/dist/core/components/ToolbarBody.js.map +1 -1
- package/dist/core/components/TopNavigationBar.js.map +1 -1
- package/dist/core/components/authentication/ForgotPassword.js.map +1 -1
- package/dist/core/components/authentication/Signin.js.map +1 -1
- package/dist/core/components/authentication/Signup.js.map +1 -1
- package/dist/core/components/settings/src/OrganizationSkeleton.js.map +1 -1
- package/dist/core/components/settings/src/SettingsSkeleton.js.map +1 -1
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.js.map +1 -1
- package/dist/core/components/ui/Comments/CommentsSection.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/CommentsSection.js.map +1 -1
- package/dist/core/components/ui/DataTable.d.ts.map +1 -1
- package/dist/core/components/ui/DataTable.js +7 -0
- package/dist/core/components/ui/DataTable.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileItemComponent.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileItemComponent.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileMarker.d.ts +5 -2
- package/dist/core/components/ui/FilesManager/src/FileMarker.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileMarker.js +84 -21
- package/dist/core/components/ui/FilesManager/src/FileMarker.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js.map +1 -1
- package/dist/core/components/ui/Icons/IfcIcon.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/IfcIcon.js.map +1 -1
- package/dist/core/components/ui/InfoSidebar/index.d.ts.map +1 -1
- package/dist/core/components/ui/InfoSidebar/index.js.map +1 -1
- package/dist/core/components/ui/Navbar.d.ts.map +1 -1
- package/dist/core/components/ui/Navbar.js.map +1 -1
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorTagsSection.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/SensorTagsSection.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorsSection.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/SensorsSection.js.map +1 -1
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts.map +1 -1
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.js +2 -2
- package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.js.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js +2 -2
- package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js.map +1 -1
- package/dist/core/components/viewers/Viewer.d.ts.map +1 -1
- package/dist/core/components/viewers/Viewer.js +5 -1
- package/dist/core/components/viewers/Viewer.js.map +1 -1
- package/dist/core/components/viewers/bim/BimToolbar.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/BimToolbar.js.map +1 -1
- package/dist/core/components/viewers/bim/BimViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/BimViewer.js +14 -5
- package/dist/core/components/viewers/bim/BimViewer.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimLoadingState/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimLoadingState/index.js +6 -0
- package/dist/core/components/viewers/bim/src/BimLoadingState/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js +168 -39
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ClippingPlane.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ClippingPlane.js.map +1 -1
- package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts +14 -37
- package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/DXFLoader/index.js +31 -318
- package/dist/core/components/viewers/bim/src/DXFLoader/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts +66 -7
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.js +253 -21
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ModelManager/index.js +9 -0
- package/dist/core/components/viewers/bim/src/ModelManager/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.d.ts +3 -2
- package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js +3 -4
- package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js +40 -18
- package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts +2 -5
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js +45 -59
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.js +1 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts +10 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.js +25 -73
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.d.ts +7 -3
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js +42 -78
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js +52 -75
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts +15 -3
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js +165 -105
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js.map +1 -1
- package/dist/core/components/viewers/index.d.ts.map +1 -1
- package/dist/core/components/viewers/index.js.map +1 -1
- package/dist/core/components/viewers/map/MapViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/map/MapViewer.js +32 -8
- package/dist/core/components/viewers/map/MapViewer.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetManager/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetManager/index.js +4 -3
- package/dist/core/components/viewers/map/datasets/DatasetManager/index.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/RowActions.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/RowActions.js +148 -0
- package/dist/core/components/viewers/map/datasets/RowActions.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/index.js +32 -15
- package/dist/core/components/viewers/map/datasets/index.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.d.ts +4 -0
- package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.d.ts.map +1 -0
- package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.js +43 -0
- package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.js.map +1 -0
- package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/localDatasets.js +39 -3
- package/dist/core/components/viewers/map/datasets/src/localDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/minioDatasets.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/src/minioDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/minioDatasets.js +2 -1
- package/dist/core/components/viewers/map/datasets/src/minioDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts +47 -0
- package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts.map +1 -0
- package/dist/core/components/viewers/map/datasets/src/publishedTiles.js +114 -0
- package/dist/core/components/viewers/map/datasets/src/publishedTiles.js.map +1 -0
- package/dist/core/components/viewers/map/datasets/src/wmsTime.d.ts +49 -0
- package/dist/core/components/viewers/map/datasets/src/wmsTime.d.ts.map +1 -0
- package/dist/core/components/viewers/map/datasets/src/wmsTime.js +100 -0
- package/dist/core/components/viewers/map/datasets/src/wmsTime.js.map +1 -0
- package/dist/core/components/viewers/map/src/Geocoder.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/Geocoder.js +9 -9
- package/dist/core/components/viewers/map/src/Geocoder.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js +25 -43
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js +19 -2
- package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/countryLayerUtils.d.ts +9 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/countryLayerUtils.d.ts.map +1 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/countryLayerUtils.js +28 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/countryLayerUtils.js.map +1 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js +1 -16
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.js +31 -2
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.d.ts +21 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.d.ts.map +1 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.js +111 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.js.map +1 -0
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js +77 -2
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js +19 -9
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js +10 -3
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoder.d.ts +6 -2
- package/dist/core/components/viewers/map/utils/geocoder.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoder.js +10 -62
- package/dist/core/components/viewers/map/utils/geocoder.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts +5 -0
- package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/adapters.js +192 -0
- package/dist/core/components/viewers/map/utils/geocoding/adapters.js.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/config.d.ts +6 -0
- package/dist/core/components/viewers/map/utils/geocoding/config.d.ts.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/config.js +14 -0
- package/dist/core/components/viewers/map/utils/geocoding/config.js.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/index.d.ts +8 -0
- package/dist/core/components/viewers/map/utils/geocoding/index.d.ts.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/index.js +44 -0
- package/dist/core/components/viewers/map/utils/geocoding/index.js.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts +6 -0
- package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/osm.js +39 -0
- package/dist/core/components/viewers/map/utils/geocoding/osm.js.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts +8 -0
- package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts.map +1 -0
- package/dist/core/components/viewers/map/utils/geocoding/pelias.js +35 -0
- package/dist/core/components/viewers/map/utils/geocoding/pelias.js.map +1 -0
- package/dist/core/components/viewers/pointcloud/PointCloudToolbar.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudViewer.js +1 -3
- package/dist/core/components/viewers/pointcloud/PointCloudViewer.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js +2 -3
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js +8 -2
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js +9 -9
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js.map +1 -1
- package/dist/core/hooks/provider.js.map +1 -1
- package/dist/core/plugins/host/provider.d.ts.map +1 -1
- package/dist/core/plugins/host/provider.js.map +1 -1
- package/dist/core/store/AppConfig/context.d.ts.map +1 -1
- package/dist/core/store/AppConfig/context.js.map +1 -1
- package/dist/core/store/BIM/context.d.ts.map +1 -1
- package/dist/core/store/BIM/context.js.map +1 -1
- package/dist/core/store/BIM/reducer.d.ts +0 -1
- package/dist/core/store/BIM/reducer.d.ts.map +1 -1
- package/dist/core/store/BIM/reducer.js +0 -4
- package/dist/core/store/BIM/reducer.js.map +1 -1
- package/dist/core/store/Buildings/context.d.ts.map +1 -1
- package/dist/core/store/Buildings/context.js.map +1 -1
- package/dist/core/store/Content/context.d.ts.map +1 -1
- package/dist/core/store/Content/context.js.map +1 -1
- package/dist/core/store/Datasets/context.d.ts.map +1 -1
- package/dist/core/store/Datasets/context.js +2 -1
- package/dist/core/store/Datasets/context.js.map +1 -1
- package/dist/core/store/Datasets/reducer.d.ts +2 -0
- package/dist/core/store/Datasets/reducer.d.ts.map +1 -1
- package/dist/core/store/Datasets/reducer.js +9 -4
- package/dist/core/store/Datasets/reducer.js.map +1 -1
- package/dist/core/store/Files/context.d.ts.map +1 -1
- package/dist/core/store/Files/context.js.map +1 -1
- package/dist/core/store/Map/context.d.ts.map +1 -1
- package/dist/core/store/Map/context.js.map +1 -1
- package/dist/core/store/Menus/context.d.ts.map +1 -1
- package/dist/core/store/Menus/context.js.map +1 -1
- package/dist/core/store/Permissions/context.d.ts.map +1 -1
- package/dist/core/store/Permissions/context.js.map +1 -1
- package/dist/core/store/PointCloud/context.d.ts.map +1 -1
- package/dist/core/store/PointCloud/context.js.map +1 -1
- package/dist/core/store/Tools/context.d.ts.map +1 -1
- package/dist/core/store/Tools/context.js.map +1 -1
- package/dist/core/types/datasetTypes.d.ts +8 -1
- package/dist/core/types/datasetTypes.d.ts.map +1 -1
- package/dist/core/types/dbTypes.d.ts +13 -13
- package/dist/core/types/dbTypes.d.ts.map +1 -1
- package/dist/core/types/dbTypes.js +13 -13
- package/dist/core/types/dbTypes.js.map +1 -1
- package/dist/core/types/index.d.ts +1 -1
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/utils/imageUtils.js +1 -1
- package/dist/core/utils/imageUtils.js.map +1 -1
- package/package.json +4 -3
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudViewer-old.d.ts +0 -3
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudViewer-old.d.ts.map +0 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudViewer-old.js +0 -173
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudViewer-old.js.map +0 -1
|
@@ -27,8 +27,26 @@ export declare class FloorplanTool extends OBC.Component {
|
|
|
27
27
|
/** True-north rotation in degrees (clockwise from default screen-up).
|
|
28
28
|
* Persists across storey switches but resets to 0 on tool dispose. */
|
|
29
29
|
private _northAngle;
|
|
30
|
+
/** True while the user is drawing the two-point north line. */
|
|
30
31
|
private _pickingNorth;
|
|
31
32
|
private _pickHandler;
|
|
33
|
+
private _moveHandler;
|
|
34
|
+
private _keyHandler;
|
|
35
|
+
/** First clicked point of the north line, in drawing-local space (Y=0).
|
|
36
|
+
* Null until the user places the first point. */
|
|
37
|
+
private _drawStart;
|
|
38
|
+
/** Cached snap targets — projected-geometry vertices flattened as
|
|
39
|
+
* [x0,z0, x1,z1, …] in drawing-local space. Rebuilt each time draw mode
|
|
40
|
+
* starts so it reflects the active storey's lines. */
|
|
41
|
+
private _snapVerts;
|
|
42
|
+
/** Rubber-band preview line + cursor snap marker, parented to the active
|
|
43
|
+
* drawing so they inherit its world transform. */
|
|
44
|
+
private _previewLine;
|
|
45
|
+
private _snapMarker;
|
|
46
|
+
/** Canvas cursor before draw mode swapped in the crosshair — typically the
|
|
47
|
+
* floorplan-mode "grab" hand. Restored (not cleared) on exit so panning
|
|
48
|
+
* keeps the hand; only leaving floorplan mode reverts to the default. */
|
|
49
|
+
private _savedPickCursor;
|
|
32
50
|
private projector;
|
|
33
51
|
private renderer;
|
|
34
52
|
private camera;
|
|
@@ -74,16 +92,57 @@ export declare class FloorplanTool extends OBC.Component {
|
|
|
74
92
|
* camera azimuth immediately if a floorplan is currently active so the
|
|
75
93
|
* view re-orients. */
|
|
76
94
|
setNorthAngle(degrees: number): void;
|
|
77
|
-
/** Enter
|
|
78
|
-
*
|
|
79
|
-
*
|
|
95
|
+
/** Enter two-point draw mode. The user clicks two points on the active
|
|
96
|
+
* floorplan (each snapped to the nearest projected-geometry vertex); the
|
|
97
|
+
* bearing of the segment between them becomes the new true-north angle.
|
|
98
|
+
* A rubber-band preview + snap marker track the cursor; Esc cancels.
|
|
99
|
+
* No-op if no floorplan is active. */
|
|
80
100
|
startPickNorth(): void;
|
|
81
|
-
/** Exit
|
|
101
|
+
/** Exit draw mode without applying any rotation. Tears down the canvas
|
|
102
|
+
* listeners and removes the rubber-band preview. */
|
|
82
103
|
cancelPickNorth(): void;
|
|
83
|
-
/** Click handler
|
|
84
|
-
*
|
|
85
|
-
* (
|
|
104
|
+
/** Click handler for draw mode. First click places the start point; the
|
|
105
|
+
* second rotates the view so the drawn segment becomes parallel to the
|
|
106
|
+
* screen X-axis (horizontal). Both points lie on the drawing's horizontal
|
|
107
|
+
* plane (Y=0), so only the in-plane direction matters. */
|
|
86
108
|
private _onPickClick;
|
|
109
|
+
/** Camera azimuth (degrees) that rotates the top-down view so the world
|
|
110
|
+
* segment a→b lands parallel to the screen X-axis (horizontal).
|
|
111
|
+
*
|
|
112
|
+
* Derivation: with the standard Y-up spherical convention camera-controls
|
|
113
|
+
* uses, the camera's screen-right world direction has angle ρ = −θ + C
|
|
114
|
+
* (θ = azimuth). We measure ρ₀ and θ₀ from the live camera so C cancels —
|
|
115
|
+
* making the result independent of the drawing's orientation and the
|
|
116
|
+
* controls' up-space. We then solve ρ(θ) = λ (the segment's world angle),
|
|
117
|
+
* giving θ = ρ₀ + θ₀ − λ. Returns null if the controls are unavailable. */
|
|
118
|
+
private _azimuthToAlignLineToX;
|
|
119
|
+
/** Mousemove handler for draw mode — keeps the snap marker (and, after the
|
|
120
|
+
* first click, the rubber-band line) glued to the cursor's snapped point. */
|
|
121
|
+
private _onPickMove;
|
|
122
|
+
/** Convert a canvas mouse event into a point on the drawing plane, in
|
|
123
|
+
* drawing-local space (XZ plane, Y=0). Casts a ray from the active camera,
|
|
124
|
+
* transforms it into the drawing's local frame, and intersects Y=0. */
|
|
125
|
+
private _eventToLocalPoint;
|
|
126
|
+
/** Snap a drawing-local point to the nearest projected-geometry vertex
|
|
127
|
+
* within the snap radius; returns the point unchanged if none is close. */
|
|
128
|
+
private _snap;
|
|
129
|
+
/** Snap radius in drawing-local units (= world units; the drawing is
|
|
130
|
+
* unscaled), derived from a fixed ~12 px tolerance at the current ortho
|
|
131
|
+
* zoom so it feels consistent as the user zooms. */
|
|
132
|
+
private _snapRadiusLocal;
|
|
133
|
+
/** Flatten every visible projected line vertex into drawing-local [x,z]
|
|
134
|
+
* pairs for endpoint snapping. Each vertex is transformed through its
|
|
135
|
+
* owning object's world matrix into the drawing's local frame, so it
|
|
136
|
+
* works regardless of how layers nest the `LineSegments`. */
|
|
137
|
+
private _collectSnapVertices;
|
|
138
|
+
/** Update (creating on first use) the cursor snap marker and, once the
|
|
139
|
+
* first point is placed, the rubber-band line from start → cursor. Both
|
|
140
|
+
* live in drawing-local space, Y=0. */
|
|
141
|
+
private _updatePreview;
|
|
142
|
+
/** Remove + dispose the preview line and snap marker. Uses each object's
|
|
143
|
+
* own parent so it stays correct even when called from deactivate(),
|
|
144
|
+
* where `_activeId` is already null. */
|
|
145
|
+
private _clearPreview;
|
|
87
146
|
/** Push `_northAngle` into the camera-controls azimuth so the view
|
|
88
147
|
* rotates around the active floor's centre. Called on every activate
|
|
89
148
|
* and whenever the angle changes while a floorplan is active. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/bim/src/FloorplanTool/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAA;AAW3C,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAqB,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAyB,cAAc,EAAuB,MAAM,aAAa,CAAA;AAMxF,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,MAAM,CAAA;AAEV,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;AAc3E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,qBAAqB,GAAG,SAAS,GACvC,MAAM,CAER;AAED,qBAAa,aAAc,SAAQ,GAAG,CAAC,SAAS;IAC9C,MAAM,CAAC,IAAI,yCAAsB;IAEjC,OAAO,UAAQ;IAEf,QAAQ,CAAC,iBAAiB,8BAAoC;IAC9D,QAAQ,CAAC,sBAAsB,4BAAyC;IACxE,QAAQ,CAAC,wBAAwB,mCAAyC;IAC1E,yEAAyE;IACzE,QAAQ,CAAC,eAAe,4BAAkC;IAC1D,0EAA0E;IAC1E,QAAQ,CAAC,mBAAmB,oBAA0B;IACtD,gDAAgD;IAChD,QAAQ,CAAC,qBAAqB,qBAA2B;IAEzD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAsB;IACvC;;qEAEiE;IACjE,OAAO,CAAC,YAAY,CAAI;IACxB;2EACuE;IACvE,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAyC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/bim/src/FloorplanTool/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,8 +53,26 @@ const _FloorplanTool = class _FloorplanTool extends OBC.Component {
|
|
|
53
53
|
/** True-north rotation in degrees (clockwise from default screen-up).
|
|
54
54
|
* Persists across storey switches but resets to 0 on tool dispose. */
|
|
55
55
|
this._northAngle = 0;
|
|
56
|
+
/** True while the user is drawing the two-point north line. */
|
|
56
57
|
this._pickingNorth = false;
|
|
57
58
|
this._pickHandler = null;
|
|
59
|
+
this._moveHandler = null;
|
|
60
|
+
this._keyHandler = null;
|
|
61
|
+
/** First clicked point of the north line, in drawing-local space (Y=0).
|
|
62
|
+
* Null until the user places the first point. */
|
|
63
|
+
this._drawStart = null;
|
|
64
|
+
/** Cached snap targets — projected-geometry vertices flattened as
|
|
65
|
+
* [x0,z0, x1,z1, …] in drawing-local space. Rebuilt each time draw mode
|
|
66
|
+
* starts so it reflects the active storey's lines. */
|
|
67
|
+
this._snapVerts = null;
|
|
68
|
+
/** Rubber-band preview line + cursor snap marker, parented to the active
|
|
69
|
+
* drawing so they inherit its world transform. */
|
|
70
|
+
this._previewLine = null;
|
|
71
|
+
this._snapMarker = null;
|
|
72
|
+
/** Canvas cursor before draw mode swapped in the crosshair — typically the
|
|
73
|
+
* floorplan-mode "grab" hand. Restored (not cleared) on exit so panning
|
|
74
|
+
* keeps the hand; only leaving floorplan mode reverts to the default. */
|
|
75
|
+
this._savedPickCursor = null;
|
|
58
76
|
components.add(_FloorplanTool.uuid, this);
|
|
59
77
|
this.projector = new StoreyProjector(components);
|
|
60
78
|
this.renderer = new FloorplanRenderer(components, this.projector);
|
|
@@ -222,61 +240,275 @@ const _FloorplanTool = class _FloorplanTool extends OBC.Component {
|
|
|
222
240
|
this.onNorthAngleChanged.trigger(normalized);
|
|
223
241
|
if (this._activeId) this._applyNorthToCamera();
|
|
224
242
|
}
|
|
225
|
-
/** Enter
|
|
226
|
-
*
|
|
227
|
-
*
|
|
243
|
+
/** Enter two-point draw mode. The user clicks two points on the active
|
|
244
|
+
* floorplan (each snapped to the nearest projected-geometry vertex); the
|
|
245
|
+
* bearing of the segment between them becomes the new true-north angle.
|
|
246
|
+
* A rubber-band preview + snap marker track the cursor; Esc cancels.
|
|
247
|
+
* No-op if no floorplan is active. */
|
|
228
248
|
startPickNorth() {
|
|
229
249
|
if (this._pickingNorth || !this._activeId) return;
|
|
250
|
+
const entry = this.activeDrawing;
|
|
230
251
|
const world = this.components.get(CurrentWorld).world;
|
|
231
|
-
if (!(world == null ? void 0 : world.renderer)) return;
|
|
252
|
+
if (!(entry == null ? void 0 : entry.drawing) || !(world == null ? void 0 : world.renderer)) return;
|
|
232
253
|
const canvas = world.renderer.three.domElement;
|
|
254
|
+
this._drawStart = null;
|
|
255
|
+
this._snapVerts = this._collectSnapVertices(entry);
|
|
233
256
|
this._pickHandler = (e) => this._onPickClick(e);
|
|
257
|
+
this._moveHandler = (e) => this._onPickMove(e);
|
|
258
|
+
this._keyHandler = (e) => {
|
|
259
|
+
if (e.key === "Escape") this.cancelPickNorth();
|
|
260
|
+
};
|
|
234
261
|
canvas.addEventListener("click", this._pickHandler);
|
|
262
|
+
canvas.addEventListener("mousemove", this._moveHandler);
|
|
263
|
+
window.addEventListener("keydown", this._keyHandler);
|
|
264
|
+
this._savedPickCursor = canvas.style.cursor;
|
|
235
265
|
canvas.style.cursor = "crosshair";
|
|
236
266
|
this._pickingNorth = true;
|
|
237
267
|
this.onPickingNorthChanged.trigger(true);
|
|
238
268
|
}
|
|
239
|
-
/** Exit
|
|
269
|
+
/** Exit draw mode without applying any rotation. Tears down the canvas
|
|
270
|
+
* listeners and removes the rubber-band preview. */
|
|
240
271
|
cancelPickNorth() {
|
|
241
|
-
var _a, _b;
|
|
272
|
+
var _a, _b, _c;
|
|
242
273
|
if (!this._pickingNorth) return;
|
|
243
274
|
const world = this.components.get(CurrentWorld).world;
|
|
244
275
|
const canvas = (_b = (_a = world == null ? void 0 : world.renderer) == null ? void 0 : _a.three.domElement) != null ? _b : null;
|
|
245
|
-
if (canvas
|
|
246
|
-
canvas.removeEventListener("click", this._pickHandler);
|
|
247
|
-
canvas.
|
|
276
|
+
if (canvas) {
|
|
277
|
+
if (this._pickHandler) canvas.removeEventListener("click", this._pickHandler);
|
|
278
|
+
if (this._moveHandler) canvas.removeEventListener("mousemove", this._moveHandler);
|
|
279
|
+
canvas.style.cursor = (_c = this._savedPickCursor) != null ? _c : "grab";
|
|
248
280
|
}
|
|
281
|
+
this._savedPickCursor = null;
|
|
282
|
+
if (this._keyHandler) window.removeEventListener("keydown", this._keyHandler);
|
|
249
283
|
this._pickHandler = null;
|
|
284
|
+
this._moveHandler = null;
|
|
285
|
+
this._keyHandler = null;
|
|
286
|
+
this._drawStart = null;
|
|
287
|
+
this._snapVerts = null;
|
|
288
|
+
this._clearPreview();
|
|
250
289
|
this._pickingNorth = false;
|
|
251
290
|
this.onPickingNorthChanged.trigger(false);
|
|
252
291
|
}
|
|
253
|
-
/** Click handler
|
|
254
|
-
*
|
|
255
|
-
* (
|
|
292
|
+
/** Click handler for draw mode. First click places the start point; the
|
|
293
|
+
* second rotates the view so the drawn segment becomes parallel to the
|
|
294
|
+
* screen X-axis (horizontal). Both points lie on the drawing's horizontal
|
|
295
|
+
* plane (Y=0), so only the in-plane direction matters. */
|
|
256
296
|
_onPickClick(event) {
|
|
257
297
|
const entry = this.activeDrawing;
|
|
258
298
|
if (!(entry == null ? void 0 : entry.drawing)) return;
|
|
299
|
+
const local = this._eventToLocalPoint(event, entry);
|
|
300
|
+
if (!local) return;
|
|
301
|
+
const point = this._snap(local);
|
|
302
|
+
if (!this._drawStart) {
|
|
303
|
+
this._drawStart = point;
|
|
304
|
+
this._updatePreview(entry, point);
|
|
305
|
+
this._requestUpdate();
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
const dx = point.x - this._drawStart.x;
|
|
309
|
+
const dz = point.z - this._drawStart.z;
|
|
310
|
+
if (dx * dx + dz * dz < 1e-6) return;
|
|
311
|
+
const drawing = entry.drawing;
|
|
312
|
+
drawing.three.updateWorldMatrix(true, false);
|
|
313
|
+
const aWorld = drawing.three.localToWorld(this._drawStart.clone());
|
|
314
|
+
const bWorld = drawing.three.localToWorld(point.clone());
|
|
315
|
+
const azimuthDeg = this._azimuthToAlignLineToX(aWorld, bWorld);
|
|
316
|
+
if (azimuthDeg !== null) this.setNorthAngle(azimuthDeg);
|
|
317
|
+
this.cancelPickNorth();
|
|
318
|
+
}
|
|
319
|
+
/** Camera azimuth (degrees) that rotates the top-down view so the world
|
|
320
|
+
* segment a→b lands parallel to the screen X-axis (horizontal).
|
|
321
|
+
*
|
|
322
|
+
* Derivation: with the standard Y-up spherical convention camera-controls
|
|
323
|
+
* uses, the camera's screen-right world direction has angle ρ = −θ + C
|
|
324
|
+
* (θ = azimuth). We measure ρ₀ and θ₀ from the live camera so C cancels —
|
|
325
|
+
* making the result independent of the drawing's orientation and the
|
|
326
|
+
* controls' up-space. We then solve ρ(θ) = λ (the segment's world angle),
|
|
327
|
+
* giving θ = ρ₀ + θ₀ − λ. Returns null if the controls are unavailable. */
|
|
328
|
+
_azimuthToAlignLineToX(aWorld, bWorld) {
|
|
329
|
+
var _a, _b;
|
|
330
|
+
const world = this.components.get(CurrentWorld).world;
|
|
331
|
+
const cam = (_a = world == null ? void 0 : world.camera) == null ? void 0 : _a.three;
|
|
332
|
+
const controls = (_b = world == null ? void 0 : world.camera) == null ? void 0 : _b.controls;
|
|
333
|
+
if (!cam || typeof (controls == null ? void 0 : controls.azimuthAngle) !== "number") return null;
|
|
334
|
+
const lx = bWorld.x - aWorld.x;
|
|
335
|
+
const lz = bWorld.z - aWorld.z;
|
|
336
|
+
if (lx * lx + lz * lz < 1e-12) return null;
|
|
337
|
+
const lambda = Math.atan2(lz, lx);
|
|
338
|
+
cam.updateMatrixWorld();
|
|
339
|
+
const e = cam.matrixWorld.elements;
|
|
340
|
+
const rho0 = Math.atan2(e[2], e[0]);
|
|
341
|
+
const theta0 = controls.azimuthAngle;
|
|
342
|
+
return (rho0 + theta0 - lambda) * 180 / Math.PI;
|
|
343
|
+
}
|
|
344
|
+
/** Mousemove handler for draw mode — keeps the snap marker (and, after the
|
|
345
|
+
* first click, the rubber-band line) glued to the cursor's snapped point. */
|
|
346
|
+
_onPickMove(event) {
|
|
347
|
+
const entry = this.activeDrawing;
|
|
348
|
+
if (!(entry == null ? void 0 : entry.drawing)) return;
|
|
349
|
+
const local = this._eventToLocalPoint(event, entry);
|
|
350
|
+
if (!local) return;
|
|
351
|
+
this._updatePreview(entry, this._snap(local));
|
|
352
|
+
this._requestUpdate();
|
|
353
|
+
}
|
|
354
|
+
/** Convert a canvas mouse event into a point on the drawing plane, in
|
|
355
|
+
* drawing-local space (XZ plane, Y=0). Casts a ray from the active camera,
|
|
356
|
+
* transforms it into the drawing's local frame, and intersects Y=0. */
|
|
357
|
+
_eventToLocalPoint(event, entry) {
|
|
259
358
|
const world = this.components.get(CurrentWorld).world;
|
|
260
|
-
if (!(world == null ? void 0 : world.renderer) || !
|
|
359
|
+
if (!(world == null ? void 0 : world.renderer) || !world.camera || !entry.drawing) return null;
|
|
261
360
|
const canvas = world.renderer.three.domElement;
|
|
262
361
|
const rect = canvas.getBoundingClientRect();
|
|
263
362
|
const x = (event.clientX - rect.left) / rect.width * 2 - 1;
|
|
264
363
|
const y = -((event.clientY - rect.top) / rect.height) * 2 + 1;
|
|
265
364
|
const raycaster = new THREE.Raycaster();
|
|
266
|
-
raycaster.params.Line.threshold = 0.5;
|
|
267
365
|
raycaster.setFromCamera(
|
|
268
366
|
new THREE.Vector2(x, y),
|
|
269
367
|
world.camera.three
|
|
270
368
|
);
|
|
271
|
-
const
|
|
272
|
-
|
|
369
|
+
const drawing = entry.drawing;
|
|
370
|
+
drawing.three.updateWorldMatrix(true, false);
|
|
371
|
+
const inv = new THREE.Matrix4().copy(drawing.three.matrixWorld).invert();
|
|
372
|
+
const origin = raycaster.ray.origin.clone().applyMatrix4(inv);
|
|
373
|
+
const dir = raycaster.ray.direction.clone().transformDirection(inv);
|
|
374
|
+
if (Math.abs(dir.y) < 1e-9) return null;
|
|
375
|
+
const t = -origin.y / dir.y;
|
|
376
|
+
if (!Number.isFinite(t)) return null;
|
|
377
|
+
return new THREE.Vector3(
|
|
378
|
+
origin.x + dir.x * t,
|
|
379
|
+
0,
|
|
380
|
+
origin.z + dir.z * t
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
/** Snap a drawing-local point to the nearest projected-geometry vertex
|
|
384
|
+
* within the snap radius; returns the point unchanged if none is close. */
|
|
385
|
+
_snap(local) {
|
|
386
|
+
const verts = this._snapVerts;
|
|
387
|
+
if (!verts) return local;
|
|
388
|
+
const radius = this._snapRadiusLocal();
|
|
389
|
+
let best = -1;
|
|
390
|
+
let bestD2 = radius * radius;
|
|
391
|
+
for (let i = 0; i < verts.length; i += 2) {
|
|
392
|
+
const dx = verts[i] - local.x;
|
|
393
|
+
const dz = verts[i + 1] - local.z;
|
|
394
|
+
const d2 = dx * dx + dz * dz;
|
|
395
|
+
if (d2 < bestD2) {
|
|
396
|
+
bestD2 = d2;
|
|
397
|
+
best = i;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
if (best < 0) return local;
|
|
401
|
+
return new THREE.Vector3(verts[best], 0, verts[best + 1]);
|
|
402
|
+
}
|
|
403
|
+
/** Snap radius in drawing-local units (= world units; the drawing is
|
|
404
|
+
* unscaled), derived from a fixed ~12 px tolerance at the current ortho
|
|
405
|
+
* zoom so it feels consistent as the user zooms. */
|
|
406
|
+
_snapRadiusLocal() {
|
|
407
|
+
var _a, _b;
|
|
408
|
+
const SNAP_PX = 12;
|
|
409
|
+
const FALLBACK = 0.5;
|
|
410
|
+
const world = this.components.get(CurrentWorld).world;
|
|
411
|
+
const cam = (_a = world == null ? void 0 : world.camera) == null ? void 0 : _a.three;
|
|
412
|
+
const canvas = (_b = world == null ? void 0 : world.renderer) == null ? void 0 : _b.three.domElement;
|
|
413
|
+
if (!(cam == null ? void 0 : cam.isOrthographicCamera) || !canvas) return FALLBACK;
|
|
414
|
+
const worldWidth = (cam.right - cam.left) / (cam.zoom || 1);
|
|
415
|
+
const worldPerPixel = worldWidth / Math.max(1, canvas.clientWidth);
|
|
416
|
+
return worldPerPixel * SNAP_PX || FALLBACK;
|
|
417
|
+
}
|
|
418
|
+
/** Flatten every visible projected line vertex into drawing-local [x,z]
|
|
419
|
+
* pairs for endpoint snapping. Each vertex is transformed through its
|
|
420
|
+
* owning object's world matrix into the drawing's local frame, so it
|
|
421
|
+
* works regardless of how layers nest the `LineSegments`. */
|
|
422
|
+
_collectSnapVertices(entry) {
|
|
423
|
+
const drawing = entry.drawing;
|
|
424
|
+
if (!drawing) return null;
|
|
425
|
+
drawing.three.updateWorldMatrix(true, true);
|
|
426
|
+
const inv = new THREE.Matrix4().copy(drawing.three.matrixWorld).invert();
|
|
427
|
+
const v = new THREE.Vector3();
|
|
428
|
+
const out = [];
|
|
429
|
+
drawing.three.traverse((child) => {
|
|
430
|
+
var _a, _b, _c;
|
|
431
|
+
if (!(child instanceof THREE.LineSegments) || !child.visible) return;
|
|
432
|
+
if ((_a = child.userData) == null ? void 0 : _a.isDimension) return;
|
|
433
|
+
const pos = (_c = (_b = child.geometry) == null ? void 0 : _b.attributes) == null ? void 0 : _c.position;
|
|
434
|
+
if (!pos) return;
|
|
435
|
+
for (let i = 0; i < pos.count; i++) {
|
|
436
|
+
v.set(pos.getX(i), pos.getY(i), pos.getZ(i)).applyMatrix4(child.matrixWorld).applyMatrix4(inv);
|
|
437
|
+
out.push(v.x, v.z);
|
|
438
|
+
}
|
|
439
|
+
});
|
|
440
|
+
return out.length ? new Float32Array(out) : null;
|
|
441
|
+
}
|
|
442
|
+
/** Update (creating on first use) the cursor snap marker and, once the
|
|
443
|
+
* first point is placed, the rubber-band line from start → cursor. Both
|
|
444
|
+
* live in drawing-local space, Y=0. */
|
|
445
|
+
_updatePreview(entry, current) {
|
|
446
|
+
const drawing = entry.drawing;
|
|
447
|
+
if (!drawing) return;
|
|
448
|
+
const COLOR = 2450411;
|
|
449
|
+
if (!this._snapMarker) {
|
|
450
|
+
const geom = new THREE.BufferGeometry();
|
|
451
|
+
geom.setAttribute(
|
|
452
|
+
"position",
|
|
453
|
+
new THREE.Float32BufferAttribute(
|
|
454
|
+
new Float32Array([-1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 1]),
|
|
455
|
+
3
|
|
456
|
+
)
|
|
457
|
+
);
|
|
458
|
+
this._snapMarker = new THREE.LineSegments(
|
|
459
|
+
geom,
|
|
460
|
+
new THREE.LineBasicMaterial({ color: COLOR })
|
|
461
|
+
);
|
|
462
|
+
this._snapMarker.renderOrder = 999;
|
|
463
|
+
drawing.three.add(this._snapMarker);
|
|
464
|
+
}
|
|
465
|
+
const arm = this._snapRadiusLocal();
|
|
466
|
+
this._snapMarker.scale.setScalar(arm);
|
|
467
|
+
this._snapMarker.position.set(current.x, 0, current.z);
|
|
468
|
+
this._snapMarker.visible = true;
|
|
469
|
+
if (!this._drawStart) {
|
|
470
|
+
if (this._previewLine) this._previewLine.visible = false;
|
|
273
471
|
return;
|
|
274
472
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
473
|
+
if (!this._previewLine) {
|
|
474
|
+
const geom = new THREE.BufferGeometry();
|
|
475
|
+
geom.setAttribute(
|
|
476
|
+
"position",
|
|
477
|
+
new THREE.Float32BufferAttribute(new Float32Array(6), 3)
|
|
478
|
+
);
|
|
479
|
+
this._previewLine = new THREE.Line(
|
|
480
|
+
geom,
|
|
481
|
+
new THREE.LineBasicMaterial({ color: COLOR })
|
|
482
|
+
);
|
|
483
|
+
this._previewLine.renderOrder = 999;
|
|
484
|
+
drawing.three.add(this._previewLine);
|
|
485
|
+
}
|
|
486
|
+
const pos = this._previewLine.geometry.attributes.position;
|
|
487
|
+
pos.setXYZ(0, this._drawStart.x, 0, this._drawStart.z);
|
|
488
|
+
pos.setXYZ(1, current.x, 0, current.z);
|
|
489
|
+
pos.needsUpdate = true;
|
|
490
|
+
this._previewLine.visible = true;
|
|
491
|
+
}
|
|
492
|
+
/** Remove + dispose the preview line and snap marker. Uses each object's
|
|
493
|
+
* own parent so it stays correct even when called from deactivate(),
|
|
494
|
+
* where `_activeId` is already null. */
|
|
495
|
+
_clearPreview() {
|
|
496
|
+
var _a, _b;
|
|
497
|
+
if (this._previewLine) {
|
|
498
|
+
(_a = this._previewLine.parent) == null ? void 0 : _a.remove(this._previewLine);
|
|
499
|
+
this._previewLine.geometry.dispose();
|
|
500
|
+
const m = this._previewLine.material;
|
|
501
|
+
if (!Array.isArray(m)) m.dispose();
|
|
502
|
+
this._previewLine = null;
|
|
503
|
+
}
|
|
504
|
+
if (this._snapMarker) {
|
|
505
|
+
(_b = this._snapMarker.parent) == null ? void 0 : _b.remove(this._snapMarker);
|
|
506
|
+
this._snapMarker.geometry.dispose();
|
|
507
|
+
const m = this._snapMarker.material;
|
|
508
|
+
if (!Array.isArray(m)) m.dispose();
|
|
509
|
+
this._snapMarker = null;
|
|
510
|
+
}
|
|
511
|
+
this._requestUpdate();
|
|
280
512
|
}
|
|
281
513
|
/** Push `_northAngle` into the camera-controls azimuth so the view
|
|
282
514
|
* rotates around the active floor's centre. Called on every activate
|