@realsee/dnalogel 3.77.3 → 3.78.0-alpha.1
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/PanoTagPlugin/controller/Tag/BaseTag.d.ts +5 -1
- package/dist/PanoTagPlugin/controller/Tag/BoxTag.d.ts +119 -0
- package/dist/PanoTagPlugin/controller/Tag/MaskTag.d.ts +201 -0
- package/dist/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +14 -0
- package/dist/PanoTagPlugin/controller/Tag/PolygonTag.d.ts +112 -0
- package/dist/PanoTagPlugin/controller/TagRender.d.ts +1 -1
- package/dist/PanoTagPlugin/controller/index.d.ts +36 -1
- package/dist/PanoTagPlugin/typings/controller.d.ts +10 -0
- package/dist/PanoTagPlugin/typings/tag/Tag.d.ts +8 -3
- package/dist/PanoTagPlugin/typings/tag/Utils.d.ts +50 -1
- package/dist/PanoTagPlugin/utils/sculptDataToBoxPosition.d.ts +6 -0
- package/dist/PanoTagPlugin/utils/tag/tagCheck.d.ts +6 -0
- package/dist/PanoTagPlugin/utils/tagPosition.d.ts +11 -3
- package/dist/index.cjs.js +175 -86
- package/dist/index.js +11248 -9946
- package/dist/index.umd.js +176 -87
- package/docs/.nojekyll +1 -0
- package/docs/assets/custom.css +0 -0
- package/docs/assets/highlight.css +127 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1493 -0
- package/docs/classes/AreaMakerPluginType.AreaMakerController.html +59 -0
- package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +71 -0
- package/docs/classes/CSS3DRender.html +100 -0
- package/docs/classes/GuideLineItem.GuideLineItem.html +21 -0
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +70 -0
- package/docs/classes/ModelMakerPluginInstance.html +116 -0
- package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +52 -0
- package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +52 -0
- package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +53 -0
- package/docs/classes/ModelRoomLabelController.html +19 -0
- package/docs/classes/MoveController.html +45 -0
- package/docs/classes/Object3DHelperController.html +45 -0
- package/docs/classes/PaintBrush.html +15 -0
- package/docs/classes/PanoMeasurePluginLine.html +24 -0
- package/docs/classes/PanoMeasurePluginModel.html +23 -0
- package/docs/classes/PanoMeasurePluginPoint.html +7 -0
- package/docs/classes/PanoMeasurePluginPolyline.html +27 -0
- package/docs/classes/PanoTagPluginController.html +119 -0
- package/docs/classes/Sculpt.html +77 -0
- package/docs/classes/Util.BetterTween.html +6 -0
- package/docs/classes/Util.FiveDomEvents.html +13 -0
- package/docs/classes/Util.FivePuppet.html +20 -0
- package/docs/classes/Util.Interval.html +11 -0
- package/docs/classes/Util.LegacyPointHelper.html +7 -0
- package/docs/classes/Util.LightTag.html +47 -0
- package/docs/classes/Util.LineSegments.html +4 -0
- package/docs/classes/Util.Magnifier.html +26 -0
- package/docs/classes/Util.Object3D.html +8 -0
- package/docs/classes/Util.PointDomHelper.html +8 -0
- package/docs/classes/Util.PointHelper.html +10 -0
- package/docs/classes/Util.PointSelector.html +66 -0
- package/docs/classes/Util.PointSelectorHelper.html +14 -0
- package/docs/classes/Util.Rectangle.html +12 -0
- package/docs/classes/Util.sculpt.BaseEditor.html +17 -0
- package/docs/classes/Util.sculpt.BoxMesh.html +48 -0
- package/docs/classes/Util.sculpt.BoxMeshEditor.html +18 -0
- package/docs/classes/Util.sculpt.CircleMesh.html +26 -0
- package/docs/classes/Util.sculpt.CircleMeshEditor.html +18 -0
- package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +26 -0
- package/docs/classes/Util.sculpt.CylinderMesh.html +25 -0
- package/docs/classes/Util.sculpt.CylinderMeshEditor.html +18 -0
- package/docs/classes/Util.sculpt.LineMesh.html +34 -0
- package/docs/classes/Util.sculpt.PointMesh.html +24 -0
- package/docs/classes/Util.sculpt.PolygonMesh.html +40 -0
- package/docs/classes/Util.sculpt.PrismMesh.html +48 -0
- package/docs/classes/Util.sculpt.PrismMeshEditor.html +18 -0
- package/docs/classes/Util.sculpt.RectangleMesh.html +41 -0
- package/docs/classes/Util.sculpt.RectangleMeshEditor.html +18 -0
- package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +44 -0
- package/docs/classes/WalkController.html +42 -0
- package/docs/enums/CameraMovementEffect.html +4 -0
- package/docs/enums/ContentType.html +34 -0
- package/docs/enums/DIRECTION.html +5 -0
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +5 -0
- package/docs/enums/DimensionType.html +4 -0
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +4 -0
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +5 -0
- package/docs/enums/PaintBrushTypeEnum.html +4 -0
- package/docs/enums/PointType.html +4 -0
- package/docs/enums/Rotation.html +5 -0
- package/docs/functions/AreaMakerPlugin.html +1 -0
- package/docs/functions/CSS3DRenderPlugin.html +1 -0
- package/docs/functions/CameraMovementPlugin.html +2 -0
- package/docs/functions/CruisePlugin.html +1 -0
- package/docs/functions/CurrentPanoImagePlugin.html +1 -0
- package/docs/functions/FloorplanGuidePlugin.html +1 -0
- package/docs/functions/GuideLinePlugin.html +1 -0
- package/docs/functions/ItemLabelPlugin.html +1 -0
- package/docs/functions/MapviewFloorplanPlugin.html +1 -0
- package/docs/functions/MeasurePlugin.html +1 -0
- package/docs/functions/ModelChassisCompassPlugin.html +2 -0
- package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -0
- package/docs/functions/ModelFloorplanPlugin.html +1 -0
- package/docs/functions/ModelItemLabelPlugin.html +1 -0
- package/docs/functions/ModelMakerPlugin.html +1 -0
- package/docs/functions/ModelRoomLabelPlugin.html +1 -0
- package/docs/functions/ModelTVVideoPlugin.html +1 -0
- package/docs/functions/ModelViewPlugin.html +2 -0
- package/docs/functions/MovePlugin.html +1 -0
- package/docs/functions/Object3DHelperPlugin.html +1 -0
- package/docs/functions/PanoCompassPlugin.html +1 -0
- package/docs/functions/PanoCursorRaycasterPlugin.html +2 -0
- package/docs/functions/PanoDoorLabelPlugin.html +1 -0
- package/docs/functions/PanoFloorplanRadarPlugin.html +1 -0
- package/docs/functions/PanoMeasurePlugin.html +1 -0
- package/docs/functions/PanoRulerPlugin.html +2 -0
- package/docs/functions/PanoRulerProPlugin.html +2 -0
- package/docs/functions/PanoSpatialTagPlugin.html +2 -0
- package/docs/functions/PanoTagPlugin.html +1 -0
- package/docs/functions/PanoVideoPlugin.html +10 -0
- package/docs/functions/PipelinePlugin.html +1 -0
- package/docs/functions/SculptPlugin.html +2 -0
- package/docs/functions/SculptPluginForFive.html +2 -0
- package/docs/functions/TopviewFloorplanPlugin.html +1 -0
- package/docs/functions/Util.awaitNextFrame.html +1 -0
- package/docs/functions/Util.blink.html +13 -0
- package/docs/functions/Util.blinkWithPreset.html +6 -0
- package/docs/functions/Util.bounding.html +1 -0
- package/docs/functions/Util.boundingBox.html +1 -0
- package/docs/functions/Util.boundingSphere.html +1 -0
- package/docs/functions/Util.boxVertex.html +7 -0
- package/docs/functions/Util.boxVertexes.html +1 -0
- package/docs/functions/Util.checkFiveModelLoaded.html +2 -0
- package/docs/functions/Util.cleanup.html +3 -0
- package/docs/functions/Util.convexHull.html +2 -0
- package/docs/functions/Util.equal.html +5 -0
- package/docs/functions/Util.fiveModelIsLoaded.html +2 -0
- package/docs/functions/Util.generatePolygonGeometry.html +2 -0
- package/docs/functions/Util.getCoordsFromClient.html +1 -0
- package/docs/functions/Util.getCoordsFromElement.html +1 -0
- package/docs/functions/Util.getFrameTime.html +3 -0
- package/docs/functions/Util.getGeometryArea.html +1 -0
- package/docs/functions/Util.getGeometryInfo.html +1 -0
- package/docs/functions/Util.getIntersectFromRelativePosition.html +1 -0
- package/docs/functions/Util.getRaycasterFromFivePointer.html +1 -0
- package/docs/functions/Util.initialCSS3DRender.html +1 -0
- package/docs/functions/Util.inside.html +1 -0
- package/docs/functions/Util.isModelLike.html +1 -0
- package/docs/functions/Util.isNil.html +2 -0
- package/docs/functions/Util.isPanoramaLike.html +1 -0
- package/docs/functions/Util.lookObject.html +7 -0
- package/docs/functions/Util.lookPoint.html +5 -0
- package/docs/functions/Util.nextFrame.html +1 -0
- package/docs/functions/Util.notNil.html +2 -0
- package/docs/functions/Util.reblink.html +13 -0
- package/docs/functions/Util.replaceStaticPrefix.html +8 -0
- package/docs/functions/Util.requestAnimationFrameInterval.html +5 -0
- package/docs/functions/Util.sculpt.createBox.html +1 -0
- package/docs/functions/Util.sculpt.createCircle.html +1 -0
- package/docs/functions/Util.sculpt.createCylinder.html +1 -0
- package/docs/functions/Util.sculpt.createLine.html +2 -0
- package/docs/functions/Util.sculpt.createPoint.html +1 -0
- package/docs/functions/Util.sculpt.createPolygon.html +1 -0
- package/docs/functions/Util.sculpt.createPrism.html +1 -0
- package/docs/functions/Util.sculpt.createRectangle.html +2 -0
- package/docs/functions/Util.sculpt.transformUnit.html +1 -0
- package/docs/functions/Util.sculpt.transformUnitSquare.html +1 -0
- package/docs/functions/Util.tag.html +1 -0
- package/docs/functions/Util.triangleArea.html +2 -0
- package/docs/functions/Util.triangleCenter.html +2 -0
- package/docs/functions/Util.tweenProgress.html +1 -0
- package/docs/functions/Util.uuid.html +2 -0
- package/docs/functions/Util.waitFiveModelLoaded.html +2 -0
- package/docs/functions/Util.worldBounding.html +1 -0
- package/docs/functions/Util.worldBoundingBox.html +1 -0
- package/docs/functions/Util.worldBoundingSphere.html +1 -0
- package/docs/functions/createPolyline.html +2 -0
- package/docs/functions/pluginFlag.html +1 -0
- package/docs/functions/validatePolygon.html +1 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +70 -0
- package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +4 -0
- package/docs/interfaces/AreaMakerPluginType.Config.html +8 -0
- package/docs/interfaces/AreaMakerPluginType.EventMap.html +25 -0
- package/docs/interfaces/AreaMakerPluginType.Params.html +4 -0
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +20 -0
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +13 -0
- package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +9 -0
- package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +3 -0
- package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +3 -0
- package/docs/interfaces/AreaMakerPluginType.State.html +8 -0
- package/docs/interfaces/BoxAnimationConfig.html +6 -0
- package/docs/interfaces/BoxPosition.html +8 -0
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +9 -0
- package/docs/interfaces/CSS3DRenderPluginState.html +7 -0
- package/docs/interfaces/CameraMovementPluginExportType.html +11 -0
- package/docs/interfaces/ContentTypeMapInterface.html +73 -0
- package/docs/interfaces/CruisePluginTypes.Config.html +7 -0
- package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +8 -0
- package/docs/interfaces/CruisePluginTypes.EventMap.html +33 -0
- package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +6 -0
- package/docs/interfaces/CruisePluginTypes.MoveAction.html +16 -0
- package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +19 -0
- package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +20 -0
- package/docs/interfaces/CruisePluginTypes.PluginData.html +8 -0
- package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -0
- package/docs/interfaces/CruisePluginTypes.PluginState.html +15 -0
- package/docs/interfaces/CurrentPanoImagePluginType.Config.html +13 -0
- package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +15 -0
- package/docs/interfaces/CurrentPanoImagePluginType.Params.html +4 -0
- package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +3 -0
- package/docs/interfaces/CurrentPanoImagePluginType.State.html +7 -0
- package/docs/interfaces/FloorplanBounding.html +9 -0
- package/docs/interfaces/FloorplanData.html +7 -0
- package/docs/interfaces/FloorplanEntrance.html +14 -0
- package/docs/interfaces/FloorplanExtraObject.html +9 -0
- package/docs/interfaces/FloorplanExtraObject3D.html +5 -0
- package/docs/interfaces/FloorplanFloorData.html +9 -0
- package/docs/interfaces/FloorplanImagePosition.html +4 -0
- package/docs/interfaces/FloorplanObserver.html +8 -0
- package/docs/interfaces/FloorplanOutlineItem.html +6 -0
- package/docs/interfaces/FloorplanPosition.html +4 -0
- package/docs/interfaces/FloorplanRoomItem.html +24 -0
- package/docs/interfaces/FloorplanRoomLabelItem.html +6 -0
- package/docs/interfaces/FloorplanServerBounding.html +9 -0
- package/docs/interfaces/FloorplanServerComputedData.html +6 -0
- package/docs/interfaces/FloorplanServerData.html +4 -0
- package/docs/interfaces/FloorplanServerDoorItem.html +6 -0
- package/docs/interfaces/FloorplanServerDoorPosition.html +4 -0
- package/docs/interfaces/FloorplanServerEntrance.html +14 -0
- package/docs/interfaces/FloorplanServerFloorData.html +8 -0
- package/docs/interfaces/FloorplanServerImagePosition.html +4 -0
- package/docs/interfaces/FloorplanServerObserver.html +8 -0
- package/docs/interfaces/FloorplanServerOutlineItem.html +6 -0
- package/docs/interfaces/FloorplanServerPosition.html +4 -0
- package/docs/interfaces/FloorplanServerRoomItem.html +27 -0
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +6 -0
- package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +4 -0
- package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +7 -0
- package/docs/interfaces/GuideLinePluginType.EventMap.html +13 -0
- package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +5 -0
- package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +8 -0
- package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -0
- package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +32 -0
- package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +4 -0
- package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +5 -0
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +42 -0
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +3 -0
- package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +57 -0
- package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -0
- package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -0
- package/docs/interfaces/GuideLinePluginType.PluginState.html +7 -0
- package/docs/interfaces/GuideLinePluginType.Route.html +13 -0
- package/docs/interfaces/HelperOffset.html +4 -0
- package/docs/interfaces/ImagePlaneGroup.html +3 -0
- package/docs/interfaces/ItemLabelPluginData.html +2 -0
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +7 -0
- package/docs/interfaces/ItemLabelPluginParametersType.html +5 -0
- package/docs/interfaces/MinMax.html +3 -0
- package/docs/interfaces/ModelChassisCompassPluginData.html +3 -0
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +4 -0
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +3 -0
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +4 -0
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +4 -0
- package/docs/interfaces/ModelItemLabelPluginData.html +2 -0
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +7 -0
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +3 -0
- package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +17 -0
- package/docs/interfaces/ModelMakerPluginType.EventMap.html +18 -0
- package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +23 -0
- package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +11 -0
- package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +10 -0
- package/docs/interfaces/ModelMakerPluginType.ServerData.html +3 -0
- package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +10 -0
- package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +10 -0
- package/docs/interfaces/ModelMakerPluginType.State.html +8 -0
- package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +11 -0
- package/docs/interfaces/ModelRoomLabelPluginData.html +2 -0
- package/docs/interfaces/ModelTVVideoPluginData.html +5 -0
- package/docs/interfaces/ModelTVVideoPluginExportType.html +4 -0
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -0
- package/docs/interfaces/ModelViewPluginExportType.html +8 -0
- package/docs/interfaces/Object3DHelperState.html +4 -0
- package/docs/interfaces/ObjectHelperControllers.html +5 -0
- package/docs/interfaces/PaintBrushAction.html +14 -0
- package/docs/interfaces/PaintBrushConfigs.html +8 -0
- package/docs/interfaces/PaintBrushState.html +6 -0
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +16 -0
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -0
- package/docs/interfaces/PanoMeasureParameterType.html +20 -0
- package/docs/interfaces/PanoMeasurePluginLineJson.html +4 -0
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +4 -0
- package/docs/interfaces/PanoMeasurePluginPointJson.html +3 -0
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +7 -0
- package/docs/interfaces/PanoRulerPluginExportType.html +6 -0
- package/docs/interfaces/PanoRulerPluginOptions.html +3 -0
- package/docs/interfaces/PanoRulerPluginParameterType.html +4 -0
- package/docs/interfaces/PanoRulerProPluginExportType.html +5 -0
- package/docs/interfaces/PanoRulerProPluginOptions.html +3 -0
- package/docs/interfaces/PanoRulerProPluginParameterType.html +3 -0
- package/docs/interfaces/PanoRulerProPluginState.html +4 -0
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -0
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -0
- package/docs/interfaces/PanoSpatialTagPluginData.html +7 -0
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +6 -0
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +9 -0
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +6 -0
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +9 -0
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +7 -0
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +6 -0
- package/docs/interfaces/PanoVideoPluginType.LoadParams.html +3 -0
- package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +8 -0
- package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -0
- package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +15 -0
- package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -0
- package/docs/interfaces/PanoVideoPluginType.VideoItem.html +14 -0
- package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +13 -0
- package/docs/interfaces/PluginEventMap.html +16 -0
- package/docs/interfaces/Point.html +4 -0
- package/docs/interfaces/Room.html +5 -0
- package/docs/interfaces/RoomInfo.html +3 -0
- package/docs/interfaces/RoomLabel.html +16 -0
- package/docs/interfaces/RoomRules.html +1 -0
- package/docs/interfaces/Rooms.html +1 -0
- package/docs/interfaces/Scissor.html +13 -0
- package/docs/interfaces/SculptConfig.html +19 -0
- package/docs/interfaces/State.html +7 -0
- package/docs/interfaces/TagCacheInterface.html +9 -0
- package/docs/interfaces/TagConfig.html +174 -0
- package/docs/interfaces/TagGLTFObjectGroup.html +3 -0
- package/docs/interfaces/TagIconAnimationConfig.html +7 -0
- package/docs/interfaces/TagIconUrl.html +22 -0
- package/docs/interfaces/TagObjectGroup.html +3 -0
- package/docs/interfaces/TagState.html +3 -0
- package/docs/interfaces/TagStyle.html +17 -0
- package/docs/interfaces/Tags.html +8 -0
- package/docs/interfaces/TemporaryState.html +2 -0
- package/docs/interfaces/Util.AnimeInstance.html +14 -0
- package/docs/interfaces/Util.BlinkAnimeOptions.html +21 -0
- package/docs/interfaces/Util.EventHandlerConfig.html +21 -0
- package/docs/interfaces/Util.FiveDomEvent.html +7 -0
- package/docs/interfaces/Util.FiveDomEventMap.html +20 -0
- package/docs/interfaces/Util.LegacyMouseGroupParameter.html +4 -0
- package/docs/interfaces/Util.MagnifierParameter.html +13 -0
- package/docs/interfaces/Util.MouseGroupParameter.html +4 -0
- package/docs/interfaces/Util.ObjectInitialState.html +9 -0
- package/docs/interfaces/Util.PointIntersection.html +21 -0
- package/docs/interfaces/Util.PointSelectorHelperConfig.html +6 -0
- package/docs/interfaces/Util.ReBlinkAnimeOptions.html +27 -0
- package/docs/modules/AreaMakerPluginType.html +17 -0
- package/docs/modules/CruisePluginTypes.html +14 -0
- package/docs/modules/CurrentPanoImagePluginType.html +6 -0
- package/docs/modules/GuideLineItem.html +2 -0
- package/docs/modules/GuideLineModeItem.html +3 -0
- package/docs/modules/GuideLinePluginType.html +25 -0
- package/docs/modules/ModelMakerPluginType.html +19 -0
- package/docs/modules/PanoVideoPluginType.html +8 -0
- package/docs/modules/SculptData.html +9 -0
- package/docs/modules/SculptType.html +2 -0
- package/docs/modules/Util.html +91 -0
- package/docs/modules/Util.sculpt.html +27 -0
- package/docs/modules.html +287 -0
- package/docs/types/AddObject3DHelperConfig.html +19 -0
- package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +7 -0
- package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -0
- package/docs/types/AreaMakerPluginType.PluginData.html +2 -0
- package/docs/types/AreaMakerPluginType.ServerData.html +2 -0
- package/docs/types/ArrayPosition.html +1 -0
- package/docs/types/AudioAppearance.html +1 -0
- package/docs/types/BoxTag.html +2 -0
- package/docs/types/CSS3DRenderExportType.html +1 -0
- package/docs/types/CSS3DRenderPluginExportType.html +1 -0
- package/docs/types/CSS3DRenderPluginParameterType.html +1 -0
- package/docs/types/ClassFunctionParameters.html +1 -0
- package/docs/types/Color.html +1 -0
- package/docs/types/ContentTypeConfigKey.html +1 -0
- package/docs/types/ContentTypeConfigKeySplit.html +1 -0
- package/docs/types/ContentTypeMap.html +1 -0
- package/docs/types/Create3DDomContainerReturnType.html +1 -0
- package/docs/types/Create3DElementReturnType.html +1 -0
- package/docs/types/CruisePluginExportType.html +1 -0
- package/docs/types/CruisePluginTypes.CruiseData.html +6 -0
- package/docs/types/CruisePluginTypes.MoveEffect.html +1 -0
- package/docs/types/CurrentPanoImagePluginExportType.html +1 -0
- package/docs/types/DeprecatedMediaPlaneProperty.html +3 -0
- package/docs/types/DeprecatedTagProperty.html +3 -0
- package/docs/types/Direction-1.html +1 -0
- package/docs/types/Direction4.html +1 -0
- package/docs/types/ElementRenderer.html +2 -0
- package/docs/types/FloorplanGuidePluginParameterType.html +1 -0
- package/docs/types/FloorplanGuidePluginReturnType.html +1 -0
- package/docs/types/FloorplanRuleLabels.html +2 -0
- package/docs/types/FloorplanServerRuleLabels.html +1 -0
- package/docs/types/GuideLinePluginExportType.html +1 -0
- package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -0
- package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -0
- package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -0
- package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -0
- package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -0
- package/docs/types/GuideLinePluginType.PathItem.html +2 -0
- package/docs/types/GuideLinePluginType.PluginData.html +2 -0
- package/docs/types/GuideLinePluginType.RouteConfig.html +4 -0
- package/docs/types/HelperEventMap.html +1 -0
- package/docs/types/InternalHelperEventMap.html +1 -0
- package/docs/types/MapviewFloorplanPluginParameterType.html +1 -0
- package/docs/types/MapviewFloorplanPluginReturnType.html +1 -0
- package/docs/types/MaskPosition.html +3 -0
- package/docs/types/MaskTag.html +2 -0
- package/docs/types/MeasureEndReason.html +1 -0
- package/docs/types/MeasurePluginConfig.html +5 -0
- package/docs/types/MeasurePluginEventMap.html +1 -0
- package/docs/types/MediaData.html +2 -0
- package/docs/types/MediaStore.html +1 -0
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -0
- package/docs/types/ModelFloorplanPluginParameterType.html +1 -0
- package/docs/types/ModelFloorplanPluginReturnType.html +1 -0
- package/docs/types/ModelId.html +1 -0
- package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -0
- package/docs/types/ModelMakerPluginType.ItemType.html +2 -0
- package/docs/types/ModelMakerPluginType.MarkerItem.html +1 -0
- package/docs/types/ModelMakerPluginType.ServerItem.html +2 -0
- package/docs/types/ModelRoomLabelPluginParameters.html +1 -0
- package/docs/types/ModelRoomLabelPluginReturnType.html +1 -0
- package/docs/types/MoveArgs.html +2 -0
- package/docs/types/MoveOpts.html +2 -0
- package/docs/types/Object3DHelperEventMap.html +1 -0
- package/docs/types/ObjectFit.html +1 -0
- package/docs/types/PaintBrushEventMap.html +1 -0
- package/docs/types/PanoCompassPluginData.html +1 -0
- package/docs/types/PanoCompassPluginExportType.html +1 -0
- package/docs/types/PanoCompassPluginParameterType.html +1 -0
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -0
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -0
- package/docs/types/PanoIndex.html +1 -0
- package/docs/types/PanoMeasurePluginEvent.html +1 -0
- package/docs/types/PanoMeasureReturnType.html +1 -0
- package/docs/types/PanoSpatialTagPluginId.html +1 -0
- package/docs/types/PanoTagPluginExportInterface.html +1 -0
- package/docs/types/PanoTagPluginParamsInterface.html +1 -0
- package/docs/types/PanoVideoPluginParameterType.html +1 -0
- package/docs/types/PanoVideoPluginReturnType.html +1 -0
- package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -0
- package/docs/types/PipelinePluginParameterType.html +1 -0
- package/docs/types/PipelinePluginReturnType.html +1 -0
- package/docs/types/PlaneTag.html +2 -0
- package/docs/types/Point2DTag.html +2 -0
- package/docs/types/Point3DTag.html +2 -0
- package/docs/types/PointTagInstance.html +1 -0
- package/docs/types/PolygonPosition.html +3 -0
- package/docs/types/PolygonTag.html +2 -0
- package/docs/types/Position.html +1 -0
- package/docs/types/PositionFrom.html +1 -0
- package/docs/types/RotateArgs.html +2 -0
- package/docs/types/RotateOpts.html +2 -0
- package/docs/types/RuleLabelsKey.html +1 -0
- package/docs/types/RuleLabelsValue.html +1 -0
- package/docs/types/ScaleCallback.html +1 -0
- package/docs/types/ScalePosition.html +3 -0
- package/docs/types/SculptData.BoxData.html +1 -0
- package/docs/types/SculptData.CircleData.html +1 -0
- package/docs/types/SculptData.CylinderData.html +1 -0
- package/docs/types/SculptData.PointData.html +1 -0
- package/docs/types/SculptData.PolygonData.html +1 -0
- package/docs/types/SculptData.PolylineData.html +1 -0
- package/docs/types/SculptData.PrismData.html +1 -0
- package/docs/types/SculptData.RectangleData.html +1 -0
- package/docs/types/SculptType.Theme.html +10 -0
- package/docs/types/StickType.html +1 -0
- package/docs/types/Tag.html +17 -0
- package/docs/types/Tag2D.html +2 -0
- package/docs/types/Tag3D.html +2 -0
- package/docs/types/TagClickParams.html +1 -0
- package/docs/types/TagConfigByKey.html +1 -0
- package/docs/types/TagContentType.html +1 -0
- package/docs/types/TagContentTypeMapping.html +1 -0
- package/docs/types/TagDimensionType.html +1 -0
- package/docs/types/TagElement.html +2 -0
- package/docs/types/TagEvents.html +1 -0
- package/docs/types/TagGLTFObject.html +1 -0
- package/docs/types/TagHooks.html +1 -0
- package/docs/types/TagId.html +1 -0
- package/docs/types/TagInstance.html +1 -0
- package/docs/types/TagPlacement.html +5 -0
- package/docs/types/TagPointType.html +2 -0
- package/docs/types/TagRendererMap.html +1 -0
- package/docs/types/TopviewFloorplanPluginParameterType.html +1 -0
- package/docs/types/TopviewFloorplanPluginReturnType.html +1 -0
- package/docs/types/Util.ActionIfNoIntersection.html +1 -0
- package/docs/types/Util.AdherePoint.html +2 -0
- package/docs/types/Util.PointSelectorConfig.html +1 -0
- package/docs/types/Util.SupportedTarget.html +2 -0
- package/docs/types/Util.Target.html +2 -0
- package/docs/types/Util.ThreeObject.html +2 -0
- package/docs/types/WorkCode.html +1 -0
- package/docs/variables/FLOOR_TYPE_MAP.html +2 -0
- package/docs/variables/PLUGIN.html +1 -0
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -0
- package/docs/variables/ROOM_TYPE_MAP.html +2 -0
- package/docs/variables/Util.ANIME_PRESETS.html +2 -0
- package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +2 -0
- package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +2 -0
- package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +2 -0
- package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +2 -0
- package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +2 -0
- package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +2 -0
- package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +2 -0
- package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +2 -0
- package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +2 -0
- package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +2 -0
- package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +2 -0
- package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +2 -0
- package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +2 -0
- package/docs/variables/defaultGlobalConfig.html +1 -0
- package/docs/variables/itemLabelPluginServerParams.html +1 -0
- package/docs/variables/modelItemLabelPluginServerParams.html +1 -0
- package/docs/variables/modelRoomLabelPluginServerParams.html +1 -0
- package/libs/CruisePlugin/Move.js +7 -2
- package/libs/CruisePlugin/Work.js +7 -2
- package/libs/CruisePlugin/index.js +11 -6
- package/libs/GuideLinePlugin/Controller.js +9 -4
- package/libs/GuideLinePlugin/GuideLineItem.js +7 -2
- package/libs/GuideLinePlugin/GuideLineModeItem.js +7 -2
- package/libs/GuideLinePlugin/index.js +11 -6
- package/libs/PanoTagPlugin/Components/TagItem.js +122 -122
- package/libs/PanoTagPlugin/controller/Tag/BaseTag.d.ts +5 -1
- package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +320 -289
- package/libs/PanoTagPlugin/controller/Tag/BoxTag.d.ts +119 -0
- package/libs/PanoTagPlugin/controller/Tag/BoxTag.js +512 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.d.ts +201 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.js +607 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +14 -0
- package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.js +100 -0
- package/libs/PanoTagPlugin/controller/Tag/PolygonTag.d.ts +112 -0
- package/libs/PanoTagPlugin/controller/Tag/PolygonTag.js +478 -0
- package/libs/PanoTagPlugin/controller/TagRender.d.ts +1 -1
- package/libs/PanoTagPlugin/controller/TagUtil.js +19 -17
- package/libs/PanoTagPlugin/controller/index.d.ts +36 -1
- package/libs/PanoTagPlugin/controller/index.js +184 -121
- package/libs/PanoTagPlugin/index.js +16 -11
- package/libs/PanoTagPlugin/typings/controller.d.ts +10 -0
- package/libs/PanoTagPlugin/typings/tag/Tag.d.ts +8 -3
- package/libs/PanoTagPlugin/typings/tag/Utils.d.ts +50 -1
- package/libs/PanoTagPlugin/utils/addDebugPoints.js +27 -13
- package/libs/PanoTagPlugin/utils/index.js +25 -23
- package/libs/PanoTagPlugin/utils/sculptDataToBoxPosition.d.ts +6 -0
- package/libs/PanoTagPlugin/utils/sculptDataToBoxPosition.js +18 -0
- package/libs/PanoTagPlugin/utils/tag/tagCheck.d.ts +6 -0
- package/libs/PanoTagPlugin/utils/tag/tagCheck.js +26 -14
- package/libs/PanoTagPlugin/utils/tagPosition.d.ts +11 -3
- package/libs/PanoTagPlugin/utils/tagPosition.js +48 -17
- package/libs/base/BasePlugin.js +5 -5
- package/libs/index.js +155 -150
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,9 @@ import type { PartialObjectDeep } from '../../../typings/typings';
|
|
|
12
12
|
import type { LiteralUnion } from 'type-fest';
|
|
13
13
|
import type { CSS3DObjectPlus } from '../../../shared-utils/CSS3DRender/CSS3DObject';
|
|
14
14
|
import type { Rectangle } from '../../../Sculpt/Objects/Rectangle';
|
|
15
|
-
import { Line } from '@realsee/five/line';
|
|
15
|
+
import type { Line } from '@realsee/five/line';
|
|
16
|
+
import type { Box } from '../../../Sculpt/Objects/Box';
|
|
17
|
+
import type { Polygon } from '../../../Sculpt/typings';
|
|
16
18
|
/**
|
|
17
19
|
* @description 标签实例
|
|
18
20
|
* @property `id` 标签id
|
|
@@ -88,6 +90,8 @@ export declare abstract class BaseTag<C extends TagContentType = TagContentType,
|
|
|
88
90
|
dispose: () => void;
|
|
89
91
|
};
|
|
90
92
|
rectanglePlane?: Rectangle;
|
|
93
|
+
boxShape?: Box;
|
|
94
|
+
polygonShape?: Polygon;
|
|
91
95
|
dom?: HTMLDivElement;
|
|
92
96
|
contentDom?: HTMLDivElement;
|
|
93
97
|
initialConfig: TagData['config'];
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type PanoTagPluginController from '..';
|
|
2
|
+
import type { TagContentType, Tag as TagData, TagInstance, ArrayPosition, TagClickParams } from '../..';
|
|
3
|
+
import { BaseTag } from './BaseTag';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import type { PartialObjectDeep } from '../../../typings/typings';
|
|
6
|
+
import type { Tag } from '../..';
|
|
7
|
+
import { Box } from '../../../Sculpt/Objects/Box';
|
|
8
|
+
export type BoxTagInterface<C extends TagContentType = TagContentType> = TagInstance<C, '3DBox'>;
|
|
9
|
+
/**
|
|
10
|
+
* 3DBox 类型的标签
|
|
11
|
+
* 使用 Sculpt Box 进行渲染,避免复杂的坐标转换
|
|
12
|
+
*/
|
|
13
|
+
export declare class BoxTag<C extends TagContentType = TagContentType> extends BaseTag<C, '3DBox'> {
|
|
14
|
+
boxShape?: Box;
|
|
15
|
+
private tagStyle?;
|
|
16
|
+
private clickEventDispose?;
|
|
17
|
+
private domClickDispose?;
|
|
18
|
+
screenPosition: {
|
|
19
|
+
leftPx: number;
|
|
20
|
+
topPx: number;
|
|
21
|
+
scale: number;
|
|
22
|
+
} | null;
|
|
23
|
+
constructor(plugin: PanoTagPluginController, tagData: TagData);
|
|
24
|
+
/**
|
|
25
|
+
* 获取 Box 样式配置(合并用户配置和默认值)
|
|
26
|
+
*/
|
|
27
|
+
private getBoxStyle;
|
|
28
|
+
/**
|
|
29
|
+
* 更新 Box 样式
|
|
30
|
+
*/
|
|
31
|
+
private updateBoxStyle;
|
|
32
|
+
/**
|
|
33
|
+
* 更新标签数据
|
|
34
|
+
*/
|
|
35
|
+
set(tag: PartialObjectDeep<Tag<C, '3DBox'>>, deepMerge?: boolean): void;
|
|
36
|
+
/**
|
|
37
|
+
* 设置标签数据
|
|
38
|
+
*/
|
|
39
|
+
setData(...data: Parameters<InstanceType<typeof BaseTag<C, '3DBox'>>['setData']>): void;
|
|
40
|
+
/**
|
|
41
|
+
* 获取盒子的中心点
|
|
42
|
+
*/
|
|
43
|
+
getCenter(): ArrayPosition;
|
|
44
|
+
/**
|
|
45
|
+
* 获取盒子的8个角点坐标
|
|
46
|
+
*/
|
|
47
|
+
getCorners(): THREE.Vector3[];
|
|
48
|
+
/**
|
|
49
|
+
* 计算盒子的法向量
|
|
50
|
+
*/
|
|
51
|
+
computeNormal(): THREE.Vector3;
|
|
52
|
+
/**
|
|
53
|
+
* 初始化 Sculpt Box
|
|
54
|
+
*/
|
|
55
|
+
private initializeSculptBox;
|
|
56
|
+
/**
|
|
57
|
+
* 设置点击事件
|
|
58
|
+
*/
|
|
59
|
+
private setupClickEvents;
|
|
60
|
+
/**
|
|
61
|
+
* 清理点击事件
|
|
62
|
+
*/
|
|
63
|
+
private cleanupClickEvents;
|
|
64
|
+
/**
|
|
65
|
+
* 更新 Sculpt Box 的数据
|
|
66
|
+
*/
|
|
67
|
+
private updateSculptBox;
|
|
68
|
+
/**
|
|
69
|
+
* 启用编辑器
|
|
70
|
+
* 用于编辑已存在的 Box
|
|
71
|
+
*/
|
|
72
|
+
editorEnable(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* 禁用编辑器
|
|
75
|
+
*/
|
|
76
|
+
editorDisable(): void;
|
|
77
|
+
/**
|
|
78
|
+
* 从 Sculpt Box 同步 position 到 BoxTag
|
|
79
|
+
*/
|
|
80
|
+
private syncBoxPositionFromSculpt;
|
|
81
|
+
/**
|
|
82
|
+
* 将 BoxPosition 转换为 Sculpt 需要的数据格式
|
|
83
|
+
*/
|
|
84
|
+
private boxPositionToSculptData;
|
|
85
|
+
/**
|
|
86
|
+
* @description 点击事件处理
|
|
87
|
+
*/
|
|
88
|
+
onClick(params: Pick<TagClickParams, 'target'>): void;
|
|
89
|
+
/**
|
|
90
|
+
* @description 展开自己,收起其他标签
|
|
91
|
+
*/
|
|
92
|
+
unfoldAndFoldOthers(): void;
|
|
93
|
+
/**
|
|
94
|
+
* 展开标签详情
|
|
95
|
+
*/
|
|
96
|
+
unfold(): void;
|
|
97
|
+
/**
|
|
98
|
+
* 折叠标签详情
|
|
99
|
+
*/
|
|
100
|
+
fold(): void;
|
|
101
|
+
/**
|
|
102
|
+
* 设置展开/折叠状态
|
|
103
|
+
*/
|
|
104
|
+
setUnfold(unfolded: boolean): void;
|
|
105
|
+
/**
|
|
106
|
+
* 更新屏幕位置(用于在 2D UI 中显示内容)
|
|
107
|
+
* 显示在 Box 最右侧的顶点位置
|
|
108
|
+
*/
|
|
109
|
+
updateScreenPosition(): void;
|
|
110
|
+
get centerPosition(): THREE.Vector3;
|
|
111
|
+
/**
|
|
112
|
+
* 应用可见性变化
|
|
113
|
+
*/
|
|
114
|
+
applyVisible(): void;
|
|
115
|
+
/**
|
|
116
|
+
* 销毁标签
|
|
117
|
+
*/
|
|
118
|
+
dispose(): void;
|
|
119
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import type PanoTagPluginController from '..';
|
|
2
|
+
import type { TagContentType, Tag as TagData, TagInstance, TagClickParams } from '../..';
|
|
3
|
+
import { BaseTag } from './BaseTag';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import type { PartialObjectDeep } from '../../../typings/typings';
|
|
6
|
+
import type { Tag } from '../..';
|
|
7
|
+
import type { State as FiveState } from '@realsee/five';
|
|
8
|
+
export type MaskTagInterface<C extends TagContentType = TagContentType> = TagInstance<C, 'Mask'>;
|
|
9
|
+
/**
|
|
10
|
+
* Mask 类型的标签
|
|
11
|
+
* 基于全景图 mask 和颜色区域进行物体标记
|
|
12
|
+
*/
|
|
13
|
+
export declare class MaskTag<C extends TagContentType = TagContentType> extends BaseTag<C, 'Mask'> {
|
|
14
|
+
/**
|
|
15
|
+
* Mask 纹理缓存(静态,所有 MaskTag 实例共享)
|
|
16
|
+
* key: mask URL 或 canvas 的 symbol, value: { texture: THREE.Texture, refCount: number, abortController?: AbortController }
|
|
17
|
+
*/
|
|
18
|
+
private static maskTextureCache;
|
|
19
|
+
/**
|
|
20
|
+
* Canvas 到 Symbol 的映射(用于缓存 canvas 纹理)
|
|
21
|
+
*/
|
|
22
|
+
private static canvasSymbolMap;
|
|
23
|
+
/**
|
|
24
|
+
* mask 图片 URL 或 Canvas 元素(2:1 全景图格式)
|
|
25
|
+
*/
|
|
26
|
+
maskUrl: string | HTMLCanvasElement;
|
|
27
|
+
/**
|
|
28
|
+
* 目标颜色(RGB 格式)
|
|
29
|
+
*/
|
|
30
|
+
targetColor: [number, number, number];
|
|
31
|
+
/**
|
|
32
|
+
* mask 渲染的 mesh 对象(使用 Sphere)
|
|
33
|
+
*/
|
|
34
|
+
maskMesh?: THREE.Mesh;
|
|
35
|
+
/**
|
|
36
|
+
* mask 纹理对象
|
|
37
|
+
*/
|
|
38
|
+
private maskTexture?;
|
|
39
|
+
/**
|
|
40
|
+
* 是否正在加载 mask
|
|
41
|
+
*/
|
|
42
|
+
private loadingMask;
|
|
43
|
+
/**
|
|
44
|
+
* 资源是否已释放
|
|
45
|
+
*/
|
|
46
|
+
private _disposed;
|
|
47
|
+
/**
|
|
48
|
+
* 标签样式配置
|
|
49
|
+
*/
|
|
50
|
+
private tagStyle?;
|
|
51
|
+
/**
|
|
52
|
+
* 点击事件清理函数
|
|
53
|
+
*/
|
|
54
|
+
private clickEventDispose?;
|
|
55
|
+
constructor(plugin: PanoTagPluginController, tagData: TagData);
|
|
56
|
+
/**
|
|
57
|
+
* 计算法向量
|
|
58
|
+
* Mask 标签返回向上的法向量(因为是贴在 cube 面上)
|
|
59
|
+
*/
|
|
60
|
+
computeNormal(): THREE.Vector3;
|
|
61
|
+
/**
|
|
62
|
+
* 获取额外的闪烁目标
|
|
63
|
+
* 返回 maskMesh 用于 blink 动画
|
|
64
|
+
*/
|
|
65
|
+
protected getAdditionalBlinkTargets(): any | any[] | null;
|
|
66
|
+
/**
|
|
67
|
+
* 更新标签数据
|
|
68
|
+
*/
|
|
69
|
+
set(tag: PartialObjectDeep<Tag<C, 'Mask'>>, deepMerge?: boolean): void;
|
|
70
|
+
/**
|
|
71
|
+
* 重写 getVisible 方法
|
|
72
|
+
* Mask 标签仅在当前点位可见
|
|
73
|
+
*/
|
|
74
|
+
getVisible(fiveState?: Partial<FiveState>): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* 重写 computeVisible 方法
|
|
77
|
+
* 增加 Mask 特有的可见性检查逻辑,用于 whyHide 功能
|
|
78
|
+
*/
|
|
79
|
+
protected computeVisible(_fiveState?: Partial<FiveState>): {
|
|
80
|
+
value: boolean;
|
|
81
|
+
reason?: any;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* 点击事件处理
|
|
85
|
+
*/
|
|
86
|
+
onClick(params: Pick<TagClickParams, 'target'>): void;
|
|
87
|
+
/**
|
|
88
|
+
* 展开自己,收起其他标签
|
|
89
|
+
*/
|
|
90
|
+
unfoldAndFoldOthers(): void;
|
|
91
|
+
/**
|
|
92
|
+
* 展开标签详情
|
|
93
|
+
*/
|
|
94
|
+
unfold(): void;
|
|
95
|
+
/**
|
|
96
|
+
* 折叠标签详情
|
|
97
|
+
*/
|
|
98
|
+
fold(): void;
|
|
99
|
+
/**
|
|
100
|
+
* 设置展开/折叠状态
|
|
101
|
+
*/
|
|
102
|
+
setUnfold(unfolded: boolean): void;
|
|
103
|
+
/**
|
|
104
|
+
* 更新屏幕位置
|
|
105
|
+
*/
|
|
106
|
+
updateScreenPosition(): void;
|
|
107
|
+
/**
|
|
108
|
+
* 应用可见性变化
|
|
109
|
+
*/
|
|
110
|
+
applyVisible(): void;
|
|
111
|
+
/**
|
|
112
|
+
* 更新 mesh 的位置和旋转(跟随观察者)
|
|
113
|
+
* 参考 itemMask 实现
|
|
114
|
+
*/
|
|
115
|
+
private updateMeshTransform;
|
|
116
|
+
/**
|
|
117
|
+
* 初始化 Mask Mesh(使用 Sphere)
|
|
118
|
+
*/
|
|
119
|
+
private initializeMaskMesh;
|
|
120
|
+
/**
|
|
121
|
+
* 创建 Sphere mesh(参考 itemMask 实现)
|
|
122
|
+
*/
|
|
123
|
+
private createSphereMesh;
|
|
124
|
+
/**
|
|
125
|
+
* 获取 Mask 样式配置(合并用户配置和默认值)
|
|
126
|
+
*/
|
|
127
|
+
private getMaskStyle;
|
|
128
|
+
/**
|
|
129
|
+
* 设置点击事件
|
|
130
|
+
*/
|
|
131
|
+
private setupClickEvents;
|
|
132
|
+
/**
|
|
133
|
+
* 清理点击事件
|
|
134
|
+
*/
|
|
135
|
+
private cleanupClickEvents;
|
|
136
|
+
/**
|
|
137
|
+
* 重新加载 mask 图
|
|
138
|
+
*/
|
|
139
|
+
private reloadMask;
|
|
140
|
+
/**
|
|
141
|
+
* 更新 mask 样式
|
|
142
|
+
*/
|
|
143
|
+
private updateMaskStyle;
|
|
144
|
+
/**
|
|
145
|
+
* 更新 Canvas 纹理(仅当 maskUrl 为 Canvas 时有效)
|
|
146
|
+
* 当 canvas 内容发生变化时,调用此方法更新渲染
|
|
147
|
+
*/
|
|
148
|
+
updateCanvasTexture(): void;
|
|
149
|
+
/**
|
|
150
|
+
* 清理 MaskTag 特有的资源(内部方法,避免重复调用)
|
|
151
|
+
*/
|
|
152
|
+
private disposeMaskResources;
|
|
153
|
+
/**
|
|
154
|
+
* 清理 MaskTag 特有的资源(公开方法)
|
|
155
|
+
*/
|
|
156
|
+
dispose(): void;
|
|
157
|
+
/**
|
|
158
|
+
* 禁用标签(重写父类方法)
|
|
159
|
+
*/
|
|
160
|
+
disable(): void;
|
|
161
|
+
/**
|
|
162
|
+
* 销毁标签(重写父类方法)
|
|
163
|
+
*/
|
|
164
|
+
destroy(): void;
|
|
165
|
+
/**
|
|
166
|
+
* 获取 mask 的缓存 key
|
|
167
|
+
* @param maskSource mask URL 或 Canvas
|
|
168
|
+
* @returns 缓存 key
|
|
169
|
+
*/
|
|
170
|
+
private static getMaskCacheKey;
|
|
171
|
+
/**
|
|
172
|
+
* 加载 Mask 纹理(静态方法,支持缓存和引用计数)
|
|
173
|
+
* @param maskSource mask 图片 URL 或 Canvas 元素
|
|
174
|
+
* @returns Promise<THREE.Texture>
|
|
175
|
+
*/
|
|
176
|
+
private static loadMaskTexture;
|
|
177
|
+
/**
|
|
178
|
+
* 释放 Mask 纹理(静态方法)
|
|
179
|
+
* @param maskSource mask 图片 URL 或 Canvas 元素
|
|
180
|
+
*/
|
|
181
|
+
private static releaseMaskTexture;
|
|
182
|
+
/**
|
|
183
|
+
* 获取当前缓存的纹理统计信息(用于性能监控和调试)
|
|
184
|
+
* @returns 缓存统计信息
|
|
185
|
+
*/
|
|
186
|
+
static getCacheStats(): {
|
|
187
|
+
totalCached: number;
|
|
188
|
+
totalRefCount: number;
|
|
189
|
+
estimatedMemoryMB: number;
|
|
190
|
+
cacheEntries: Array<{
|
|
191
|
+
source: string;
|
|
192
|
+
refCount: number;
|
|
193
|
+
sizeMB: number;
|
|
194
|
+
}>;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* 强制清理所有缓存的纹理(用于内存管理,谨慎使用)
|
|
198
|
+
* 注意:这会释放所有纹理,即使它们仍在使用中
|
|
199
|
+
*/
|
|
200
|
+
static clearAllCache(): void;
|
|
201
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mask 标签的 Shader 代码
|
|
3
|
+
* 参考 itemMask 插件实现
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Vertex Shader
|
|
7
|
+
*/
|
|
8
|
+
export declare const maskVertexShader = "\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
|
|
9
|
+
/**
|
|
10
|
+
* Fragment Shader
|
|
11
|
+
* 实现颜色匹配和高亮渲染逻辑
|
|
12
|
+
* 参考 MosaicPlugin 的边缘检测实现
|
|
13
|
+
*/
|
|
14
|
+
export declare const maskFragmentShader = "\n#define RESOLUTION 2048.0\n\nvarying vec2 vUv;\nuniform sampler2D map;\nuniform vec4 color;\nuniform float tolerance;\nuniform vec3 highlightColor;\nuniform float opacity;\n\nfloat colorGap(vec3 color1, vec3 color2) {\n float gap = abs(color1.r - color2.r) + abs(color1.g - color2.g) + abs(color1.b - color2.b);\n return gap;\n}\n\n// \u5224\u65AD\u50CF\u7D20\u662F\u5426\u5339\u914D\u76EE\u6807\u989C\u8272\nbool isMatchingColor(vec3 pixelColor) {\n // \u6392\u9664\u9ED1\u8272\u50CF\u7D20\n if (pixelColor.r == 0.0 && pixelColor.g == 0.0 && pixelColor.b == 0.0) {\n return false;\n }\n return colorGap(pixelColor, color.rgb) < tolerance;\n}\n\n// \u8FB9\u7F18\u68C0\u6D4B\u51FD\u6570\uFF1A\u53C2\u8003 MosaicPlugin \u5B9E\u73B0\nfloat detectEdge(sampler2D map, vec2 uv) {\n vec4 centerColor = texture2D(map, uv);\n \n // \u5F53\u524D\u50CF\u7D20\u5FC5\u987B\u5339\u914D\u76EE\u6807\u989C\u8272\n if (!isMatchingColor(centerColor.rgb)) {\n return 0.0;\n }\n \n float step = 1.0 / RESOLUTION;\n \n // \u68C0\u67E54\u4E2A\u4E3B\u8981\u65B9\u5411\u7684\u90BB\u5C45\u50CF\u7D20\n vec4 upColor = texture2D(map, uv + vec2(0.0, -step));\n vec4 leftColor = texture2D(map, uv + vec2(-step, 0.0));\n vec4 rightColor = texture2D(map, uv + vec2(step, 0.0));\n vec4 downColor = texture2D(map, uv + vec2(0.0, step));\n \n // \u53EA\u6709\u5F53\u524D\u50CF\u7D20\u5339\u914D\u989C\u8272\uFF0C\u4E14\u81F3\u5C11\u6709\u4E00\u4E2A\u90BB\u5C45\u4E0D\u5339\u914D\u65F6\uFF0C\u624D\u662F\u8FB9\u7F18\n bool hasNonMatchingNeighbor = \n !isMatchingColor(upColor.rgb) || \n !isMatchingColor(leftColor.rgb) || \n !isMatchingColor(rightColor.rgb) || \n !isMatchingColor(downColor.rgb);\n \n return hasNonMatchingNeighbor ? 1.0 : 0.0;\n}\n\nvoid main() {\n vec4 image = texture2D(map, vUv);\n \n // \u6392\u9664\u9ED1\u8272\u50CF\u7D20\n if (image.r == 0.0 && image.g == 0.0 && image.b == 0.0) {\n discard;\n }\n \n // \u8BA1\u7B97\u5F53\u524D\u50CF\u7D20\u4E0E\u76EE\u6807\u989C\u8272\u7684\u5DEE\u5F02\n float gap = colorGap(image.rgb, color.rgb);\n \n // \u4F7F\u7528\u56FA\u5B9A\u5E73\u6ED1\u8303\u56F4\u5B9E\u73B0\u989C\u8272\u5339\u914D\u8FB9\u754C\n float smoothRange = 0.01;\n \n // \u5E73\u6ED1\u7684\u989C\u8272\u5339\u914D\u56E0\u5B50\uFF080-1\uFF09\n float matchFactor = 1.0 - smoothstep(tolerance - smoothRange, tolerance + smoothRange, gap);\n \n if (matchFactor > 0.0) {\n // \u4F7F\u7528\u65B0\u7684\u8FB9\u7F18\u68C0\u6D4B\u65B9\u6CD5\n float isEdge = detectEdge(map, vUv);\n \n // \u8FB9\u7F18\u4F7F\u7528\u5B8C\u5168\u4E0D\u900F\u660E\uFF0C\u5185\u90E8\u4F7F\u7528\u8BBE\u5B9A\u7684\u900F\u660E\u5EA6\n float alpha = mix(opacity, 1.0, isEdge);\n \n // \u5E94\u7528\u5339\u914D\u56E0\u5B50\uFF08\u5E73\u6ED1\u989C\u8272\u8FB9\u754C\uFF09\n alpha *= matchFactor;\n \n gl_FragColor = vec4(highlightColor, alpha);\n } else {\n discard;\n }\n}\n";
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type PanoTagPluginController from '..';
|
|
2
|
+
import type { TagContentType, Tag as TagData, TagInstance, ArrayPosition, TagClickParams } from '../..';
|
|
3
|
+
import { BaseTag } from './BaseTag';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import type { PartialObjectDeep } from '../../../typings/typings';
|
|
6
|
+
import type { Tag } from '../..';
|
|
7
|
+
import { Polygon } from '../../../Sculpt/Objects/Polygon';
|
|
8
|
+
export type PolygonTagInterface<C extends TagContentType = TagContentType> = TagInstance<C, 'Polygon'>;
|
|
9
|
+
/**
|
|
10
|
+
* Polygon 类型的标签
|
|
11
|
+
* 使用 Sculpt Polygon 进行渲染
|
|
12
|
+
*/
|
|
13
|
+
export declare class PolygonTag<C extends TagContentType = TagContentType> extends BaseTag<C, 'Polygon'> {
|
|
14
|
+
polygonShape?: Polygon;
|
|
15
|
+
private tagStyle?;
|
|
16
|
+
private clickEventDispose?;
|
|
17
|
+
private domClickDispose?;
|
|
18
|
+
screenPosition: {
|
|
19
|
+
leftPx: number;
|
|
20
|
+
topPx: number;
|
|
21
|
+
scale: number;
|
|
22
|
+
} | null;
|
|
23
|
+
constructor(plugin: PanoTagPluginController, tagData: TagData);
|
|
24
|
+
/**
|
|
25
|
+
* 获取 Polygon 样式配置(合并用户配置和默认值)
|
|
26
|
+
*/
|
|
27
|
+
private getPolygonStyle;
|
|
28
|
+
/**
|
|
29
|
+
* 更新 Polygon 样式
|
|
30
|
+
*/
|
|
31
|
+
private updatePolygonStyle;
|
|
32
|
+
/**
|
|
33
|
+
* 更新标签数据
|
|
34
|
+
*/
|
|
35
|
+
set(tag: PartialObjectDeep<Tag<C, 'Polygon'>>, deepMerge?: boolean): void;
|
|
36
|
+
/**
|
|
37
|
+
* 获取多边形的所有角点(世界坐标)
|
|
38
|
+
*/
|
|
39
|
+
getCorners(): THREE.Vector3[];
|
|
40
|
+
getCenter(): ArrayPosition;
|
|
41
|
+
/**
|
|
42
|
+
* 计算多边形的法向量
|
|
43
|
+
* 使用前三个点来计算平面的法向量
|
|
44
|
+
*/
|
|
45
|
+
computeNormal(): THREE.Vector3 | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* 初始化 Sculpt Polygon
|
|
48
|
+
*/
|
|
49
|
+
private initializeSculptPolygon;
|
|
50
|
+
/**
|
|
51
|
+
* 设置点击事件
|
|
52
|
+
*/
|
|
53
|
+
private setupClickEvents;
|
|
54
|
+
/**
|
|
55
|
+
* 清理点击事件
|
|
56
|
+
*/
|
|
57
|
+
private cleanupClickEvents;
|
|
58
|
+
/**
|
|
59
|
+
* 更新 Sculpt Polygon 的数据
|
|
60
|
+
*/
|
|
61
|
+
private updateSculptPolygon;
|
|
62
|
+
/**
|
|
63
|
+
* 启用编辑器
|
|
64
|
+
* 用于编辑已存在的 Polygon
|
|
65
|
+
*/
|
|
66
|
+
editorEnable(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* 禁用编辑器
|
|
69
|
+
*/
|
|
70
|
+
editorDisable(): void;
|
|
71
|
+
/**
|
|
72
|
+
* 同步 Sculpt Polygon 的数据到 PolygonPosition
|
|
73
|
+
*/
|
|
74
|
+
private syncPolygonPositionFromSculpt;
|
|
75
|
+
/**
|
|
76
|
+
* @description 点击事件处理
|
|
77
|
+
*/
|
|
78
|
+
onClick(params: Pick<TagClickParams, 'target'>): void;
|
|
79
|
+
/**
|
|
80
|
+
* @description 展开自己,收起其他标签
|
|
81
|
+
*/
|
|
82
|
+
unfoldAndFoldOthers(): void;
|
|
83
|
+
/**
|
|
84
|
+
* 展开标签详情
|
|
85
|
+
*/
|
|
86
|
+
unfold(): void;
|
|
87
|
+
/**
|
|
88
|
+
* 折叠标签详情
|
|
89
|
+
*/
|
|
90
|
+
fold(): void;
|
|
91
|
+
/**
|
|
92
|
+
* 设置展开/折叠状态
|
|
93
|
+
*/
|
|
94
|
+
setUnfold(unfolded: boolean): void;
|
|
95
|
+
/**
|
|
96
|
+
* 获取多边形的中心点
|
|
97
|
+
*/
|
|
98
|
+
private getPolygonCenter;
|
|
99
|
+
/**
|
|
100
|
+
* 更新屏幕位置(用于在 2D UI 中显示内容)
|
|
101
|
+
* 显示在 Polygon 最右侧的顶点位置
|
|
102
|
+
*/
|
|
103
|
+
updateScreenPosition(): void;
|
|
104
|
+
/**
|
|
105
|
+
* 应用可见性变化
|
|
106
|
+
*/
|
|
107
|
+
applyVisible(): void;
|
|
108
|
+
/**
|
|
109
|
+
* 销毁标签
|
|
110
|
+
*/
|
|
111
|
+
dispose(): void;
|
|
112
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TagObjectGroup, TagGLTFObjectGroup, ImagePlaneGroup, TagContentType, ElementRenderer, TagRendererMap, TagContentTypeMapping } from '../typings';
|
|
2
2
|
import type { TemporaryState } from '../typings';
|
|
3
|
-
import TagContainerSvelte from '../Components/TagContainer.svelte';
|
|
3
|
+
import type TagContainerSvelte from '../Components/TagContainer.svelte';
|
|
4
4
|
import type { Five } from '@realsee/five';
|
|
5
5
|
import { TagUtil } from './TagUtil';
|
|
6
6
|
export declare abstract class TagRender extends TagUtil {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Tag, TagId, Tags, State, ContentTypeConfigKey } from '../typings';
|
|
2
2
|
import type { TagClickParams, TagConfigByKey, TagContentType } from '..';
|
|
3
3
|
import type { ArrayPosition } from '../typings';
|
|
4
|
-
import {
|
|
4
|
+
import type { Five } from '@realsee/five';
|
|
5
5
|
import { TagRender } from './TagRender';
|
|
6
6
|
import type { PartialObjectDeep } from '../../typings/typings';
|
|
7
7
|
export declare const pluginFlag: (name: string) => string;
|
|
@@ -166,6 +166,41 @@ declare class PanoTagPluginController extends TagRender {
|
|
|
166
166
|
* @returns 是否为有效的 ArrayPosition
|
|
167
167
|
*/
|
|
168
168
|
private isValidArrayPosition;
|
|
169
|
+
/**
|
|
170
|
+
* 更新当前点位的 Mask 标签
|
|
171
|
+
* Mask 标签仅在当前点位可见
|
|
172
|
+
*/
|
|
173
|
+
private updateMaskTagsForCurrentPano;
|
|
174
|
+
/**
|
|
175
|
+
* 获取所有 Mask 类型的标签
|
|
176
|
+
*/
|
|
177
|
+
get filterMaskTag(): (import("./Tag/BaseTag").BaseTag<"Panorama" | "Model" | "Custom" | "Audio" | "Text" | "ImageText" | "Image" | "Video" | "Link" | "Sticker" | "VRLink" | "PanoLink" | "Marketing" | "MediaPlane" | "MediaModel" | "Unknown", import("..").StickType> & {
|
|
178
|
+
[key: string]: any;
|
|
179
|
+
})[];
|
|
180
|
+
/**
|
|
181
|
+
* 获取 MaskTag 性能统计信息(用于性能监控和调试)
|
|
182
|
+
* @returns 性能统计信息
|
|
183
|
+
*/
|
|
184
|
+
getMaskTagPerformanceStats(): {
|
|
185
|
+
totalMaskTags: number;
|
|
186
|
+
visibleMaskTags: number;
|
|
187
|
+
textureCache: {
|
|
188
|
+
totalCached: number;
|
|
189
|
+
totalRefCount: number;
|
|
190
|
+
estimatedMemoryMB: number;
|
|
191
|
+
cacheEntries: {
|
|
192
|
+
source: string;
|
|
193
|
+
refCount: number;
|
|
194
|
+
sizeMB: number;
|
|
195
|
+
}[];
|
|
196
|
+
};
|
|
197
|
+
currentPanoIndex: number;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* 清理所有 MaskTag 纹理缓存(用于内存管理)
|
|
201
|
+
* 注意:这会释放所有纹理缓存,谨慎使用
|
|
202
|
+
*/
|
|
203
|
+
clearMaskTagCache(): void;
|
|
169
204
|
}
|
|
170
205
|
export default PanoTagPluginController;
|
|
171
206
|
export { PanoTagPluginController };
|
|
@@ -33,6 +33,15 @@ export type TagClickParams = {
|
|
|
33
33
|
} | {
|
|
34
34
|
target: 'TagPopoverContent';
|
|
35
35
|
tag: TagInstance;
|
|
36
|
+
} | {
|
|
37
|
+
target: 'TagBoxModel';
|
|
38
|
+
tag: TagInstance;
|
|
39
|
+
} | {
|
|
40
|
+
target: 'TagPolygonModel';
|
|
41
|
+
tag: TagInstance;
|
|
42
|
+
} | {
|
|
43
|
+
target: 'TagMaskModel';
|
|
44
|
+
tag: TagInstance;
|
|
36
45
|
});
|
|
37
46
|
export interface PluginEventMap extends BasePlugin.EventMap<State> {
|
|
38
47
|
loaded: () => void;
|
|
@@ -79,6 +88,7 @@ export type TagEvents<C extends TagContentType = TagContentType> = {
|
|
|
79
88
|
}) => void;
|
|
80
89
|
showPopover: () => void;
|
|
81
90
|
hidePopover: () => void;
|
|
91
|
+
positionChanged: (position: TagInstance<C>['position']) => void;
|
|
82
92
|
};
|
|
83
93
|
export interface TagCacheInterface {
|
|
84
94
|
visible?: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { State as FiveState } from '@realsee/five';
|
|
2
2
|
import type { TagConfig } from './TagConfig';
|
|
3
3
|
import type { ContentTypeMap, TagContentType } from './TagData';
|
|
4
|
-
import type { Position, TagId, StickType, TagStyle, ElementRenderer, TagConfigByKey, ContentTypeConfigKey } from './Utils';
|
|
4
|
+
import type { Position, TagId, StickType, TagStyle, ElementRenderer, TagConfigByKey, ContentTypeConfigKey, BoxPosition, PolygonPosition, MaskPosition } from './Utils';
|
|
5
5
|
import type { DeprecatedTagProperty } from '../../Archive/deprecated';
|
|
6
6
|
import type { LiteralUnion } from 'type-fest';
|
|
7
7
|
export interface Tags {
|
|
@@ -33,7 +33,7 @@ export type Tag<C extends TagContentType = TagContentType, S extends StickType =
|
|
|
33
33
|
*/
|
|
34
34
|
contentType: LiteralUnion<C, string>;
|
|
35
35
|
/** 点 */
|
|
36
|
-
position: S extends 'Plane' ? [Position, Position, Position, Position] : S extends '2DPoint' | '3DPoint' | 'Model' ? Position : Position | [Position, Position, Position, Position];
|
|
36
|
+
position: S extends 'Plane' ? [Position, Position, Position, Position] : S extends '2DPoint' | '3DPoint' | 'Model' ? Position : S extends '3DBox' ? BoxPosition : S extends 'Polygon' ? PolygonPosition : S extends 'Mask' ? MaskPosition : Position | [Position, Position, Position, Position];
|
|
37
37
|
/** 法向量 */
|
|
38
38
|
normal?: Position;
|
|
39
39
|
/** 自定义标签内容 */
|
|
@@ -52,8 +52,13 @@ export type Tag<C extends TagContentType = TagContentType, S extends StickType =
|
|
|
52
52
|
hoverEnabled?: boolean;
|
|
53
53
|
} & (S extends '3DPoint' ? {
|
|
54
54
|
normal: Position;
|
|
55
|
-
} : unknown) &
|
|
55
|
+
} : unknown) & // 三维标签需要法向量
|
|
56
|
+
(S extends 'Model' ? {
|
|
56
57
|
matrix: number[];
|
|
58
|
+
} : unknown) & // 模型标签需要模型
|
|
59
|
+
(S extends 'Mask' ? {
|
|
60
|
+
mask: string | HTMLCanvasElement;
|
|
61
|
+
color: [number, number, number] | number | string;
|
|
57
62
|
} : unknown) & {
|
|
58
63
|
[key: string]: any;
|
|
59
64
|
};
|
|
@@ -15,7 +15,34 @@ export interface MinMax {
|
|
|
15
15
|
min?: number;
|
|
16
16
|
max?: number;
|
|
17
17
|
}
|
|
18
|
-
export type StickType = '2DPoint' | '3DPoint' | 'Plane' | 'Model';
|
|
18
|
+
export type StickType = '2DPoint' | '3DPoint' | 'Plane' | 'Model' | '3DBox' | 'Polygon' | 'Mask';
|
|
19
|
+
/**
|
|
20
|
+
* 3DBox 位置定义
|
|
21
|
+
*/
|
|
22
|
+
export interface BoxPosition {
|
|
23
|
+
/** 起始点坐标 [x, y, z] */
|
|
24
|
+
start: ArrayPosition;
|
|
25
|
+
/** 结束点坐标 [x, y, z] */
|
|
26
|
+
end: ArrayPosition;
|
|
27
|
+
/** 旋转角度 [x, y, z](欧拉角) */
|
|
28
|
+
rotation: ArrayPosition;
|
|
29
|
+
}
|
|
30
|
+
/** 3DBox 标签 */
|
|
31
|
+
export type BoxTag<C extends TagContentType = TagContentType> = TagInstance<C, '3DBox'>;
|
|
32
|
+
/**
|
|
33
|
+
* Polygon 位置定义
|
|
34
|
+
* 多边形由多个点组成,至少需要 3 个点
|
|
35
|
+
*/
|
|
36
|
+
export type PolygonPosition = ArrayPosition[];
|
|
37
|
+
/** Polygon 标签 */
|
|
38
|
+
export type PolygonTag<C extends TagContentType = TagContentType> = TagInstance<C, 'Polygon'>;
|
|
39
|
+
/**
|
|
40
|
+
* Mask 位置定义
|
|
41
|
+
* Mask 标签的 position 由 mask 图和 color 计算得出,类型为普通的 Position
|
|
42
|
+
*/
|
|
43
|
+
export type MaskPosition = Position;
|
|
44
|
+
/** Mask 标签 */
|
|
45
|
+
export type MaskTag<C extends TagContentType = TagContentType> = TagInstance<C, 'Mask'>;
|
|
19
46
|
/**
|
|
20
47
|
* @description 标签 icon 动画配置
|
|
21
48
|
*/
|
|
@@ -67,6 +94,28 @@ export interface TagStyle {
|
|
|
67
94
|
*/
|
|
68
95
|
size?: 'S' | 'M' | 'L' | 'XL' | number;
|
|
69
96
|
} & TagIconUrl;
|
|
97
|
+
/** 3D Box 和Polygon样式 */
|
|
98
|
+
boxOrpolygon?: {
|
|
99
|
+
/** 填充颜色(十六进制) */
|
|
100
|
+
color?: number;
|
|
101
|
+
/** 填充透明度 0-1 */
|
|
102
|
+
opacity?: number;
|
|
103
|
+
/** 线条颜色(十六进制) */
|
|
104
|
+
lineColor?: number;
|
|
105
|
+
/** 线条宽度 */
|
|
106
|
+
lineWidth?: number;
|
|
107
|
+
};
|
|
108
|
+
/** Mask 标签样式 */
|
|
109
|
+
mask?: {
|
|
110
|
+
/** 高亮颜色(支持 RGB 数组、十六进制数字、#FFFFFF 格式字符串) */
|
|
111
|
+
color?: [number, number, number] | number | string;
|
|
112
|
+
/** 透明度 0-1,用于填充区域;描边区域始终完全不透明 */
|
|
113
|
+
opacity?: number;
|
|
114
|
+
/** 颜色匹配容差(归一化值 0-1,默认 0.001) */
|
|
115
|
+
tolerance?: number;
|
|
116
|
+
/** @deprecated 使用 color 代替 */
|
|
117
|
+
highlightColor?: [number, number, number] | number;
|
|
118
|
+
};
|
|
70
119
|
}
|
|
71
120
|
export type TagGLTFObject = GLTFObject & {
|
|
72
121
|
customID: number | string;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { TagContentType, TagInstance } from '../../typings';
|
|
2
2
|
import type { ModelTagInterface } from '../../controller/Tag/ModelTag';
|
|
3
3
|
import type { PlaneTagInterface } from '../../controller/Tag/PlaneTag';
|
|
4
|
+
import type { PolygonTagInterface } from '../../controller/Tag/PolygonTag';
|
|
5
|
+
import type { BoxTagInterface } from '../../controller/Tag/BoxTag';
|
|
6
|
+
import type { MaskTagInterface } from '../../controller/Tag/MaskTag';
|
|
4
7
|
export declare function isPlaneTag<T extends TagContentType>(tag: TagInstance<T>): tag is PlaneTagInterface<T>;
|
|
5
8
|
export declare function isPoint3DTag<T extends TagContentType>(tag: TagInstance<T>): tag is TagInstance<T, '3DPoint'>;
|
|
6
9
|
export declare function is3DTag<T extends TagContentType>(tag: TagInstance): tag is TagInstance<T, '3DPoint'> | TagInstance<T, 'Plane'>;
|
|
7
10
|
export declare function isMediaModelTag(tag: TagInstance): tag is ModelTagInterface<'MediaModel'>;
|
|
8
11
|
export declare function isModelTag(tag: TagInstance): tag is ModelTagInterface<'Model'>;
|
|
9
12
|
export declare function isMediaPlaneTag(tag: TagInstance): tag is PlaneTagInterface<'MediaModel'>;
|
|
13
|
+
export declare function isPolygonTag(tag: TagInstance): tag is PolygonTagInterface;
|
|
14
|
+
export declare function is3DBoxTag(tag: TagInstance): tag is BoxTagInterface;
|
|
15
|
+
export declare function isMaskTag(tag: TagInstance): tag is MaskTagInterface;
|