@realsee/dnalogel 2.1.0-alpha.3 → 2.1.0-alpha.5
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/CSS3DRenderPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/CSS3DRenderPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/CSS3DRenderPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/CSS3DRenderPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/CSS3DRenderPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/CSS3DRenderPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/CSS3DRenderPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/CSS3DRenderPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/CSS3DRenderPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/CSS3DRenderPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/CSS3DRenderPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/CameraMovementPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/CameraMovementPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/CameraMovementPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/CameraMovementPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/CameraMovementPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/CameraMovementPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/CameraMovementPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/CameraMovementPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/CameraMovementPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/CameraMovementPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/CameraMovementPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/CruisePlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/CruisePlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/CruisePlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/CruisePlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/CruisePlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/CruisePlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/CruisePlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/CruisePlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/CruisePlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/CruisePlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/CruisePlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/GuideLinePlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/GuideLinePlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/GuideLinePlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/GuideLinePlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/GuideLinePlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/GuideLinePlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/GuideLinePlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/GuideLinePlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/GuideLinePlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/GuideLinePlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/GuideLinePlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/ItemLabelPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/ItemLabelPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/ItemLabelPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/ItemLabelPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/ItemLabelPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/ItemLabelPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/ItemLabelPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/ItemLabelPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/ItemLabelPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/ItemLabelPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/ItemLabelPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/ModelChassisCompassPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/ModelChassisCompassPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/ModelChassisCompassPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/ModelChassisCompassPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/ModelChassisCompassPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/ModelChassisCompassPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/ModelChassisCompassPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/ModelChassisCompassPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/ModelChassisCompassPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/ModelChassisCompassPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/ModelChassisCompassPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/ModelEntryDoorGuidePlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/ModelEntryDoorGuidePlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/ModelEntryDoorGuidePlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/ModelEntryDoorGuidePlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/ModelEntryDoorGuidePlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/ModelEntryDoorGuidePlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/ModelEntryDoorGuidePlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/ModelEntryDoorGuidePlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/ModelEntryDoorGuidePlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/ModelEntryDoorGuidePlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/ModelEntryDoorGuidePlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/ModelItemLabelPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/ModelItemLabelPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/ModelItemLabelPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/ModelItemLabelPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/ModelItemLabelPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/ModelItemLabelPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/ModelItemLabelPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/ModelItemLabelPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/ModelItemLabelPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/ModelItemLabelPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/ModelItemLabelPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/ModelRoomLabelPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/ModelRoomLabelPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/ModelRoomLabelPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/ModelRoomLabelPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/ModelRoomLabelPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/ModelRoomLabelPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/ModelRoomLabelPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/ModelRoomLabelPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/ModelRoomLabelPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/ModelRoomLabelPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/ModelRoomLabelPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/ModelTVVideoPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/ModelTVVideoPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/ModelTVVideoPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/ModelTVVideoPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/ModelTVVideoPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/ModelTVVideoPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/ModelTVVideoPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/ModelTVVideoPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/ModelTVVideoPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/ModelTVVideoPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/ModelTVVideoPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/ModelViewPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/ModelViewPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/ModelViewPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/ModelViewPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/ModelViewPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/ModelViewPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/ModelViewPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/ModelViewPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/ModelViewPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/ModelViewPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/ModelViewPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/Object3DHelperPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/Object3DHelperPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/Object3DHelperPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/Object3DHelperPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/Object3DHelperPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/Object3DHelperPlugin/index.js +256 -88
- package/dist/Object3DHelperPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/Object3DHelperPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/Object3DHelperPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/Object3DHelperPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/Object3DHelperPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/Object3DHelperPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoCompassPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoCompassPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoCompassPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoCompassPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoCompassPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoCompassPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoCompassPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoCompassPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoCompassPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoCompassPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoCompassPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoCursorRaycasterPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoCursorRaycasterPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoCursorRaycasterPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoCursorRaycasterPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoCursorRaycasterPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoCursorRaycasterPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoCursorRaycasterPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoCursorRaycasterPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoCursorRaycasterPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoCursorRaycasterPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoCursorRaycasterPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoDoorLabelPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoDoorLabelPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoDoorLabelPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoDoorLabelPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoDoorLabelPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoDoorLabelPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoDoorLabelPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoDoorLabelPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoDoorLabelPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoDoorLabelPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoDoorLabelPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoMeasurePlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoMeasurePlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoMeasurePlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoMeasurePlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoMeasurePlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoMeasurePlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoMeasurePlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoMeasurePlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoMeasurePlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoMeasurePlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoMeasurePlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoRulerPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoRulerPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoRulerPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoRulerPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoRulerPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoRulerPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoRulerPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoRulerPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoRulerPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoRulerPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoRulerPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoRulerProPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoRulerProPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoRulerProPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoRulerProPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoRulerProPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoRulerProPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoRulerProPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoRulerProPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoRulerProPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoRulerProPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoRulerProPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoSpatialTagPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoSpatialTagPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoSpatialTagPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoSpatialTagPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoSpatialTagPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoSpatialTagPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoSpatialTagPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoSpatialTagPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoSpatialTagPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoSpatialTagPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoSpatialTagPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoTagPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/PanoTagPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/PanoTagPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoTagPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoTagPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/PanoTagPlugin/index.d.ts +1 -0
- package/dist/PanoTagPlugin/index.js +119 -94
- package/dist/PanoTagPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/PanoTagPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/PanoTagPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/PanoTagPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/PanoTagPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/PanoTagPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/floorplan/MapviewFloorplanPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/floorplan/MapviewFloorplanPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/floorplan/MapviewFloorplanPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/floorplan/MapviewFloorplanPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/floorplan/MapviewFloorplanPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/floorplan/MapviewFloorplanPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/floorplan/MapviewFloorplanPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/floorplan/MapviewFloorplanPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/floorplan/MapviewFloorplanPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/floorplan/MapviewFloorplanPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/floorplan/MapviewFloorplanPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/floorplan/ModelFloorplanPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/floorplan/ModelFloorplanPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/floorplan/ModelFloorplanPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/floorplan/ModelFloorplanPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/floorplan/ModelFloorplanPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/floorplan/ModelFloorplanPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/floorplan/ModelFloorplanPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/floorplan/ModelFloorplanPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/floorplan/ModelFloorplanPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/floorplan/ModelFloorplanPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/floorplan/ModelFloorplanPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/floorplan/PanoFloorplanRadarPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/floorplan/PanoFloorplanRadarPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/floorplan/PanoFloorplanRadarPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/floorplan/PanoFloorplanRadarPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/floorplan/PanoFloorplanRadarPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/floorplan/PanoFloorplanRadarPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/floorplan/PanoFloorplanRadarPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/floorplan/PanoFloorplanRadarPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/floorplan/PanoFloorplanRadarPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/floorplan/PanoFloorplanRadarPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/floorplan/PanoFloorplanRadarPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/floorplan/TopviewFloorplanPlugin/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/dist/floorplan/TopviewFloorplanPlugin/Object3DHelperPlugin/typings.d.ts +24 -0
- package/dist/floorplan/TopviewFloorplanPlugin/PanoTagPlugin/index.d.ts +1 -0
- package/dist/floorplan/TopviewFloorplanPlugin/PanoTagPlugin/typings/controller.d.ts +1 -0
- package/dist/floorplan/TopviewFloorplanPlugin/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/dist/floorplan/TopviewFloorplanPlugin/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/floorplan/TopviewFloorplanPlugin/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/floorplan/TopviewFloorplanPlugin/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/floorplan/TopviewFloorplanPlugin/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/floorplan/TopviewFloorplanPlugin/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/floorplan/TopviewFloorplanPlugin/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/dist/index.es.js +316 -154
- package/dist/index.js +351 -189
- package/dist/index.umd.js +351 -189
- package/dist/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/dist/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/dist/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/dist/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/dist/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/dist/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/CruisePluginController.html +14 -14
- package/docs/classes/Magnifier.html +4 -4
- package/docs/classes/ModelRoomLabelController.html +4 -4
- package/docs/classes/Object3DHelperController.html +14 -7
- package/docs/classes/PanoTagPluginController.html +43 -43
- package/docs/enums/CameraMovementEffect.html +2 -2
- package/docs/enums/ContentType.html +15 -0
- package/docs/enums/DIRECTION.html +1 -1
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +1 -1
- package/docs/enums/DimensionType.html +1 -0
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -1
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +1 -1
- package/docs/enums/LinkType.html +1 -0
- package/docs/enums/PointType.html +1 -0
- package/docs/enums/Rotation.html +2 -2
- package/docs/index.html +2 -2
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
- package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
- package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
- package/docs/interfaces/FloorplanBounding.html +4 -4
- package/docs/interfaces/FloorplanData.html +2 -2
- package/docs/interfaces/FloorplanEntrance.html +7 -7
- package/docs/interfaces/FloorplanExtraObject.html +3 -3
- package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
- package/docs/interfaces/FloorplanFloorData.html +2 -2
- package/docs/interfaces/FloorplanImagePosition.html +2 -2
- package/docs/interfaces/FloorplanObserver.html +2 -2
- package/docs/interfaces/FloorplanOutlineItem.html +2 -2
- package/docs/interfaces/FloorplanPosition.html +2 -2
- package/docs/interfaces/FloorplanRoomItem.html +6 -6
- package/docs/interfaces/FloorplanRoomLabelItem.html +3 -3
- package/docs/interfaces/FloorplanServerBounding.html +4 -4
- package/docs/interfaces/FloorplanServerComputedData.html +1 -1
- package/docs/interfaces/FloorplanServerData.html +2 -2
- package/docs/interfaces/FloorplanServerDoorItem.html +1 -1
- package/docs/interfaces/FloorplanServerDoorPosition.html +1 -1
- package/docs/interfaces/FloorplanServerEntrance.html +7 -7
- package/docs/interfaces/FloorplanServerFloorData.html +2 -2
- package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
- package/docs/interfaces/FloorplanServerObserver.html +2 -2
- package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
- package/docs/interfaces/FloorplanServerPosition.html +2 -2
- package/docs/interfaces/FloorplanServerRoomItem.html +7 -7
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +3 -3
- package/docs/interfaces/ItemLabelPluginData.html +1 -1
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +1 -1
- package/docs/interfaces/ItemLabelPluginParametersType.html +1 -1
- package/docs/interfaces/LineJson.html +1 -1
- package/docs/interfaces/ModelChassisCompassPluginData.html +1 -1
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -1
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -1
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -1
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -1
- package/docs/interfaces/ModelItemLabelPluginData.html +1 -1
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +1 -1
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +1 -1
- package/docs/interfaces/ModelRoomLabelPluginData.html +1 -1
- package/docs/interfaces/ModelTVVideoPluginData.html +1 -1
- package/docs/interfaces/ModelTVVideoPluginExportType.html +1 -1
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +1 -1
- package/docs/interfaces/ModelViewPluginExportType.html +1 -1
- package/docs/interfaces/Object3DHelperState.html +1 -1
- package/docs/interfaces/OpenParameter.html +2 -2
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +6 -6
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
- package/docs/interfaces/PanoMeasureParameterType.html +1 -1
- package/docs/interfaces/PanoRulerPluginExportType.html +1 -1
- package/docs/interfaces/PanoRulerPluginOptions.html +1 -1
- package/docs/interfaces/PanoRulerPluginParameterType.html +1 -1
- package/docs/interfaces/PanoRulerProPluginExportType.html +1 -1
- package/docs/interfaces/PanoRulerProPluginOptions.html +1 -1
- package/docs/interfaces/PanoRulerProPluginParameterType.html +1 -1
- package/docs/interfaces/PanoRulerProPluginState.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginData.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +1 -1
- package/docs/interfaces/Point.html +1 -1
- package/docs/interfaces/PointJson.html +1 -1
- package/docs/interfaces/Room.html +1 -1
- package/docs/interfaces/RoomInfo.html +1 -1
- package/docs/interfaces/RoomLabel.html +7 -7
- package/docs/interfaces/RoomRules.html +1 -1
- package/docs/interfaces/Rooms.html +1 -1
- package/docs/interfaces/Scissor.html +5 -5
- package/docs/interfaces/TagConfig.html +11 -0
- package/docs/interfaces/Tags.html +5 -0
- package/docs/modules.html +25 -17
- package/libs/ItemLabelPlugin/ItemLabelComponent.svelte +251 -0
- package/libs/ItemLabelPlugin/ItemLabelItem.svelte +183 -0
- package/libs/ItemLabelPlugin/Plugin.js +1 -1
- package/libs/ItemLabelPlugin/typings.d.ts +1 -1
- package/libs/ModelItemLabelPlugin/ItemLabelComponent.svelte +155 -0
- package/libs/ModelItemLabelPlugin/ItemLabelItem.svelte +100 -0
- package/libs/ModelItemLabelPlugin/ModelItemLabelPlugin.js +1 -1
- package/libs/ModelItemLabelPlugin/typings.d.ts +1 -1
- package/libs/ModelRoomLabelPlugin/Controller.js +1 -1
- package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte +63 -0
- package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte +94 -0
- package/libs/Object3DHelperPlugin/Controller.d.ts +44 -4
- package/libs/Object3DHelperPlugin/Controller.js +136 -7
- package/libs/Object3DHelperPlugin/typings.d.ts +24 -0
- package/libs/Object3DHelperPlugin/typings.js +1 -0
- package/libs/PanoDoorLabelPlugin/Controller.js +1 -1
- package/libs/PanoDoorLabelPlugin/DoorLabelItem.svelte +200 -0
- package/libs/PanoRulerProPlugin/Controller.js +1 -1
- package/libs/PanoRulerProPlugin/RulerItem.svelte +166 -0
- package/libs/PanoRulerProPlugin/RulerItems.svelte +212 -0
- package/libs/PanoSpatialTagPlugin/Components/origins.svelte +58 -0
- package/libs/PanoSpatialTagPlugin/Components/tag.svelte +292 -0
- package/libs/PanoSpatialTagPlugin/Plugin.js +2 -2
- package/libs/PanoTagPlugin/Components/Common/Arrow.js +1 -2
- package/libs/PanoTagPlugin/Components/Common/Arrow.svelte +56 -0
- package/libs/PanoTagPlugin/Components/Common/Audio.js +1 -2
- package/libs/PanoTagPlugin/Components/Common/Audio.svelte +82 -0
- package/libs/PanoTagPlugin/Components/Common/Line/Polyline.svelte +36 -0
- package/libs/PanoTagPlugin/Components/Common/Line/Straight.svelte +36 -0
- package/libs/PanoTagPlugin/Components/Common/Media.svelte +70 -0
- package/libs/PanoTagPlugin/Components/Common/MultiLineText.svelte +56 -0
- package/libs/PanoTagPlugin/Components/Common/Point/CustomPoint.svelte +120 -0
- package/libs/PanoTagPlugin/Components/Common/Point/DefaultPoint.svelte +81 -0
- package/libs/PanoTagPlugin/Components/Common/Point/PointSwitch.svelte +30 -0
- package/libs/PanoTagPlugin/Components/Common/Shadow.js +2 -2
- package/libs/PanoTagPlugin/Components/Common/Shadow.svelte +46 -0
- package/libs/PanoTagPlugin/Components/Common/Text.svelte +69 -0
- package/libs/PanoTagPlugin/Components/Common/TextItem.svelte +42 -0
- package/libs/PanoTagPlugin/Components/PointTag.js +3 -3
- package/libs/PanoTagPlugin/Components/PointTag.svelte +55 -0
- package/libs/PanoTagPlugin/Components/Tag/AudioTag.svelte +105 -0
- package/libs/PanoTagPlugin/Components/Tag/CustomTag.svelte +33 -0
- package/libs/PanoTagPlugin/Components/Tag/ImageTextTag.svelte +63 -0
- package/libs/PanoTagPlugin/Components/Tag/LinkTag.js +9 -9
- package/libs/PanoTagPlugin/Components/Tag/LinkTag.svelte +166 -0
- package/libs/PanoTagPlugin/Components/Tag/MarketingTag.svelte +234 -0
- package/libs/PanoTagPlugin/Components/Tag/MediaPanel.js +1 -1
- package/libs/PanoTagPlugin/Components/Tag/MediaPlane.js +172 -0
- package/libs/PanoTagPlugin/Components/Tag/MediaPlane.svelte +30 -0
- package/libs/PanoTagPlugin/Components/Tag/TextTag.svelte +63 -0
- package/libs/PanoTagPlugin/Components/Tag/index.js +28 -23
- package/libs/PanoTagPlugin/Components/Tag/index.svelte +145 -0
- package/libs/PanoTagPlugin/Components/TagWrapper.js +9 -1
- package/libs/PanoTagPlugin/Components/TagWrapper.svelte +69 -0
- package/libs/PanoTagPlugin/controller/index.js +9 -9
- package/libs/PanoTagPlugin/index.d.ts +1 -0
- package/libs/PanoTagPlugin/index.js +1 -0
- package/libs/PanoTagPlugin/mocks/mock1.js +1 -1
- package/libs/PanoTagPlugin/mocks/mock6.js +1 -1
- package/libs/PanoTagPlugin/tag.config.js +2 -1
- package/libs/PanoTagPlugin/typings/controller.d.ts +2 -1
- package/libs/PanoTagPlugin/typings/tag.d.ts +7 -3
- package/libs/PanoTagPlugin/typings/tag.js +1 -1
- package/libs/floorplan/Components/BaseImage.svelte +26 -0
- package/libs/floorplan/Components/Camera.svelte +46 -0
- package/libs/floorplan/Components/Compass.svelte +51 -0
- package/libs/floorplan/Components/CurrentFloor.svelte +46 -0
- package/libs/floorplan/Components/Main.svelte +51 -0
- package/libs/floorplan/Components/Normalmage.svelte +11 -0
- package/libs/floorplan/Components/RoomHighlight/Room.svelte +27 -0
- package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte +29 -0
- package/libs/floorplan/Components/RoomLabels/RoomLabel.svelte +119 -0
- package/libs/floorplan/Components/RoomLabels/RoomLabels.svelte +35 -0
- package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte +42 -0
- package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte +7 -0
- package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte +24 -0
- package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte +33 -0
- package/libs/floorplan/Components/RuleLabels/RuleItem.svelte +174 -0
- package/libs/floorplan/Components/RuleLabels/RuleLabels.svelte +32 -0
- package/libs/floorplan/Components/SvgImage.svelte +28 -0
- package/libs/floorplan/MapviewFloorplanPlugin/Controller.js +1 -1
- package/libs/floorplan/ModelFloorplanPlugin/Controller.js +1 -1
- package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte +85 -0
- package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte +18 -0
- package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte +40 -0
- package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte +64 -0
- package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +1 -1
- package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +1 -1
- package/libs/shared-utils/Object3DHelper/Base/BaseController.d.ts +2 -2
- package/libs/shared-utils/Object3DHelper/Base/BaseController.js +13 -8
- package/libs/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +11 -10
- package/libs/shared-utils/Object3DHelper/Base/BaseHelper.js +24 -5
- package/libs/shared-utils/Object3DHelper/Controller/MoveController.js +1 -1
- package/libs/shared-utils/Object3DHelper/Controller/RotateController.js +2 -2
- package/libs/shared-utils/Object3DHelper/Helper/MoveHelper.d.ts +2 -2
- package/libs/shared-utils/Object3DHelper/Helper/MoveHelper.js +9 -22
- package/libs/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.d.ts +3 -3
- package/libs/shared-utils/Object3DHelper/Helper/RectangleScaleHelper.js +9 -7
- package/libs/shared-utils/Object3DHelper/Helper/RotateHelper.d.ts +3 -2
- package/libs/shared-utils/Object3DHelper/Helper/RotateHelper.js +18 -18
- package/libs/shared-utils/Object3DHelper/index.js +8 -12
- package/libs/shared-utils/Object3DHelper/typings/Hooks.d.ts +0 -1
- package/package.json +1 -1
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
<script>import { Five } from '@realsee/five';
|
|
2
|
+
import "./typings";
|
|
3
|
+
import { beforeUpdate, onDestroy, onMount } from "svelte";
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import ItemLabelItem from './ItemLabelItem.svelte';
|
|
6
|
+
import "./events.type";
|
|
7
|
+
import debounce from '../shared-utils/debounce';
|
|
8
|
+
import { isImpacted } from "./utils/isImpacted";
|
|
9
|
+
import { getStrokeLength } from "./utils/getStrokeLength";
|
|
10
|
+
import { getLabelTransform } from './utils/getLabelTransform';
|
|
11
|
+
import { transform2RenderData } from "./utils/transform2RenderData";
|
|
12
|
+
const { Raycaster, Vector3 } = THREE;
|
|
13
|
+
export let five;
|
|
14
|
+
export let modelOcclusionEnable;
|
|
15
|
+
export let onlyVisibleInPanorama;
|
|
16
|
+
export let itemLabels;
|
|
17
|
+
export let hooks;
|
|
18
|
+
export let displayStrategyType;
|
|
19
|
+
export let maxVisibleDistance;
|
|
20
|
+
let curItemLabels = null;
|
|
21
|
+
let renderItemLabels = null;
|
|
22
|
+
let anchorEnabled = (five === null || five === void 0 ? void 0 : five.currentMode) === Five.Mode.Panorama;
|
|
23
|
+
let containerWidth;
|
|
24
|
+
let containerHeight;
|
|
25
|
+
// 计算重叠
|
|
26
|
+
let cssOffsetLists = [];
|
|
27
|
+
let cssHeight = 26;
|
|
28
|
+
let basicWidth = 11;
|
|
29
|
+
// 动画过程中 itemsVisible 为 false
|
|
30
|
+
let itemsVisible = true;
|
|
31
|
+
/**
|
|
32
|
+
* 可见性策略:
|
|
33
|
+
* 1、当前楼层(假设先不考虑多楼层)
|
|
34
|
+
* 2、模型未被遮挡(一个 box 有没有被遮挡的计算? TODO)
|
|
35
|
+
* */
|
|
36
|
+
const judgeImpacted = (five, itemLabel) => {
|
|
37
|
+
// 虚拟 VR 仅有一层,不考虑楼层信息
|
|
38
|
+
const cameraPosition = five.camera.position.clone();
|
|
39
|
+
const modelPosition = new Vector3(itemLabel.modelPosition[0], itemLabel.modelPosition[1], itemLabel.modelPosition[2]);
|
|
40
|
+
// 计算点到相机的位置
|
|
41
|
+
const vectorDistance = modelPosition.distanceTo(cameraPosition);
|
|
42
|
+
// 判断距离,大于最大可见距离直接不可见 TODO 把距离计算和碰撞拆分开
|
|
43
|
+
if (maxVisibleDistance !== undefined && five.state.mode === Five.Mode.Panorama) {
|
|
44
|
+
if (vectorDistance > maxVisibleDistance) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return isImpacted(five, modelPosition.clone().sub(cameraPosition).normalize(), cameraPosition, vectorDistance);
|
|
49
|
+
};
|
|
50
|
+
const judgeInViewport = (modelPoint) => {
|
|
51
|
+
const { camera, model } = five;
|
|
52
|
+
const { x: offsetXFromCenter, y: offsetYFromCenter, z: offsetZFromCenter, } = modelPoint.clone().project(camera);
|
|
53
|
+
const ratioFromLeft = (offsetXFromCenter + 1) / 2;
|
|
54
|
+
const ratioFromTop = (2 - (offsetYFromCenter + 1)) / 2;
|
|
55
|
+
const isFront = Math.abs(offsetZFromCenter) < 1;
|
|
56
|
+
const cssOffset = [ratioFromLeft, ratioFromTop];
|
|
57
|
+
// 只计算在前面就行
|
|
58
|
+
const isInViewport = isFront && cssOffset.every((ratio) => ratio < 1 && ratio >= 0);
|
|
59
|
+
return Boolean(isInViewport);
|
|
60
|
+
};
|
|
61
|
+
// cssOffset 获取
|
|
62
|
+
const getLabelCssOffset = (five, itemLabel) => {
|
|
63
|
+
const modelPosition = new Vector3(itemLabel.modelPosition[0], itemLabel.modelPosition[1], itemLabel.modelPosition[2]);
|
|
64
|
+
const cssPosition = five.project2d(modelPosition);
|
|
65
|
+
const xOffset = cssPosition === null || cssPosition === void 0 ? void 0 : cssPosition.x;
|
|
66
|
+
const yOffset = cssPosition === null || cssPosition === void 0 ? void 0 : cssPosition.y;
|
|
67
|
+
return [xOffset, yOffset];
|
|
68
|
+
};
|
|
69
|
+
// 重叠计算
|
|
70
|
+
const isOverlap = (cssOffset, widthOffset) => {
|
|
71
|
+
if (cssOffsetLists.length === 0) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const hasOverlapPoint = cssOffsetLists.find(item => ((cssOffset[0] >= item[0] - widthOffset && cssOffset[0] <= item[0] + widthOffset)
|
|
75
|
+
|| (cssOffset[1] >= item[1] - cssHeight && cssOffset[1] <= item[1] + cssHeight)));
|
|
76
|
+
return !!hasOverlapPoint;
|
|
77
|
+
};
|
|
78
|
+
const getFormatedItemLabels = (five, labels) => {
|
|
79
|
+
// 计算位置 & 可见性
|
|
80
|
+
const newLabels = labels.map(label => {
|
|
81
|
+
// 不在绑定点位则直接不可见
|
|
82
|
+
if (five.state.panoIndex !== label.panoIndex) {
|
|
83
|
+
return Object.assign(Object.assign({}, label), { visible: false });
|
|
84
|
+
}
|
|
85
|
+
const cssOffset = getLabelCssOffset(five, label);
|
|
86
|
+
const curLabelWidth = label.name.length * basicWidth;
|
|
87
|
+
const strokeLength = getStrokeLength(label.modelPosition[1], displayStrategyType);
|
|
88
|
+
// 是否加入碰撞检测
|
|
89
|
+
// 配置加入碰撞检测,则判断碰撞检测
|
|
90
|
+
// 在可见范围内, 仅在 Panorama 模态计算
|
|
91
|
+
const isInViewport = five.currentMode === Five.Mode.Panorama
|
|
92
|
+
? judgeInViewport(new Vector3(label.position[0], label.position[1], label.position[2]))
|
|
93
|
+
: true;
|
|
94
|
+
// 碰撞
|
|
95
|
+
const isBlocked = modelOcclusionEnable
|
|
96
|
+
? judgeImpacted(five, label)
|
|
97
|
+
: false;
|
|
98
|
+
const visible = isInViewport && !isBlocked;
|
|
99
|
+
// 关掉重叠计算
|
|
100
|
+
// const visible = naturalVisible && !isOverlap([cssOffset[0], cssOffset[1] + strokeLength], curLabelWidth)
|
|
101
|
+
if (!visible)
|
|
102
|
+
return Object.assign(Object.assign({}, label), { visible });
|
|
103
|
+
cssOffsetLists.push(cssOffset);
|
|
104
|
+
// position
|
|
105
|
+
const transform = getLabelTransform(cssOffset);
|
|
106
|
+
return Object.assign(Object.assign({}, label), { visible, transform, strokeLength });
|
|
107
|
+
});
|
|
108
|
+
const sortedItemLabelItems = newLabels
|
|
109
|
+
.filter(({ visible }) => visible)
|
|
110
|
+
.map(label => ({
|
|
111
|
+
itemLabelItem: label,
|
|
112
|
+
distance: new Vector3(label.modelPosition[0], label.modelPosition[1], label.modelPosition[2]).clone().distanceTo(five.camera.position)
|
|
113
|
+
}))
|
|
114
|
+
.sort((a, b) => a.distance - b.distance);
|
|
115
|
+
return newLabels.map(label => {
|
|
116
|
+
const sortIndex = sortedItemLabelItems.findIndex(item => item.itemLabelItem.id === label.id);
|
|
117
|
+
if (sortIndex !== undefined)
|
|
118
|
+
return Object.assign(Object.assign({}, label), { zIndex: sortIndex * 10 });
|
|
119
|
+
return label;
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
const onItemLabelUpdate = () => {
|
|
123
|
+
cssOffsetLists = [];
|
|
124
|
+
renderItemLabels = getFormatedItemLabels(five, renderItemLabels);
|
|
125
|
+
};
|
|
126
|
+
const handleCameraUpdateCallback = () => {
|
|
127
|
+
itemsVisible = false;
|
|
128
|
+
handleCameraUpdate();
|
|
129
|
+
};
|
|
130
|
+
const onFiveModeChange = (mode) => {
|
|
131
|
+
itemsVisible = false;
|
|
132
|
+
five.once('initAnimationEnded', (panoIndex, pose, userAction) => {
|
|
133
|
+
anchorEnabled = mode === Five.Mode.Panorama;
|
|
134
|
+
itemsVisible = true;
|
|
135
|
+
if (!userAction)
|
|
136
|
+
return;
|
|
137
|
+
else
|
|
138
|
+
onItemLabelUpdate();
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
const handleCameraUpdate = debounce(() => {
|
|
142
|
+
itemsVisible = true;
|
|
143
|
+
onItemLabelUpdate();
|
|
144
|
+
}, 300);
|
|
145
|
+
const onResize = () => {
|
|
146
|
+
five.once('renderFrame', onItemLabelUpdate);
|
|
147
|
+
};
|
|
148
|
+
const addResizeListener = () => {
|
|
149
|
+
window.addEventListener('resize', onResize, false);
|
|
150
|
+
};
|
|
151
|
+
const addDataUpdateListener = () => {
|
|
152
|
+
if (curItemLabels !== itemLabels) {
|
|
153
|
+
renderItemLabels = transform2RenderData(itemLabels);
|
|
154
|
+
curItemLabels = itemLabels;
|
|
155
|
+
onItemLabelUpdate();
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
const getNearObserverPano = (fromPositionVector, observers) => {
|
|
159
|
+
let candidates = [];
|
|
160
|
+
for (let i = 0; i < observers.length; i++) {
|
|
161
|
+
const { position: obVector, panoIndex } = observers[i];
|
|
162
|
+
const distance = fromPositionVector.distanceTo(obVector);
|
|
163
|
+
if (maxVisibleDistance === undefined || distance <= maxVisibleDistance || five.state.mode !== Five.Mode.Panorama) {
|
|
164
|
+
candidates.push({
|
|
165
|
+
panoIndex,
|
|
166
|
+
obVector,
|
|
167
|
+
distance
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
candidates = candidates.sort((a, b) => a.distance - b.distance);
|
|
172
|
+
let observerIndex;
|
|
173
|
+
for (let i = 0; i < candidates.length; i++) {
|
|
174
|
+
const { obVector, distance, panoIndex } = candidates[i];
|
|
175
|
+
const isImpactedRes = isImpacted(five, fromPositionVector, obVector, distance);
|
|
176
|
+
if (!isImpactedRes) {
|
|
177
|
+
observerIndex = panoIndex;
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return typeof observerIndex === "number" ? observers[observerIndex] : undefined;
|
|
182
|
+
};
|
|
183
|
+
const onIconClick = (itemLabel) => {
|
|
184
|
+
if (five.state.mode === Five.Mode.Panorama)
|
|
185
|
+
return;
|
|
186
|
+
const observers = five.work.observers;
|
|
187
|
+
const fromPositionVector = new Vector3().fromArray(itemLabel.position);
|
|
188
|
+
const observer = getNearObserverPano(fromPositionVector, observers);
|
|
189
|
+
if (observer) {
|
|
190
|
+
itemLabel.observerIndex = observer.panoIndex;
|
|
191
|
+
}
|
|
192
|
+
if (typeof itemLabel.observerIndex === "number") {
|
|
193
|
+
const observer = observers[itemLabel.observerIndex];
|
|
194
|
+
const direction = fromPositionVector.clone().sub(observer.position).normalize();
|
|
195
|
+
const cameraCoord = {
|
|
196
|
+
longitude: Math.PI + Math.atan2(direction.x, direction.z),
|
|
197
|
+
latitude: Math.acos(direction.y / direction.length()) - Math.PI / 2,
|
|
198
|
+
};
|
|
199
|
+
five.setState(Object.assign(Object.assign({}, cameraCoord), { mode: Five.Mode.Panorama, panoIndex: itemLabel.observerIndex }));
|
|
200
|
+
// 游走结束更新 render list
|
|
201
|
+
five.once('initAnimationEnded', () => {
|
|
202
|
+
renderItemLabels = renderItemLabels.map(item => {
|
|
203
|
+
return Object.assign(Object.assign({}, item), { isFold: item.id !== itemLabel.id });
|
|
204
|
+
});
|
|
205
|
+
five.once('cameraUpdate', () => {
|
|
206
|
+
renderItemLabels = renderItemLabels.map(item => {
|
|
207
|
+
return Object.assign(Object.assign({}, item), { isFold: false });
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
beforeUpdate(() => {
|
|
214
|
+
addDataUpdateListener();
|
|
215
|
+
});
|
|
216
|
+
onMount(() => {
|
|
217
|
+
renderItemLabels = transform2RenderData(itemLabels);
|
|
218
|
+
curItemLabels = itemLabels;
|
|
219
|
+
onItemLabelUpdate();
|
|
220
|
+
addResizeListener();
|
|
221
|
+
five.on('cameraUpdate', handleCameraUpdateCallback);
|
|
222
|
+
// five.on('modeChange', onFiveModeChange)
|
|
223
|
+
});
|
|
224
|
+
onDestroy(() => {
|
|
225
|
+
five.off('cameraUpdate', handleCameraUpdateCallback);
|
|
226
|
+
// five.off('modeChange', onFiveModeChange)
|
|
227
|
+
window.removeEventListener('resize', onResize, false);
|
|
228
|
+
});
|
|
229
|
+
</script>
|
|
230
|
+
|
|
231
|
+
<div class="item-labels-container" bind:clientWidth="{containerWidth}" bind:clientHeight="{containerHeight}"
|
|
232
|
+
style:opacity="{itemsVisible ? 1 : 0}">
|
|
233
|
+
{#each renderItemLabels as itemLabelItem (itemLabelItem.id)}
|
|
234
|
+
{#if itemLabelItem.visible}
|
|
235
|
+
<ItemLabelItem
|
|
236
|
+
itemLabel="{itemLabelItem}"
|
|
237
|
+
hooks="{hooks}"
|
|
238
|
+
anchorEnabled="{anchorEnabled}"
|
|
239
|
+
onIconClick="{onIconClick}"
|
|
240
|
+
/>
|
|
241
|
+
{/if}
|
|
242
|
+
{/each}
|
|
243
|
+
</div>
|
|
244
|
+
|
|
245
|
+
<style>
|
|
246
|
+
.item-labels-container {
|
|
247
|
+
width: 100%;
|
|
248
|
+
height: 100%;
|
|
249
|
+
position: relative;
|
|
250
|
+
}
|
|
251
|
+
</style>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<script>import "./events.type";
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
export let itemLabel;
|
|
4
|
+
export let hooks;
|
|
5
|
+
export let anchorEnabled;
|
|
6
|
+
export let onIconClick;
|
|
7
|
+
// const defaultIcon = '//vrlab-public.ljcdn.com/common/file/web/c8591aaa-e62b-4e31-8fed-671483ace37f.svg\n'
|
|
8
|
+
function onClick() {
|
|
9
|
+
hooks.emit('onLabelClick', itemLabel);
|
|
10
|
+
}
|
|
11
|
+
let customElement;
|
|
12
|
+
$: {
|
|
13
|
+
if (typeof itemLabel.render === 'function' && customElement) {
|
|
14
|
+
if (customElement.children.length === 0) {
|
|
15
|
+
const child = itemLabel.render(itemLabel);
|
|
16
|
+
if (child) {
|
|
17
|
+
customElement.appendChild(child);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<div class={classNames("item-label-item", { fold: itemLabel.isFold })}
|
|
25
|
+
style:z-index="{itemLabel.zIndex}"
|
|
26
|
+
style:transform="{itemLabel.transform}"
|
|
27
|
+
>
|
|
28
|
+
<div class={classNames("item-label-item__text-wrap", { 'item-label-item__custom': Boolean(typeof itemLabel.render === 'function') })}
|
|
29
|
+
style="bottom: {`${itemLabel.strokeLength}px`}"
|
|
30
|
+
on:click="{onClick}"
|
|
31
|
+
>
|
|
32
|
+
{#if Boolean(typeof itemLabel.render === 'function')}
|
|
33
|
+
<div bind:this={customElement}></div>
|
|
34
|
+
{:else}
|
|
35
|
+
{#if itemLabel.icon}
|
|
36
|
+
<div class="icon-wrap"
|
|
37
|
+
on:click="{(e) => onIconClick(itemLabel)}"
|
|
38
|
+
>
|
|
39
|
+
<div class="icon" style={`background-image: url(${itemLabel.icon})`} ></div>
|
|
40
|
+
</div>
|
|
41
|
+
{/if}
|
|
42
|
+
<div class="item-label-text">
|
|
43
|
+
<span class="item-model">{itemLabel.code || itemLabel.id}</span>
|
|
44
|
+
<span class="item-name">{itemLabel.name}</span>
|
|
45
|
+
</div>
|
|
46
|
+
{/if}
|
|
47
|
+
|
|
48
|
+
</div>
|
|
49
|
+
<div class={classNames("item-label-item__bar", { anchor: anchorEnabled })}
|
|
50
|
+
style="height: {`${itemLabel.strokeLength}px`}">
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<style>
|
|
55
|
+
.item-label-item {
|
|
56
|
+
position: absolute;
|
|
57
|
+
z-index: 0;
|
|
58
|
+
transform: none;
|
|
59
|
+
cursor: pointer;
|
|
60
|
+
pointer-events: none;
|
|
61
|
+
user-select: none;
|
|
62
|
+
animation: fadeIn .3s ease-in;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.item-label-item.fold >.item-label-item__text-wrap {
|
|
66
|
+
visibility: hidden;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.item-label-item.fold >.item-label-item__bar.anchor {
|
|
70
|
+
visibility: hidden;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.item-label-item.fold >.item-label-item__bar.anchor:after {
|
|
74
|
+
visibility: visible;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.item-label-item__text-wrap {
|
|
78
|
+
height: fit-content;
|
|
79
|
+
padding: 12px 20px 12px 12px;
|
|
80
|
+
position: absolute;
|
|
81
|
+
width: max-content;
|
|
82
|
+
max-width: 473px;
|
|
83
|
+
min-height: 92px;
|
|
84
|
+
background-image: linear-gradient(269deg, rgba(0, 0, 0, 0.50) 0%, rgba(0, 0, 0, 0.60) 49%, rgba(31, 38, 46, 0.70) 100%);
|
|
85
|
+
border: 1.5px solid rgba(255, 255, 255, .65);
|
|
86
|
+
border-radius: 3px;
|
|
87
|
+
color: white;
|
|
88
|
+
transform: translate(-50%, 0);
|
|
89
|
+
display: flex;
|
|
90
|
+
justify-content: flex-start;
|
|
91
|
+
align-items: center;
|
|
92
|
+
box-sizing: border-box;
|
|
93
|
+
overflow: hidden;
|
|
94
|
+
pointer-events: all;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.item-label-item__custom {
|
|
98
|
+
padding: 0;
|
|
99
|
+
max-width: unset;
|
|
100
|
+
min-height: unset;
|
|
101
|
+
background-image: unset;
|
|
102
|
+
border: 0;
|
|
103
|
+
border-radius: 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.icon-wrap {
|
|
107
|
+
width: 68px;
|
|
108
|
+
height: 100%;
|
|
109
|
+
display: flex;
|
|
110
|
+
justify-content: center;
|
|
111
|
+
align-content: center;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.icon {
|
|
115
|
+
width: 68px;
|
|
116
|
+
height: 68px;
|
|
117
|
+
background-repeat: no-repeat;
|
|
118
|
+
background-size: contain;
|
|
119
|
+
background-position: center;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.item-label-text {
|
|
123
|
+
margin-left: 12px;
|
|
124
|
+
padding-left: 12px;
|
|
125
|
+
min-height: 68px;
|
|
126
|
+
height: auto;
|
|
127
|
+
display: flex;
|
|
128
|
+
flex-flow: column;
|
|
129
|
+
justify-content: space-around;
|
|
130
|
+
align-content: flex-start;
|
|
131
|
+
border-left: solid rgba(255, 255, 255, .2) 1px;
|
|
132
|
+
border-top: solid rgba(255, 255, 255, .2) 0;
|
|
133
|
+
border-right: solid rgba(255, 255, 255, .2) 0;
|
|
134
|
+
border-bottom: solid rgba(255, 255, 255, .2) 0;
|
|
135
|
+
pointer-events: auto;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.item-model {
|
|
139
|
+
white-space: nowrap;
|
|
140
|
+
font-size: 22px;
|
|
141
|
+
font-weight: bold;
|
|
142
|
+
line-height: 30px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.item-name {
|
|
146
|
+
height: auto;
|
|
147
|
+
word-wrap: break-word;
|
|
148
|
+
word-break: break-all;
|
|
149
|
+
font-size: 20px;
|
|
150
|
+
line-height: 28px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.item-label-item__bar {
|
|
154
|
+
position: absolute;
|
|
155
|
+
bottom: 0;
|
|
156
|
+
width: 3px;
|
|
157
|
+
background-image: linear-gradient(to bottom, white, rgba(255, 255, 255, 0));
|
|
158
|
+
box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.20);
|
|
159
|
+
pointer-events: none;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.item-label-item__bar.anchor:after {
|
|
163
|
+
content: '';
|
|
164
|
+
position: absolute;
|
|
165
|
+
bottom: 0;
|
|
166
|
+
width: 24px;
|
|
167
|
+
height: 24px;
|
|
168
|
+
background-image: url("//vrlab-public.ljcdn.com/common/file/web/67e7a198-28c9-47dc-879b-507bd3ae600c.png ");
|
|
169
|
+
background-position: center;
|
|
170
|
+
background-size: contain;
|
|
171
|
+
transform: translate(-10.5px, 50%);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@keyframes fadeIn {
|
|
175
|
+
from {
|
|
176
|
+
opacity: 0
|
|
177
|
+
}
|
|
178
|
+
to {
|
|
179
|
+
opacity: 1
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
</style>
|
|
183
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Five, Subscribe } from "@realsee/five";
|
|
2
|
-
import ItemLabelComponent from './ItemLabelComponent';
|
|
2
|
+
import ItemLabelComponent from './ItemLabelComponent.svelte';
|
|
3
3
|
import { ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE } from "./typings";
|
|
4
4
|
import { parseItemLabelPluginData } from "./utils/parseData";
|
|
5
5
|
const defaultMaxVisibleDistance = undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Subscribe } from "@realsee/five";
|
|
2
2
|
import type { PluginEvent } from "./events.type";
|
|
3
|
-
import type ItemLabelComponent from './ItemLabelComponent';
|
|
3
|
+
import type ItemLabelComponent from './ItemLabelComponent.svelte';
|
|
4
4
|
export declare enum ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE {
|
|
5
5
|
SMALL = "small",
|
|
6
6
|
MIDLLE = "middle",
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<script>import { DISPLAY_STRATEGY_TYPE } from "./typings";
|
|
2
|
+
import { beforeUpdate, onDestroy, onMount } from "svelte";
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import ItemLabelItem from './ItemLabelItem.svelte';
|
|
5
|
+
import "./events.type";
|
|
6
|
+
import debounce from '../shared-utils/debounce';
|
|
7
|
+
const { Raycaster, Vector3 } = THREE;
|
|
8
|
+
export let five;
|
|
9
|
+
export let modelOcclusionEnable;
|
|
10
|
+
export let itemLabels;
|
|
11
|
+
export let hooks;
|
|
12
|
+
export let displayStrategyType;
|
|
13
|
+
let curItemLabels = null;
|
|
14
|
+
let renderItemLabels = null;
|
|
15
|
+
let containerWidth;
|
|
16
|
+
let containerHeight;
|
|
17
|
+
// 计算重叠
|
|
18
|
+
let cssOffsetLists = [];
|
|
19
|
+
let cssHeight = 26;
|
|
20
|
+
let basicWidth = 11;
|
|
21
|
+
// 动画过程中 itemsVisible 为 false
|
|
22
|
+
let itemsVisible = true;
|
|
23
|
+
/**
|
|
24
|
+
* 可见性策略:
|
|
25
|
+
* 1、当前楼层(假设先不考虑多楼层)
|
|
26
|
+
* 2、模型未被遮挡(一个 box 有没有被遮挡的计算? TODO)
|
|
27
|
+
* */
|
|
28
|
+
const getLabelVisible = (five, itemLabel) => {
|
|
29
|
+
// 虚拟 VR 仅有一层,不考虑楼层信息
|
|
30
|
+
const raycaster = new Raycaster();
|
|
31
|
+
const cameraPosition = five.camera.position.clone();
|
|
32
|
+
const modelPosition = new Vector3().fromArray(itemLabel.modelPosition);
|
|
33
|
+
// 计算点到相机的位置
|
|
34
|
+
const vectorDistance = modelPosition.distanceTo(cameraPosition);
|
|
35
|
+
raycaster.set(cameraPosition.clone(), modelPosition.clone().sub(cameraPosition).normalize());
|
|
36
|
+
const [intersection] = five.model.intersectRaycaster(raycaster);
|
|
37
|
+
return !(intersection && intersection.distance + 1 < vectorDistance);
|
|
38
|
+
};
|
|
39
|
+
// cssOffset 获取
|
|
40
|
+
const getLabelCssOffset = (five, itemLabel) => {
|
|
41
|
+
const modelPosition = new Vector3(itemLabel.modelPosition[0], itemLabel.modelPosition[1], itemLabel.modelPosition[2]);
|
|
42
|
+
const cssPosition = five.project2d(modelPosition);
|
|
43
|
+
const xOffset = cssPosition === null || cssPosition === void 0 ? void 0 : cssPosition.x;
|
|
44
|
+
const yOffset = cssPosition === null || cssPosition === void 0 ? void 0 : cssPosition.y;
|
|
45
|
+
return [xOffset, yOffset];
|
|
46
|
+
};
|
|
47
|
+
const getLabelTransform = (cssOffset) => {
|
|
48
|
+
return `translate(${cssOffset[0]}px, ${cssOffset[1]}px)`;
|
|
49
|
+
};
|
|
50
|
+
// 重叠计算
|
|
51
|
+
const isOverlap = (cssOffset, widthOffset) => {
|
|
52
|
+
if (cssOffsetLists.length === 0) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
const hasOverlapPoint = cssOffsetLists.find(item => ((cssOffset[0] >= item[0] - widthOffset && cssOffset[0] <= item[0] + widthOffset)
|
|
56
|
+
|| (cssOffset[1] >= item[1] - cssHeight && cssOffset[1] <= item[1] + cssHeight)));
|
|
57
|
+
return !!hasOverlapPoint;
|
|
58
|
+
};
|
|
59
|
+
function getStrokeLength(itemSpaceHeight, type) {
|
|
60
|
+
switch (type) {
|
|
61
|
+
case DISPLAY_STRATEGY_TYPE.SMALL:
|
|
62
|
+
return Math.ceil(-27.78 * itemSpaceHeight + 85);
|
|
63
|
+
case DISPLAY_STRATEGY_TYPE.MIDLLE:
|
|
64
|
+
return Math.ceil(-38.9 * itemSpaceHeight + 130);
|
|
65
|
+
case DISPLAY_STRATEGY_TYPE.LARGE:
|
|
66
|
+
return Math.ceil(-44.44 * itemSpaceHeight + 140);
|
|
67
|
+
case DISPLAY_STRATEGY_TYPE.EXTRA_LARGE:
|
|
68
|
+
return Math.ceil(-92.59 * itemSpaceHeight + 300);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const getFormatedItemLabels = (five, labels) => {
|
|
72
|
+
// 计算位置 & 可见性
|
|
73
|
+
const newLabels = labels.map(label => {
|
|
74
|
+
const cssOffset = getLabelCssOffset(five, label);
|
|
75
|
+
const curLabelWidth = label.name.length * basicWidth;
|
|
76
|
+
const strokeLength = getStrokeLength(label.modelPosition[1], displayStrategyType);
|
|
77
|
+
// 是否加入碰撞检测
|
|
78
|
+
const naturalVisible = modelOcclusionEnable ? getLabelVisible(five, label) : true;
|
|
79
|
+
const visible = naturalVisible && !isOverlap([cssOffset[0], cssOffset[1] + strokeLength], curLabelWidth);
|
|
80
|
+
if (!visible)
|
|
81
|
+
return Object.assign(Object.assign({}, label), { visible });
|
|
82
|
+
cssOffsetLists.push(cssOffset);
|
|
83
|
+
// position
|
|
84
|
+
const transform = getLabelTransform(cssOffset);
|
|
85
|
+
return Object.assign(Object.assign({}, label), { visible, transform, strokeLength });
|
|
86
|
+
});
|
|
87
|
+
const sortedItemLabelItems = newLabels
|
|
88
|
+
.filter(({ visible }) => visible)
|
|
89
|
+
.map(label => ({
|
|
90
|
+
itemLabelItem: label,
|
|
91
|
+
distance: new Vector3(label.modelPosition[0], label.modelPosition[1], label.modelPosition[2]).clone().distanceTo(five.camera.position)
|
|
92
|
+
}))
|
|
93
|
+
.sort((a, b) => a.distance - b.distance);
|
|
94
|
+
return newLabels.map(label => {
|
|
95
|
+
const sortIndex = sortedItemLabelItems.findIndex(item => item.itemLabelItem.id === label.id);
|
|
96
|
+
if (sortIndex !== undefined)
|
|
97
|
+
return Object.assign(Object.assign({}, label), { zIndex: sortIndex * 10 });
|
|
98
|
+
return label;
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
const onItemLabelUpdate = () => {
|
|
102
|
+
cssOffsetLists = [];
|
|
103
|
+
renderItemLabels = getFormatedItemLabels(five, renderItemLabels);
|
|
104
|
+
};
|
|
105
|
+
beforeUpdate(() => {
|
|
106
|
+
addDataUpdateListener();
|
|
107
|
+
});
|
|
108
|
+
const handleCameraUpdateCallback = () => {
|
|
109
|
+
itemsVisible = false;
|
|
110
|
+
handleCameraUpdate();
|
|
111
|
+
};
|
|
112
|
+
onMount(() => {
|
|
113
|
+
renderItemLabels = itemLabels;
|
|
114
|
+
curItemLabels = itemLabels;
|
|
115
|
+
onItemLabelUpdate();
|
|
116
|
+
addResizeListener();
|
|
117
|
+
five.on('cameraUpdate', handleCameraUpdateCallback);
|
|
118
|
+
});
|
|
119
|
+
const handleCameraUpdate = debounce(() => {
|
|
120
|
+
itemsVisible = true;
|
|
121
|
+
onItemLabelUpdate();
|
|
122
|
+
}, 300);
|
|
123
|
+
const addResizeListener = () => {
|
|
124
|
+
window.addEventListener('resize', onResize, false);
|
|
125
|
+
};
|
|
126
|
+
const addDataUpdateListener = () => {
|
|
127
|
+
if (curItemLabels !== itemLabels) {
|
|
128
|
+
renderItemLabels = itemLabels;
|
|
129
|
+
curItemLabels = itemLabels;
|
|
130
|
+
onItemLabelUpdate();
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const onResize = () => {
|
|
134
|
+
five.once('renderFrame', onItemLabelUpdate);
|
|
135
|
+
};
|
|
136
|
+
onDestroy(() => {
|
|
137
|
+
five.off('cameraUpdate', handleCameraUpdateCallback);
|
|
138
|
+
window.removeEventListener('resize', onResize, false);
|
|
139
|
+
});
|
|
140
|
+
</script>
|
|
141
|
+
|
|
142
|
+
<div class="item-labels-container" bind:clientWidth="{containerWidth}" bind:clientHeight="{containerHeight}"
|
|
143
|
+
style:opacity="{itemsVisible ? 1 : 0}">
|
|
144
|
+
{#each renderItemLabels as itemLabelItem (itemLabelItem.id)}
|
|
145
|
+
<ItemLabelItem itemLabel="{itemLabelItem}" hooks="{hooks}" />
|
|
146
|
+
{/each}
|
|
147
|
+
</div>
|
|
148
|
+
|
|
149
|
+
<style>
|
|
150
|
+
.item-labels-container {
|
|
151
|
+
width: 100%;
|
|
152
|
+
height: 100%;
|
|
153
|
+
position: relative;
|
|
154
|
+
}
|
|
155
|
+
</style>
|