@realsee/dnalogel 3.81.21 → 3.81.23
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/CHANGELOG.md +29 -0
- package/dist/MeasurePlugin/Controller.d.ts +8 -0
- package/dist/MeasurePlugin/utils/MeasureMesh.d.ts +5 -0
- package/dist/MeasurePluginV2/Controller.d.ts +58 -0
- package/dist/MeasurePluginV2/Magnifier.d.ts +74 -0
- package/dist/MeasurePluginV2/PointHelper.d.ts +22 -0
- package/dist/MeasurePluginV2/PointOverlay.d.ts +93 -0
- package/dist/MeasurePluginV2/PointSelector.d.ts +55 -0
- package/dist/MeasurePluginV2/closeupView.d.ts +69 -0
- package/dist/MeasurePluginV2/edgeSnap.d.ts +53 -0
- package/dist/MeasurePluginV2/index.d.ts +28 -0
- package/dist/MeasurePluginV2/normalMeasure.d.ts +116 -0
- package/dist/PanoMeasurePlugin/Controller/EditController.d.ts +5 -2
- package/dist/PanoMeasurePlugin/Controller/MixedController.d.ts +3 -1
- package/dist/PanoMeasurePlugin/Controller/WatchController.d.ts +4 -0
- package/dist/PanoMeasurePlugin/Controller/index.d.ts +8 -2
- package/dist/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +5 -5
- package/dist/PanoMeasurePluginV2/Controller.d.ts +34 -0
- package/dist/PanoMeasurePluginV2/PointSelector.d.ts +32 -0
- package/dist/PanoMeasurePluginV2/controllers.d.ts +42 -0
- package/dist/PanoMeasurePluginV2/index.d.ts +8 -0
- package/dist/index.cjs.js +114 -107
- package/dist/index.d.ts +2 -0
- package/dist/index.js +10365 -9054
- package/dist/index.umd.js +107 -100
- package/dist/shared-utils/three/Magnifier.d.ts +73 -0
- package/dist/shared-utils/three/PointSelector/index.d.ts +16 -7
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/AnimationScriptAdapterSafetyError.html +2 -2
- package/docs/classes/AreaMakerPluginType.AreaMakerController.html +2 -2
- package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +2 -2
- package/docs/classes/CSS3DRender.html +2 -2
- package/docs/classes/DigitalHuman.html +2 -2
- package/docs/classes/DigitalPerformanceV2.DigitalPerformanceNameplate.html +2 -2
- package/docs/classes/DigitalPerformanceV2.DigitalPerformanceV2PluginController.html +2 -2
- package/docs/classes/DigitalPlayground.html +2 -2
- package/docs/classes/DigitalStateMachine.html +2 -2
- package/docs/classes/FireControl.html +2 -2
- package/docs/classes/FireScenePlayer.html +2 -2
- package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
- package/docs/classes/MeasureV2.EdgeSnapCache.html +8 -0
- package/docs/classes/MeasureV2.MeasureControllerV2.html +77 -0
- package/docs/classes/MeasureV2.MeasureMagnifier.html +50 -0
- package/docs/classes/ModelMakerPluginInstance.html +2 -2
- package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +15 -15
- package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +15 -15
- package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +15 -15
- package/docs/classes/ModelRoomLabelController.html +2 -2
- package/docs/classes/MoveController.html +2 -2
- package/docs/classes/Object3DHelperController.html +2 -2
- package/docs/classes/PaintBrush.html +2 -2
- package/docs/classes/PanoMeasureControllerV2.html +94 -0
- package/docs/classes/PanoMeasurePluginLine.html +2 -2
- package/docs/classes/PanoMeasurePluginModel.html +2 -2
- package/docs/classes/PanoMeasurePluginPoint.html +2 -2
- package/docs/classes/PanoMeasurePluginPolyline.html +2 -2
- package/docs/classes/PanoTagPluginController.html +2 -2
- package/docs/classes/Sculpt.html +15 -15
- package/docs/classes/Util.BetterTween.html +2 -2
- package/docs/classes/Util.FiveDomEvents.html +2 -2
- package/docs/classes/Util.FivePuppet.html +2 -2
- package/docs/classes/Util.Interval.html +2 -2
- package/docs/classes/Util.LegacyPointHelper.html +2 -2
- package/docs/classes/Util.LightTag.html +2 -2
- package/docs/classes/Util.LineSegments.html +2 -2
- package/docs/classes/Util.Magnifier.html +20 -8
- package/docs/classes/Util.Object3D.html +2 -2
- package/docs/classes/Util.PointDomHelper.html +2 -2
- package/docs/classes/Util.PointHelper.html +2 -2
- package/docs/classes/Util.PointSelector.html +15 -15
- package/docs/classes/Util.PointSelectorHelper.html +2 -2
- package/docs/classes/Util.Rectangle.html +2 -2
- package/docs/classes/Util.sculpt.BaseEditor.html +2 -2
- package/docs/classes/Util.sculpt.BoxMesh.html +2 -2
- package/docs/classes/Util.sculpt.BoxMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.CircleMesh.html +2 -2
- package/docs/classes/Util.sculpt.CircleMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +2 -2
- package/docs/classes/Util.sculpt.CylinderMesh.html +2 -2
- package/docs/classes/Util.sculpt.CylinderMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.LineMesh.html +2 -2
- package/docs/classes/Util.sculpt.PointMesh.html +2 -2
- package/docs/classes/Util.sculpt.PolygonMesh.html +2 -2
- package/docs/classes/Util.sculpt.PrismMesh.html +2 -2
- package/docs/classes/Util.sculpt.PrismMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.RectangleMesh.html +2 -2
- package/docs/classes/Util.sculpt.RectangleMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +2 -2
- package/docs/classes/WalkController.html +2 -2
- package/docs/enums/CameraMovementEffect.html +2 -2
- package/docs/enums/ContentType.html +2 -2
- package/docs/enums/DIRECTION.html +2 -2
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +2 -2
- package/docs/enums/DimensionType.html +2 -2
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +2 -2
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +2 -2
- package/docs/enums/PaintBrushTypeEnum.html +2 -2
- package/docs/enums/PointType.html +2 -2
- package/docs/enums/Rotation.html +2 -2
- package/docs/functions/AreaMakerPlugin.html +1 -1
- package/docs/functions/CSS3DRenderPlugin.html +1 -1
- package/docs/functions/CameraMovementPlugin.html +2 -2
- package/docs/functions/CruisePlugin.html +1 -1
- package/docs/functions/CurrentPanoImagePlugin.html +1 -1
- package/docs/functions/DigitalPerformancePlugin.html +1 -1
- package/docs/functions/DigitalPerformanceV2.DigitalPerformanceV2Plugin.html +1 -1
- package/docs/functions/DigitalPerformanceV2.normalizeDigitalPerformanceName.html +2 -2
- package/docs/functions/FloorplanGuidePlugin.html +1 -1
- package/docs/functions/GuideLinePlugin.html +1 -1
- package/docs/functions/ItemLabelPlugin.html +1 -1
- package/docs/functions/MapviewFloorplanPlugin.html +1 -1
- package/docs/functions/MeasurePlugin.html +1 -1
- package/docs/functions/MeasureV2.MeasurePluginV2.html +1 -0
- package/docs/functions/MeasureV2.collectNearbyEdges.html +5 -0
- package/docs/functions/MeasureV2.drawMeasureOverlay.html +3 -0
- package/docs/functions/MeasureV2.getWorldNormal.html +6 -0
- package/docs/functions/MeasureV2.validatePolygon.html +1 -0
- package/docs/functions/ModelChassisCompassPlugin.html +2 -2
- package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -2
- package/docs/functions/ModelFloorplanPlugin.html +1 -1
- package/docs/functions/ModelItemLabelPlugin.html +1 -1
- package/docs/functions/ModelMakerPlugin.html +1 -1
- package/docs/functions/ModelRoomLabelPlugin.html +1 -1
- package/docs/functions/ModelTVVideoPlugin.html +1 -1
- package/docs/functions/ModelViewPlugin.html +2 -2
- package/docs/functions/MovePlugin.html +1 -1
- package/docs/functions/Object3DHelperPlugin.html +1 -1
- package/docs/functions/PanoCompassPlugin.html +1 -1
- package/docs/functions/PanoCursorRaycasterPlugin.html +2 -2
- package/docs/functions/PanoDoorLabelPlugin.html +1 -1
- package/docs/functions/PanoFloorplanRadarPlugin.html +1 -1
- package/docs/functions/PanoMeasurePlugin.html +1 -1
- package/docs/functions/PanoMeasurePluginV2.html +1 -0
- package/docs/functions/PanoRulerPlugin.html +2 -2
- package/docs/functions/PanoRulerProPlugin.html +2 -2
- package/docs/functions/PanoSpatialTagPlugin.html +2 -2
- package/docs/functions/PanoTagPlugin.html +1 -1
- package/docs/functions/PanoVideoPlugin.html +2 -2
- package/docs/functions/PipelinePlugin.html +1 -1
- package/docs/functions/SculptPlugin.html +2 -2
- package/docs/functions/SculptPluginForFive.html +2 -2
- package/docs/functions/TopviewFloorplanPlugin.html +1 -1
- package/docs/functions/Util.awaitNextFrame.html +1 -1
- package/docs/functions/Util.blink.html +2 -2
- package/docs/functions/Util.blinkWithPreset.html +2 -2
- package/docs/functions/Util.bounding.html +1 -1
- package/docs/functions/Util.boundingBox.html +1 -1
- package/docs/functions/Util.boundingSphere.html +1 -1
- package/docs/functions/Util.boxVertex.html +2 -2
- package/docs/functions/Util.boxVertexes.html +1 -1
- package/docs/functions/Util.checkFiveModelLoaded.html +2 -2
- package/docs/functions/Util.cleanup.html +2 -2
- package/docs/functions/Util.convexHull.html +2 -2
- package/docs/functions/Util.equal.html +2 -2
- package/docs/functions/Util.fiveModelIsLoaded.html +2 -2
- package/docs/functions/Util.generatePolygonGeometry.html +2 -2
- package/docs/functions/Util.getCoordsFromClient.html +1 -1
- package/docs/functions/Util.getCoordsFromElement.html +1 -1
- package/docs/functions/Util.getFrameTime.html +2 -2
- package/docs/functions/Util.getGeometryArea.html +1 -1
- package/docs/functions/Util.getGeometryInfo.html +1 -1
- package/docs/functions/Util.getIntersectFromRelativePosition.html +1 -1
- package/docs/functions/Util.getRaycasterFromFivePointer.html +1 -1
- package/docs/functions/Util.initialCSS3DRender.html +1 -1
- package/docs/functions/Util.inside.html +1 -1
- package/docs/functions/Util.isModelLike.html +1 -1
- package/docs/functions/Util.isNil.html +2 -2
- package/docs/functions/Util.isPanoramaLike.html +1 -1
- package/docs/functions/Util.lookObject.html +2 -2
- package/docs/functions/Util.lookPoint.html +2 -2
- package/docs/functions/Util.nextFrame.html +1 -1
- package/docs/functions/Util.notNil.html +2 -2
- package/docs/functions/Util.reblink.html +2 -2
- package/docs/functions/Util.replaceStaticPrefix.html +2 -2
- package/docs/functions/Util.requestAnimationFrameInterval.html +2 -2
- package/docs/functions/Util.sculpt.createBox.html +1 -1
- package/docs/functions/Util.sculpt.createCircle.html +1 -1
- package/docs/functions/Util.sculpt.createCylinder.html +1 -1
- package/docs/functions/Util.sculpt.createLine.html +2 -2
- package/docs/functions/Util.sculpt.createPoint.html +1 -1
- package/docs/functions/Util.sculpt.createPolygon.html +1 -1
- package/docs/functions/Util.sculpt.createPrism.html +1 -1
- package/docs/functions/Util.sculpt.createRectangle.html +2 -2
- package/docs/functions/Util.sculpt.transformUnit.html +2 -2
- package/docs/functions/Util.sculpt.transformUnitSquare.html +1 -1
- package/docs/functions/Util.tag.html +1 -1
- package/docs/functions/Util.triangleArea.html +2 -2
- package/docs/functions/Util.triangleCenter.html +2 -2
- package/docs/functions/Util.tweenProgress.html +1 -1
- package/docs/functions/Util.uuid.html +2 -2
- package/docs/functions/Util.waitFiveModelLoaded.html +2 -2
- package/docs/functions/Util.worldBounding.html +1 -1
- package/docs/functions/Util.worldBoundingBox.html +1 -1
- package/docs/functions/Util.worldBoundingSphere.html +1 -1
- package/docs/functions/classifyMovementTrack.html +1 -1
- package/docs/functions/createPolyline.html +2 -2
- package/docs/functions/getAreaBox3.html +2 -2
- package/docs/functions/getAreaVertices.html +2 -2
- package/docs/functions/getEffectivePointActionDuration.html +1 -1
- package/docs/functions/getEntryArea.html +2 -2
- package/docs/functions/getMovementActionDuration.html +1 -1
- package/docs/functions/hasMovementV2Signal.html +1 -1
- package/docs/functions/isConverterSafeMovementMatrix.html +1 -1
- package/docs/functions/pluginFlag.html +1 -1
- package/docs/functions/transformAnimationDetailToDigitalScript.html +2 -2
- package/docs/functions/transformScriptData.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +2 -2
- package/docs/interfaces/AnimationScriptAdapterOptions.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.Config.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.EventMap.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.Params.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.State.html +2 -2
- package/docs/interfaces/BoxAnimationConfig.html +2 -2
- package/docs/interfaces/BoxPosition.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/ChapterLocation.html +2 -2
- package/docs/interfaces/ChapterTimeInfo.html +2 -2
- package/docs/interfaces/ContentTypeMapInterface.html +2 -2
- package/docs/interfaces/CruisePluginTypes.Config.html +2 -2
- package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +2 -2
- package/docs/interfaces/CruisePluginTypes.EventMap.html +2 -2
- package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginData.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginState.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.Config.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.Params.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.State.html +2 -2
- package/docs/interfaces/DigitalCameraKeyframe.html +2 -2
- package/docs/interfaces/DigitalCameraPlayer.html +2 -2
- package/docs/interfaces/DigitalCameraState.html +2 -2
- package/docs/interfaces/DigitalChapter.html +2 -2
- package/docs/interfaces/DigitalDataPlayer.html +2 -2
- package/docs/interfaces/DigitalDataState.html +2 -2
- package/docs/interfaces/DigitalEffectKeyframe.html +2 -2
- package/docs/interfaces/DigitalEffectState.html +2 -2
- package/docs/interfaces/DigitalItemKeyframe.html +2 -2
- package/docs/interfaces/DigitalItemState.html +2 -2
- package/docs/interfaces/DigitalModelKeyframe.html +2 -2
- package/docs/interfaces/DigitalModelPlayer.html +2 -2
- package/docs/interfaces/DigitalModelPlayerEffect.html +2 -2
- package/docs/interfaces/DigitalModelPlayerItem.html +2 -2
- package/docs/interfaces/DigitalModelState.html +2 -2
- package/docs/interfaces/DigitalPerformancePluginConfig.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.CameraState.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.DigitalCameraKeyframe.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.DigitalCameraPlayer.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceNameplateBinding.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceNameplateOptions.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceNameplateRenderContext.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceV2PluginConfig.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.GroupChapterTimeInfo.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.GroupProgress.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.V2Progress.html +2 -2
- package/docs/interfaces/DigitalScript.html +2 -2
- package/docs/interfaces/DigitalSubTitleKeyframe.html +2 -2
- package/docs/interfaces/DigitalSubTitlePlayer.html +2 -2
- package/docs/interfaces/DigitalSubTitleState.html +2 -2
- package/docs/interfaces/ExtendedAnimationConfig.html +2 -2
- package/docs/interfaces/FireArea.html +2 -2
- package/docs/interfaces/FireModel.html +2 -2
- package/docs/interfaces/FireSceneConfig.html +2 -2
- package/docs/interfaces/FireSequencePlayerOptions.html +2 -2
- package/docs/interfaces/FireSequenceStep.html +2 -2
- package/docs/interfaces/FireVector3.html +2 -2
- package/docs/interfaces/FloorplanBounding.html +2 -2
- package/docs/interfaces/FloorplanData.html +2 -2
- package/docs/interfaces/FloorplanEntrance.html +2 -2
- package/docs/interfaces/FloorplanExtraObject.html +2 -2
- 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 +2 -2
- package/docs/interfaces/FloorplanRoomLabelItem.html +2 -2
- package/docs/interfaces/FloorplanServerBounding.html +2 -2
- package/docs/interfaces/FloorplanServerComputedData.html +2 -2
- package/docs/interfaces/FloorplanServerData.html +2 -2
- package/docs/interfaces/FloorplanServerDoorItem.html +2 -2
- package/docs/interfaces/FloorplanServerDoorPosition.html +2 -2
- package/docs/interfaces/FloorplanServerEntrance.html +2 -2
- 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 +2 -2
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +2 -2
- package/docs/interfaces/FloorplanServerStyledFloorplan.html +2 -2
- package/docs/interfaces/FloorplanServerStyledImage.html +2 -2
- package/docs/interfaces/GlobalProgress.html +2 -2
- package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +2 -2
- package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +2 -2
- package/docs/interfaces/GuideLinePluginType.EventMap.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -1
- package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PluginState.html +2 -2
- package/docs/interfaces/GuideLinePluginType.Route.html +2 -2
- package/docs/interfaces/HelperOffset.html +2 -2
- package/docs/interfaces/ImagePlaneGroup.html +2 -2
- package/docs/interfaces/ItemLabelPluginData.html +2 -2
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +2 -2
- package/docs/interfaces/ItemLabelPluginParametersType.html +2 -2
- package/docs/interfaces/LegacyScriptTransformer.html +2 -2
- package/docs/interfaces/MeasureV2.EdgeSnapOptions.html +19 -0
- package/docs/interfaces/MeasureV2.MagnifierViewport.html +20 -0
- package/docs/interfaces/MeasureV2.MeasureMagnifierOptions.html +28 -0
- package/docs/interfaces/MeasureV2.ResolvedEdgeSnapOptions.html +11 -0
- package/docs/interfaces/MinMax.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginData.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +2 -2
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +2 -2
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginData.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.EventMap.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ModelMakerPluginConfig.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerData.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.State.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +2 -2
- package/docs/interfaces/ModelRoomLabelPluginData.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginData.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginExportType.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -2
- package/docs/interfaces/ModelViewPluginExportType.html +2 -2
- package/docs/interfaces/Object3DHelperState.html +2 -2
- package/docs/interfaces/ObjectHelperControllers.html +2 -2
- package/docs/interfaces/PaintBrushAction.html +2 -2
- package/docs/interfaces/PaintBrushConfigs.html +2 -2
- package/docs/interfaces/PaintBrushState.html +2 -2
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +2 -2
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
- package/docs/interfaces/PanoMeasureParameterType.html +2 -2
- package/docs/interfaces/PanoMeasurePluginLineJson.html +2 -2
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +2 -2
- package/docs/interfaces/PanoMeasurePluginPointJson.html +2 -2
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +2 -2
- package/docs/interfaces/PanoMeasurePluginV2Data.html +2 -0
- package/docs/interfaces/PanoMeasurePluginV2ServerData.html +2 -0
- package/docs/interfaces/PanoRulerPluginExportType.html +2 -2
- package/docs/interfaces/PanoRulerPluginOptions.html +2 -2
- package/docs/interfaces/PanoRulerPluginParameterType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginExportType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginOptions.html +2 -2
- package/docs/interfaces/PanoRulerProPluginParameterType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginState.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginData.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.LoadParams.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.VideoItem.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +2 -2
- package/docs/interfaces/PlaybackController.html +2 -2
- package/docs/interfaces/PlaybackManager.html +2 -2
- package/docs/interfaces/PlaybackSession.html +2 -2
- package/docs/interfaces/PluginEventMap.html +2 -2
- package/docs/interfaces/Point.html +2 -2
- package/docs/interfaces/ProgressBarEvents.html +2 -2
- package/docs/interfaces/Room.html +2 -2
- package/docs/interfaces/RoomInfo.html +2 -2
- package/docs/interfaces/RoomLabel.html +2 -2
- package/docs/interfaces/RoomRules.html +1 -1
- package/docs/interfaces/Rooms.html +1 -1
- package/docs/interfaces/Scissor.html +2 -2
- package/docs/interfaces/SculptConfig.html +2 -2
- package/docs/interfaces/State.html +2 -2
- package/docs/interfaces/StyledFloorplan.html +2 -2
- package/docs/interfaces/StyledFloorplanImage.html +2 -2
- package/docs/interfaces/StyledFloorplanRoomLabel.html +2 -2
- package/docs/interfaces/TagCacheInterface.html +2 -2
- package/docs/interfaces/TagConfig.html +2 -2
- package/docs/interfaces/TagGLTFObjectGroup.html +2 -2
- package/docs/interfaces/TagIconAnimationConfig.html +2 -2
- package/docs/interfaces/TagIconUrl.html +2 -2
- package/docs/interfaces/TagObjectGroup.html +2 -2
- package/docs/interfaces/TagState.html +2 -2
- package/docs/interfaces/TagStyle.html +2 -2
- package/docs/interfaces/Tags.html +2 -2
- package/docs/interfaces/TemporaryState.html +2 -2
- package/docs/interfaces/TraceManager.html +2 -2
- package/docs/interfaces/TracePoint.html +2 -2
- package/docs/interfaces/Util.AdaptiveReadWindowOptions.html +10 -0
- package/docs/interfaces/Util.AnimeInstance.html +2 -2
- package/docs/interfaces/Util.BlinkAnimeOptions.html +2 -2
- package/docs/interfaces/Util.EventHandlerConfig.html +2 -2
- package/docs/interfaces/Util.FiveDomEvent.html +2 -2
- package/docs/interfaces/Util.FiveDomEventMap.html +2 -2
- package/docs/interfaces/Util.LegacyMouseGroupParameter.html +2 -2
- package/docs/interfaces/Util.MagnifierParameter.html +15 -6
- package/docs/interfaces/Util.MouseGroupParameter.html +2 -2
- package/docs/interfaces/Util.ObjectInitialState.html +2 -2
- package/docs/interfaces/Util.PointIntersection.html +2 -2
- package/docs/interfaces/Util.PointSelectorHelperConfig.html +2 -2
- package/docs/interfaces/Util.ReBlinkAnimeOptions.html +2 -2
- package/docs/modules/AreaMakerPluginType.html +2 -2
- package/docs/modules/CruisePluginTypes.html +2 -2
- package/docs/modules/CurrentPanoImagePluginType.html +2 -2
- package/docs/modules/DigitalPerformanceV2.html +2 -2
- package/docs/modules/GuideLineItem.html +2 -2
- package/docs/modules/GuideLineModeItem.html +2 -2
- package/docs/modules/GuideLinePluginType.html +2 -2
- package/docs/modules/MeasureV2.html +22 -0
- package/docs/modules/ModelMakerPluginType.html +2 -2
- package/docs/modules/PanoVideoPluginType.html +2 -2
- package/docs/modules/SculptData.html +2 -2
- package/docs/modules/SculptType.html +2 -2
- package/docs/modules/Util.html +4 -3
- package/docs/modules/Util.sculpt.html +2 -2
- package/docs/modules.html +13 -6
- package/docs/types/AddObject3DHelperConfig.html +2 -2
- package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +2 -2
- package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -1
- package/docs/types/AreaMakerPluginType.PluginData.html +2 -2
- package/docs/types/AreaMakerPluginType.ServerData.html +2 -2
- package/docs/types/ArrayPosition.html +1 -1
- package/docs/types/AudioAppearance.html +1 -1
- package/docs/types/BoxTag.html +2 -2
- package/docs/types/CSS3DRenderExportType.html +1 -1
- package/docs/types/CSS3DRenderPluginExportType.html +1 -1
- package/docs/types/CSS3DRenderPluginParameterType.html +1 -1
- package/docs/types/CanonicalMovementTrackPlan.html +1 -1
- package/docs/types/ClassFunctionParameters.html +1 -1
- package/docs/types/Color.html +1 -1
- package/docs/types/ContentTypeConfigKey.html +1 -1
- package/docs/types/ContentTypeConfigKeySplit.html +1 -1
- package/docs/types/ContentTypeMap.html +1 -1
- package/docs/types/Create3DDomContainerReturnType.html +1 -1
- package/docs/types/Create3DElementReturnType.html +1 -1
- package/docs/types/CruisePluginExportType.html +1 -1
- package/docs/types/CruisePluginTypes.CruiseData.html +2 -2
- package/docs/types/CruisePluginTypes.MoveEffect.html +1 -1
- package/docs/types/CurrentPanoImagePluginExportType.html +1 -1
- package/docs/types/DeprecatedMediaPlaneProperty.html +2 -2
- package/docs/types/DeprecatedTagProperty.html +2 -2
- package/docs/types/DigitalPerformancePluginExportInterface.html +1 -1
- package/docs/types/DigitalPerformancePluginParamsInterface.html +1 -1
- package/docs/types/DigitalPerformanceV2.CameraCoordinateSpace.html +2 -2
- package/docs/types/DigitalPerformanceV2.CameraTransition.html +2 -2
- package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginExportInterface.html +1 -1
- package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginParamsInterface.html +1 -1
- package/docs/types/DigitalPerformanceV2.V2ProgressListener.html +1 -1
- package/docs/types/Direction-1.html +1 -1
- package/docs/types/Direction4.html +1 -1
- package/docs/types/ElementRenderer.html +2 -2
- package/docs/types/FireModelType.html +2 -2
- package/docs/types/FireSequenceKind.html +2 -2
- package/docs/types/FireSpreadBounds.html +2 -2
- package/docs/types/FloorplanAffineTransform.html +1 -1
- package/docs/types/FloorplanGuidePluginParameterType.html +1 -1
- package/docs/types/FloorplanGuidePluginReturnType.html +1 -1
- package/docs/types/FloorplanRuleLabels.html +2 -2
- package/docs/types/FloorplanServerAffineTransform.html +1 -1
- package/docs/types/FloorplanServerRuleLabels.html +1 -1
- package/docs/types/GuideLinePluginExportType.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -2
- package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -2
- package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -2
- package/docs/types/GuideLinePluginType.PathItem.html +2 -2
- package/docs/types/GuideLinePluginType.PluginData.html +2 -2
- package/docs/types/GuideLinePluginType.RouteConfig.html +2 -2
- package/docs/types/HelperEventMap.html +1 -1
- package/docs/types/InternalHelperEventMap.html +1 -1
- package/docs/types/KeyframeType.html +1 -1
- package/docs/types/MapviewFloorplanPluginParameterType.html +1 -1
- package/docs/types/MapviewFloorplanPluginReturnType.html +1 -1
- package/docs/types/MaskPosition.html +2 -2
- package/docs/types/MaskTag.html +2 -2
- package/docs/types/MeasureInteractionState.html +2 -2
- package/docs/types/MeasureV2.MeasureControllerV2Interface.html +1 -0
- package/docs/types/MeasureV2.MeasureEndReason.html +1 -0
- package/docs/types/{MeasurePluginConfig.html → MeasureV2.MeasurePluginConfig.html} +2 -2
- package/docs/types/MeasureV2.MeasurePluginEventMap.html +1 -0
- package/docs/types/MeasureV2.MeasurePluginV2Config.html +6 -0
- package/docs/types/MeasureV2.MeasurePluginV2ParamsInterface.html +1 -0
- package/docs/types/MediaData.html +2 -2
- package/docs/types/MediaOperations.html +1 -1
- package/docs/types/MediaStore.html +1 -1
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -1
- package/docs/types/ModelFloorplanPluginParameterType.html +1 -1
- package/docs/types/ModelFloorplanPluginReturnType.html +1 -1
- package/docs/types/ModelId.html +1 -1
- package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -1
- package/docs/types/ModelMakerPluginType.ItemType.html +2 -2
- package/docs/types/ModelMakerPluginType.MarkerItem.html +1 -1
- package/docs/types/ModelMakerPluginType.ServerItem.html +2 -2
- package/docs/types/ModelMakerPluginType.TagOcclusionScope.html +2 -2
- package/docs/types/ModelMakerPluginType.TagOcclusionScopeConfig.html +2 -2
- package/docs/types/ModelRoomLabelPluginParameters.html +1 -1
- package/docs/types/ModelRoomLabelPluginReturnType.html +1 -1
- package/docs/types/MoveArgs.html +2 -2
- package/docs/types/MoveOpts.html +2 -2
- package/docs/types/MovementConfig.html +1 -1
- package/docs/types/MovementPosition.html +1 -1
- package/docs/types/MovementTrackClassification.html +1 -1
- package/docs/types/MovementTrackConflictReason.html +1 -1
- package/docs/types/MovementTrackProjection.html +1 -1
- package/docs/types/Object3DHelperEventMap.html +1 -1
- package/docs/types/ObjectFit.html +1 -1
- package/docs/types/PaintBrushEventMap.html +1 -1
- package/docs/types/PanoCompassPluginData.html +1 -1
- package/docs/types/PanoCompassPluginExportType.html +1 -1
- package/docs/types/PanoCompassPluginParameterType.html +1 -1
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -1
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -1
- package/docs/types/PanoIndex.html +1 -1
- package/docs/types/PanoMeasurePluginEvent.html +1 -1
- package/docs/types/PanoMeasurePluginV2Config.html +1 -0
- package/docs/types/PanoMeasurePluginV2Instance.html +1 -0
- package/docs/types/PanoMeasureReturnType.html +1 -1
- package/docs/types/PanoSpatialTagPluginId.html +1 -1
- package/docs/types/PanoTagPluginExportInterface.html +1 -1
- package/docs/types/PanoTagPluginParamsInterface.html +1 -1
- package/docs/types/PanoVideoPluginParameterType.html +1 -1
- package/docs/types/PanoVideoPluginReturnType.html +1 -1
- package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -2
- package/docs/types/PipelinePluginParameterType.html +1 -1
- package/docs/types/PipelinePluginReturnType.html +1 -1
- package/docs/types/PlaneTag.html +2 -2
- package/docs/types/Point2DTag.html +2 -2
- package/docs/types/Point3DTag.html +2 -2
- package/docs/types/PointAction.html +1 -1
- package/docs/types/PointTagInstance.html +1 -1
- package/docs/types/PolygonPosition.html +2 -2
- package/docs/types/PolygonTag.html +2 -2
- package/docs/types/Position.html +1 -1
- package/docs/types/PositionFrom.html +1 -1
- package/docs/types/ProgressListener.html +1 -1
- package/docs/types/RotateArgs.html +2 -2
- package/docs/types/RotateOpts.html +2 -2
- package/docs/types/RuleLabelsKey.html +1 -1
- package/docs/types/RuleLabelsValue.html +1 -1
- package/docs/types/ScaleCallback.html +1 -1
- package/docs/types/ScalePosition.html +2 -2
- package/docs/types/SculptData.BoxData.html +1 -1
- package/docs/types/SculptData.CircleData.html +1 -1
- package/docs/types/SculptData.CylinderData.html +1 -1
- package/docs/types/SculptData.PointData.html +1 -1
- package/docs/types/SculptData.PolygonData.html +1 -1
- package/docs/types/SculptData.PolylineData.html +1 -1
- package/docs/types/SculptData.PrismData.html +1 -1
- package/docs/types/SculptData.RectangleData.html +1 -1
- package/docs/types/SculptType.Theme.html +2 -2
- package/docs/types/StateType.html +1 -1
- package/docs/types/StickType.html +1 -1
- package/docs/types/Tag.html +2 -2
- package/docs/types/Tag2D.html +2 -2
- package/docs/types/Tag3D.html +2 -2
- package/docs/types/TagClickParams.html +1 -1
- package/docs/types/TagConfigByKey.html +1 -1
- package/docs/types/TagContentType.html +1 -1
- package/docs/types/TagContentTypeMapping.html +1 -1
- package/docs/types/TagDimensionType.html +1 -1
- package/docs/types/TagElement.html +2 -2
- package/docs/types/TagEvents.html +1 -1
- package/docs/types/TagGLTFObject.html +1 -1
- package/docs/types/TagHooks.html +1 -1
- package/docs/types/TagId.html +1 -1
- package/docs/types/TagInstance.html +1 -1
- package/docs/types/TagPlacement.html +2 -2
- package/docs/types/TagPointType.html +2 -2
- package/docs/types/TagRendererMap.html +1 -1
- package/docs/types/TopviewFloorplanPluginParameterType.html +1 -1
- package/docs/types/TopviewFloorplanPluginReturnType.html +1 -1
- package/docs/types/TrackPoint.html +1 -1
- package/docs/types/Util.ActionIfNoIntersection.html +1 -1
- package/docs/types/Util.AdherePoint.html +2 -2
- package/docs/types/Util.PointSelectorConfig.html +1 -1
- package/docs/types/Util.SupportedTarget.html +2 -2
- package/docs/types/Util.Target.html +2 -2
- package/docs/types/Util.ThreeObject.html +2 -2
- package/docs/types/WorkCode.html +1 -1
- package/docs/variables/DigitalPerformanceV2.DEFAULT_DIGITAL_PERFORMANCE_NAME_MAX_LENGTH.html +1 -1
- package/docs/variables/FIRE_ACTION_DURATION_MS.html +2 -2
- package/docs/variables/FIRE_SPREAD_SPEED.html +2 -2
- package/docs/variables/FLOOR_TYPE_MAP.html +2 -2
- package/docs/variables/MODEL_SCALE_RANGE.html +2 -2
- package/docs/variables/MOVEMENT_OCCURRENCE_EPSILON.html +1 -1
- package/docs/variables/MOVEMENT_POSITION_EPSILON.html +1 -1
- package/docs/variables/MOVEMENT_SCHEMA_VERSION.html +1 -1
- package/docs/variables/MeasureV2.DEFAULT_EDGE_SNAP_OPTIONS.html +1 -0
- package/docs/variables/MeasureV2.OVERLAY_STYLE.html +14 -0
- package/docs/variables/PLUGIN.html +1 -1
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -2
- package/docs/variables/ROOM_TYPE_MAP.html +2 -2
- package/docs/variables/Util.ANIME_PRESETS.html +2 -2
- package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +2 -2
- package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +2 -2
- package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +2 -2
- package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +2 -2
- package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +2 -2
- package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +2 -2
- package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +2 -2
- package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +2 -2
- package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +2 -2
- package/docs/variables/defaultGlobalConfig.html +1 -1
- package/docs/variables/itemLabelPluginServerParams.html +1 -1
- package/docs/variables/modelItemLabelPluginServerParams.html +1 -1
- package/docs/variables/modelRoomLabelPluginServerParams.html +1 -1
- package/libs/MeasurePlugin/Controller.d.ts +8 -0
- package/libs/MeasurePlugin/Controller.js +130 -110
- package/libs/MeasurePlugin/utils/MeasureMesh.d.ts +5 -0
- package/libs/MeasurePlugin/utils/MeasureMesh.js +17 -13
- package/libs/MeasurePluginV2/Controller.d.ts +58 -0
- package/libs/MeasurePluginV2/Controller.js +125 -0
- package/libs/MeasurePluginV2/Magnifier.d.ts +74 -0
- package/libs/MeasurePluginV2/Magnifier.js +175 -0
- package/libs/MeasurePluginV2/PointHelper.d.ts +22 -0
- package/libs/MeasurePluginV2/PointHelper.js +63 -0
- package/libs/MeasurePluginV2/PointOverlay.d.ts +93 -0
- package/libs/MeasurePluginV2/PointOverlay.js +160 -0
- package/libs/MeasurePluginV2/PointSelector.d.ts +55 -0
- package/libs/MeasurePluginV2/PointSelector.js +239 -0
- package/libs/MeasurePluginV2/closeupView.d.ts +69 -0
- package/libs/MeasurePluginV2/closeupView.js +52 -0
- package/libs/MeasurePluginV2/edgeSnap.d.ts +53 -0
- package/libs/MeasurePluginV2/edgeSnap.js +67 -0
- package/libs/MeasurePluginV2/index.d.ts +28 -0
- package/libs/MeasurePluginV2/index.js +38 -0
- package/libs/MeasurePluginV2/normalMeasure.d.ts +116 -0
- package/libs/MeasurePluginV2/normalMeasure.js +110 -0
- package/libs/PanoMeasurePlugin/Controller/EditController.d.ts +5 -2
- package/libs/PanoMeasurePlugin/Controller/EditController.js +31 -25
- package/libs/PanoMeasurePlugin/Controller/MixedController.d.ts +3 -1
- package/libs/PanoMeasurePlugin/Controller/MixedController.js +14 -11
- package/libs/PanoMeasurePlugin/Controller/WatchController.d.ts +4 -0
- package/libs/PanoMeasurePlugin/Controller/WatchController.js +23 -18
- package/libs/PanoMeasurePlugin/Controller/index.d.ts +8 -2
- package/libs/PanoMeasurePlugin/Controller/index.js +15 -5
- package/libs/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +5 -5
- package/libs/PanoMeasurePlugin/Modules/rangePiece/index.js +32 -32
- package/libs/PanoMeasurePluginV2/Controller.d.ts +34 -0
- package/libs/PanoMeasurePluginV2/Controller.js +120 -0
- package/libs/PanoMeasurePluginV2/PointSelector.d.ts +32 -0
- package/libs/PanoMeasurePluginV2/PointSelector.js +88 -0
- package/libs/PanoMeasurePluginV2/controllers.d.ts +42 -0
- package/libs/PanoMeasurePluginV2/controllers.js +107 -0
- package/libs/PanoMeasurePluginV2/index.d.ts +8 -0
- package/libs/PanoMeasurePluginV2/index.js +5 -0
- package/libs/base/BasePlugin.js +1 -1
- package/libs/index.d.ts +2 -0
- package/libs/index.js +206 -190
- package/libs/shared-utils/logger.js +1 -1
- package/libs/shared-utils/three/Magnifier.d.ts +73 -0
- package/libs/shared-utils/three/Magnifier.js +215 -94
- package/libs/shared-utils/three/PointSelector/index.d.ts +16 -7
- package/package.json +1 -1
- package/docs/functions/validatePolygon.html +0 -1
- package/docs/types/MeasureEndReason.html +0 -1
- package/docs/types/MeasurePluginEventMap.html +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,33 @@
|
|
|
1
|
+
## 3.81.23
|
|
2
|
+
|
|
3
|
+
- 放大镜新增近景视角、近景旋转取景与双击快速测量。
|
|
4
|
+
- 放大镜按设备像素读回选点,接入全景像素源并使用自适应取景窗口。
|
|
5
|
+
- 改善远点与斜向表面的放大预览,保持原有测量入口及数据格式兼容。
|
|
6
|
+
|
|
7
|
+
## 3.81.22
|
|
8
|
+
|
|
9
|
+
- 发布独立空间测量 V2 和全景测量 V2,新增边缘吸附及选点可视化;原入口保持兼容。
|
|
10
|
+
- 修复 V2 Mixed 公开删除后再次保存恢复线段、Shift 切换后立即确认使用旧吸附位置。
|
|
11
|
+
- 保留主干标尺可见性及遮挡修复。
|
|
12
|
+
|
|
1
13
|
# CHANGELOG
|
|
14
|
+
## 未发布(MeasurePluginV2)
|
|
15
|
+
|
|
16
|
+
- 全景 V2 的 Edit/Mixed 清空均重置工作上下文;加载数据先结束旧会话,避免待保存线段混入导入结果。
|
|
17
|
+
- 空间 V2 结束测量时释放临时 Shift 状态;固定准心按屏幕中心计算吸附,开关吸附立即刷新选点。
|
|
18
|
+
- V2 默认触摸配置使用固定准心、可添加点的移动控件和小尺寸放大镜;两个 V2 示例提供手机底部操作面板与吸附开关。
|
|
19
|
+
- 修复全景 V2 中心点测量清空后保存恢复旧线段的问题;清空同时丢弃未完成起点,并保持测量工具开启。
|
|
20
|
+
- 修复 Mixed/Watch 模式按住 Shift 无法暂停吸附的问题;松开恢复吸附,失焦或销毁时释放修饰键状态与监听。
|
|
21
|
+
- 修复全景 V2 测量中的动态预览线:保持前景可见,并同步最后一次选点位置。
|
|
22
|
+
- 新增独立 `PanoMeasurePluginV2`,桌面编辑、移动端中心点测量、已有端点拖动复用空间测量 V2 的选点、模型边缘吸附、锁定评分与坐标轴/平面框提示。
|
|
23
|
+
- 原 `PanoMeasurePlugin` 的默认组件、公开接口和 JSON 格式保持不变;V2 继续使用原模型、事件与 load/save/toJson,补充新旧数据互读和模式切换测试。
|
|
24
|
+
- 原版与 V2 全景测量提供两个独立示例;V2 支持撤销、保存和中心点测量验收。
|
|
25
|
+
|
|
26
|
+
- 新增独立 `MeasurePluginV2`:模型边缘吸附、锁定评分、放大镜坐标轴和平面框、场景光标仅在 V2 生效;原 `MeasurePlugin` 配置及选点行为保持不变。
|
|
27
|
+
- V2 默认开启边缘吸附,可通过 `edgeSnap: false` 或 `setEdgeSnapEnabled(false)` 关闭。
|
|
28
|
+
- 修复约束平面负侧边线被错误接受、候选集合为空时提前丢失锁定边的问题。
|
|
29
|
+
- 虚拟点和无法线点隐藏场景表面提示,返回真实表面后恢复;移除覆盖绿色端点的蓝色 CSS 球。
|
|
30
|
+
- 原版与 V2 使用独立示例入口,并补充原版兼容性和 V2 回归测试。
|
|
2
31
|
|
|
3
32
|
## 3.81.21
|
|
4
33
|
|
|
@@ -20,6 +20,8 @@ export type MeasurePluginEventMap = {
|
|
|
20
20
|
export declare class MeasureController extends Subscribe<MeasurePluginEventMap> {
|
|
21
21
|
readonly name = "MeasurePlugin";
|
|
22
22
|
currentMeasureMesh?: MeasureMesh | null;
|
|
23
|
+
/** 双击快速测量结束后,用命中点继续下一段测量(由当前测量会话提供) */
|
|
24
|
+
protected continueMeasureFrom?: (end: THREE.Vector3) => void;
|
|
23
25
|
private five;
|
|
24
26
|
private group;
|
|
25
27
|
private currentEndReason;
|
|
@@ -35,6 +37,7 @@ export declare class MeasureController extends Subscribe<MeasurePluginEventMap>
|
|
|
35
37
|
private publishInteraction;
|
|
36
38
|
get pointSelector(): PointSelector;
|
|
37
39
|
private _pointSelector;
|
|
40
|
+
protected createPointSelector(): PointSelector;
|
|
38
41
|
private get fiveDomEvents();
|
|
39
42
|
private _fiveDomEvents;
|
|
40
43
|
private get cursor();
|
|
@@ -49,6 +52,11 @@ export declare class MeasureController extends Subscribe<MeasurePluginEventMap>
|
|
|
49
52
|
* @description Initialize event listeners for all existing meshes
|
|
50
53
|
*/
|
|
51
54
|
initEventListeners: () => void;
|
|
55
|
+
/**
|
|
56
|
+
* 取消所有测量结果的选中态。
|
|
57
|
+
* 组内还并存着预览用的临时对象(点 / 线 / 多边形),它们没有选中态,需要跳过。
|
|
58
|
+
*/
|
|
59
|
+
private unselectAllMeasureMeshes;
|
|
52
60
|
/**
|
|
53
61
|
* @description 开始测量
|
|
54
62
|
*/
|
|
@@ -3,6 +3,11 @@ import { IObject3D } from '../../shared-utils/three/IObject3D';
|
|
|
3
3
|
import { LineWithDotsMesh } from '../../Sculpt/Meshes/LineWithDots';
|
|
4
4
|
import { PolygonMesh, type PolygonStyle } from '../../Sculpt/Meshes/Polygon';
|
|
5
5
|
import type { LineMeshStyle } from '../../Sculpt/typings';
|
|
6
|
+
/**
|
|
7
|
+
* 判断对象是否为测量结果。
|
|
8
|
+
* MeasureGroup 内除测量结果外还并存着预览用的临时对象(点 / 线 / 多边形),它们没有选中态等测量接口。
|
|
9
|
+
*/
|
|
10
|
+
export declare function isMeasureMesh(item: unknown): item is MeasureMesh;
|
|
6
11
|
export declare class MeasureMesh extends IObject3D {
|
|
7
12
|
readonly name = "MeasureMesh";
|
|
8
13
|
readonly isMeasureMesh = true;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
import { MeasurePointSelector } from './PointSelector';
|
|
3
|
+
import { MeasureController } from '../MeasurePlugin/Controller';
|
|
4
|
+
import type { MeasurePluginConfig } from '../MeasurePlugin';
|
|
5
|
+
import { MeasureMagnifier } from './Magnifier';
|
|
6
|
+
import { type EdgeSnapOptions } from './edgeSnap';
|
|
7
|
+
/**
|
|
8
|
+
* 量尺插件 V2:把放大镜和场景里的小光标换成带「红 / 绿 / 蓝坐标轴 + 红色截面框」的版本。
|
|
9
|
+
*
|
|
10
|
+
* 复用 MeasureController 的测量流程,通过工厂创建独立的 V2 选点器,并替换两个渲染组件:
|
|
11
|
+
* - pointSelectorHelper.magnifier → MeasureMagnifier(多画一层叠加层)
|
|
12
|
+
* - pointSelectorHelper.pointHelper → MeasurePointHelperV2(同样的红 / 绿 / 蓝 + 截面框)
|
|
13
|
+
*
|
|
14
|
+
* 两个替换件都沿用原实例的全部参数(宽高、缩放、autoFixPCPosition、dragEnabled、挂载容器),
|
|
15
|
+
* 所以放大镜出现的位置、跟随方式、是否吃鼠标事件都和原插件一致,不会挡住在原本能选中的点位。
|
|
16
|
+
*/
|
|
17
|
+
/** V2 配置:在原 MeasurePlugin 配置上增加模型边缘吸附 */
|
|
18
|
+
export type MeasurePluginV2Config = MeasurePluginConfig & {
|
|
19
|
+
/**
|
|
20
|
+
* @description 模型边缘吸附(试验能力):落点靠近模型边线时自动吸到边上。
|
|
21
|
+
* 传 `false` 可关闭;不传默认开启。
|
|
22
|
+
*/
|
|
23
|
+
edgeSnap?: boolean | EdgeSnapOptions;
|
|
24
|
+
/**
|
|
25
|
+
* @description 双击快速测量(仅鼠标):双击起点时沿所在平面的法线测到对面,例如墙到对面墙。
|
|
26
|
+
* 传 `false` 可关闭;不传默认开启。
|
|
27
|
+
*/
|
|
28
|
+
quickMeasure?: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare class MeasureControllerV2 extends MeasureController {
|
|
31
|
+
/** 最近一次查询到的候选边数量,示例页 / 调试用 */
|
|
32
|
+
lastEdgeSnapEdgeCount: number;
|
|
33
|
+
private v2Five;
|
|
34
|
+
private v2Magnifier?;
|
|
35
|
+
private v2Attached;
|
|
36
|
+
private readonly edgeSnapOptions;
|
|
37
|
+
private readonly edgeSnapCache;
|
|
38
|
+
private readonly quickMeasureEnabled;
|
|
39
|
+
private quickMeasure?;
|
|
40
|
+
constructor(five: Five, config?: MeasurePluginV2Config);
|
|
41
|
+
get edgeSnapEnabled(): boolean;
|
|
42
|
+
/** 运行时开关模型边缘吸附(不需要重开测量) */
|
|
43
|
+
setEdgeSnapEnabled(enabled: boolean): void;
|
|
44
|
+
/** V2 的放大镜实例;需要临时关掉叠加层做对比时,可以 magnifier.setOverlayEnabled(false) */
|
|
45
|
+
get magnifier(): MeasureMagnifier;
|
|
46
|
+
protected createPointSelector(): MeasurePointSelector;
|
|
47
|
+
get pointSelector(): MeasurePointSelector;
|
|
48
|
+
private attachOverlayRenderers;
|
|
49
|
+
private attachMagnifier;
|
|
50
|
+
private attachPointHelper;
|
|
51
|
+
/** 双击快速测量:只在测量过程中生效,选点链路仍由原 MeasureController 负责 */
|
|
52
|
+
private attachQuickMeasure;
|
|
53
|
+
/**
|
|
54
|
+
* 模型边缘吸附:每次选点器计算吸附前,按当前落点取附近的模型边界线。
|
|
55
|
+
* 真正的吸附判断(3D 距离 / 屏幕距离)仍在 PointSelector 里,这里只负责供线。
|
|
56
|
+
*/
|
|
57
|
+
private attachEdgeSnap;
|
|
58
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
import { Magnifier, type MagnifierParameter, type PointIntersection } from '../shared-utils';
|
|
4
|
+
export { CLOSEUP_DISTANCE } from './closeupView';
|
|
5
|
+
/** 近景取景方式 */
|
|
6
|
+
export type MeasureCloseupMode =
|
|
7
|
+
/** 只旋转、不平移:与主视图共用机位,无新增视差;默认 */
|
|
8
|
+
'rotate'
|
|
9
|
+
/** 旧行为:把相机推到落点附近 0.6m,再朝法线偏转;放大倍率高,但会产生视差 */
|
|
10
|
+
| 'push'
|
|
11
|
+
/** 完全沿用主相机,只放大局部像素 */
|
|
12
|
+
| 'off';
|
|
13
|
+
export interface MeasureMagnifierOptions extends MagnifierParameter {
|
|
14
|
+
/** 是否绘制坐标轴 / 平面框叠加层,默认 true(关掉后行为与现状 Magnifier 完全一致) */
|
|
15
|
+
overlayEnabled?: boolean;
|
|
16
|
+
/** 兼容旧参数:false 等价于 closeupMode='off' */
|
|
17
|
+
closeupEnabled?: boolean;
|
|
18
|
+
/** 近景取景方式,默认 'rotate' */
|
|
19
|
+
closeupMode?: MeasureCloseupMode;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 量尺 V2 用的放大镜。
|
|
23
|
+
*
|
|
24
|
+
* 完全复用 Magnifier 的「读像素 + 放大」逻辑(直接 super.render()),
|
|
25
|
+
* 只是在其之后往同一个 2D canvas 上叠加坐标轴与落点平面框。
|
|
26
|
+
*/
|
|
27
|
+
export declare class MeasureMagnifier extends Magnifier {
|
|
28
|
+
/** 父类把 five 存成了 private,这里自己留一份,叠加层投影时要用 */
|
|
29
|
+
private overlayFive;
|
|
30
|
+
/** 父类把 context 存成了 private;getContext('2d') 拿到的是同一个实例 */
|
|
31
|
+
private overlayContext;
|
|
32
|
+
/** 由 PointSelector 的 intersectionUpdate 事件注入 */
|
|
33
|
+
private overlayIntersection;
|
|
34
|
+
private overlayEnabled;
|
|
35
|
+
private closeupMode;
|
|
36
|
+
/** 本次渲染实际使用的相机(推近后的副本),叠加层投影必须和它一致 */
|
|
37
|
+
private overlayCamera;
|
|
38
|
+
/** 本次放大镜渲染的落点;相机取向以它为准,避免和交点数据错帧 */
|
|
39
|
+
private renderPoint;
|
|
40
|
+
/** 近景视角的平滑状态 */
|
|
41
|
+
private closeupState;
|
|
42
|
+
constructor(five: Five, options?: MeasureMagnifierOptions);
|
|
43
|
+
renderWithPoint(point: THREE.Vector3): void;
|
|
44
|
+
/** 每次交点更新时调用;传 null 表示当前没有命中任何模型 */
|
|
45
|
+
setIntersection(intersection: PointIntersection | null): void;
|
|
46
|
+
/** 开关叠加层,用于灰度 / 排查问题 */
|
|
47
|
+
setOverlayEnabled(enabled: boolean): void;
|
|
48
|
+
/** 开关近景 3D 视角,用于灰度 / 对比;开启时使用默认的 rotate 模式 */
|
|
49
|
+
setCloseupEnabled(enabled: boolean): void;
|
|
50
|
+
/** 切换近景取景方式,用于三种模式的对比 */
|
|
51
|
+
setCloseupMode(mode: MeasureCloseupMode): void;
|
|
52
|
+
getCloseupMode(): MeasureCloseupMode;
|
|
53
|
+
render(): void;
|
|
54
|
+
private renderOverlay;
|
|
55
|
+
/**
|
|
56
|
+
* 近景 3D 视角:读像素前调整相机取向,让视线朝落点所在表面的法线偏一点
|
|
57
|
+
* (斜向 / 侧向的表面在放大镜里以更接近正面的角度呈现),读完立即还原。
|
|
58
|
+
*
|
|
59
|
+
* 两种模式:
|
|
60
|
+
* - rotate(默认):只旋转、不平移。与主视图共用同一机位,不产生视差,全景 / 模型都按同一视点采样;
|
|
61
|
+
* - push(旧行为):把相机推到落点附近 0.6m,放大倍率更高,但会产生视差和近距透视形变。
|
|
62
|
+
*
|
|
63
|
+
* 姿态由主相机绕落点做最小旋转得到:偏转角有上限、画面不翻滚。
|
|
64
|
+
*/
|
|
65
|
+
private moveCameraCloseup;
|
|
66
|
+
/** 只记录投影要用的矩阵;Five 的相机 clone() 开销大,也不保证可用 */
|
|
67
|
+
private snapshotOverlayCamera;
|
|
68
|
+
private getOverlayContext;
|
|
69
|
+
/**
|
|
70
|
+
* 还原 Magnifier.render() 内部的取值,用来把世界坐标映射到放大镜 canvas 坐标。
|
|
71
|
+
* 这些换算必须和父类保持一致,父类改动时需要同步。
|
|
72
|
+
*/
|
|
73
|
+
private getOverlayViewport;
|
|
74
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
import type { Intersection } from '../typings/typings';
|
|
3
|
+
import { PointHelper2 } from '../shared-utils/three/PointSelector/utils/PointHelper2';
|
|
4
|
+
/**
|
|
5
|
+
* 场景里的小光标(选点处那团白圈 + 法线管)的 V2 版本。
|
|
6
|
+
*
|
|
7
|
+
* 完全继承 PointHelper2,只做两件事:
|
|
8
|
+
* 1. 把那根浅蓝色的法线管换成绿色(PRD 里绿色 = Z 轴);
|
|
9
|
+
* 2. 按和放大镜同一套平面坐标系(buildPlaneFrame)补上红色 X、蓝色 Y 和红色截面框。
|
|
10
|
+
*
|
|
11
|
+
* 选点算法(射线、吸附、打点)全都在 PointSelector 里,这里只负责画,不参与任何选点判断。
|
|
12
|
+
*/
|
|
13
|
+
export declare class MeasurePointHelperV2 extends PointHelper2 {
|
|
14
|
+
/** 只放 V2 新增的红 / 蓝轴和截面框,拿不到法线时整体隐藏 */
|
|
15
|
+
private readonly overlayGroup;
|
|
16
|
+
constructor(five: Five);
|
|
17
|
+
updateWithIntersect(intersect: Intersection): void;
|
|
18
|
+
/** 不挂载 cssBallMesh,避免蓝色小球盖住绿色 Z 轴端点 */
|
|
19
|
+
show(): void;
|
|
20
|
+
hide(): void;
|
|
21
|
+
private paintAxisMesh;
|
|
22
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import type { PointIntersection } from '../shared-utils';
|
|
3
|
+
/**
|
|
4
|
+
* 放大镜内的叠加绘制:坐标轴(PRD M1)+ 落点平面框(PRD M2)
|
|
5
|
+
*
|
|
6
|
+
* 为什么画在 2D canvas 上而不是往场景里加 THREE 物体:
|
|
7
|
+
* 放大镜并不是「再渲染一遍场景」,而是用 five.getPixels() 读一小块像素,翻转后 putImageData 到 2D canvas 上。
|
|
8
|
+
* 所以场景里加什么物体都不会出现在放大镜里,只有 putImageData 之后在 2D context 上画的才会出现。
|
|
9
|
+
*/
|
|
10
|
+
/** PRD 五、视觉与设计规范 */
|
|
11
|
+
export declare const OVERLAY_STYLE: {
|
|
12
|
+
/** M1-2 X 轴颜色 */
|
|
13
|
+
readonly axisXColor: "#EC4A4E";
|
|
14
|
+
/** M1-2 Y 轴颜色 */
|
|
15
|
+
readonly axisYColor: "#1677FF";
|
|
16
|
+
/** M1-2 Z 轴颜色 */
|
|
17
|
+
readonly axisZColor: "#065C08";
|
|
18
|
+
/** M1-5 线条宽度 */
|
|
19
|
+
readonly axisLineWidth: 1.5;
|
|
20
|
+
/** 轴线不透明度 */
|
|
21
|
+
readonly axisOpacity: 0.9;
|
|
22
|
+
/** M1-4 轴线长度 = 放大镜半径 × 0.9 */
|
|
23
|
+
readonly axisLengthRadiusScale: 0.9;
|
|
24
|
+
/** Z 轴端点(朝外的一端)绿色圆点半径 = 放大镜半径 × 该系数 */
|
|
25
|
+
readonly axisTipDotRadiusScale: 0.03;
|
|
26
|
+
/** M2 平面框边框颜色 */
|
|
27
|
+
readonly planeBorderColor: "#FF4D4F";
|
|
28
|
+
/** M2-3 边框宽度 */
|
|
29
|
+
readonly planeBorderWidth: 1.5;
|
|
30
|
+
/** M2-3 边框不透明度 */
|
|
31
|
+
readonly planeBorderOpacity: 0.9;
|
|
32
|
+
/** M2-2 轴对齐面框边长 = 放大镜半径 × 1.2 */
|
|
33
|
+
readonly planeSideRadiusScale: 1.2;
|
|
34
|
+
/** M2 轴对齐判定:表面法线与最近世界轴的夹角小于该值即视为墙 / 地 / 顶 */
|
|
35
|
+
readonly axisSnapAngle: 15;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* 放大镜把渲染目标上的一块矩形区域拉伸到了 canvas 上,这里描述这块区域以及映射关系。
|
|
39
|
+
* 字段取值与 Magnifier.render() 内部完全一致,父类改动时需要同步。
|
|
40
|
+
*/
|
|
41
|
+
export interface MagnifierViewport {
|
|
42
|
+
camera: THREE.Camera;
|
|
43
|
+
/** 渲染目标尺寸,与 Magnifier.render() 里 getSize() 的结果一致 */
|
|
44
|
+
renderSize: THREE.Vector2;
|
|
45
|
+
/** 读取区域左边缘在渲染目标像素坐标系中的横坐标 */
|
|
46
|
+
readLeft: number;
|
|
47
|
+
/** 读取区域下边缘的纵坐标(渲染目标像素坐标系 y 轴向上,与 Magnifier.render() 里的同名量一致) */
|
|
48
|
+
readTop: number;
|
|
49
|
+
/** 读取区域的高度(渲染目标像素) */
|
|
50
|
+
readPixelsHeight: number;
|
|
51
|
+
/** 一个渲染像素在放大镜 canvas 上重复的倍数 */
|
|
52
|
+
pixelRadio: number;
|
|
53
|
+
/** 放大镜 canvas 的宽高(设备像素) */
|
|
54
|
+
canvasWidth: number;
|
|
55
|
+
canvasHeight: number;
|
|
56
|
+
/**
|
|
57
|
+
* 叠加层线宽缩放:canvas 设备像素 / CSS 像素。
|
|
58
|
+
* 高清读回时 canvas 变大,固定线宽需要同步放大,否则轴线和平面框会变细。
|
|
59
|
+
*/
|
|
60
|
+
lineScale?: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 求交点的世界坐标系法线。
|
|
64
|
+
* 点云等拿不到 face 的情况返回 null(此时只画坐标轴,不画平面框)。
|
|
65
|
+
*
|
|
66
|
+
* 注意:这里不能再乘模型的法线矩阵。THREE.Mesh.raycast 在生成相交结果时已经把面法线
|
|
67
|
+
* 用 normalMatrix 变换到世界坐标系了;PointSelector 吸附到平面时合成的 Face3 更是直接写入
|
|
68
|
+
* 世界坐标系的平面法线。再乘一次会让法线偏离真实表面法线,红色平面框也就不再贴合选点所在面。
|
|
69
|
+
*/
|
|
70
|
+
export declare function getWorldNormal(intersection: PointIntersection): THREE.Vector3 | null;
|
|
71
|
+
export interface PlaneFrame {
|
|
72
|
+
/** 平面法线,也就是绿色 Z 轴的方向(朝表面外侧) */
|
|
73
|
+
normal: THREE.Vector3;
|
|
74
|
+
/** 平面内的水平方向 = 红色 X 轴 */
|
|
75
|
+
xAxis: THREE.Vector3;
|
|
76
|
+
/** 平面内最接近竖直的方向 = 蓝色 Y 轴 */
|
|
77
|
+
yAxis: THREE.Vector3;
|
|
78
|
+
/** 轴对齐面吸附到的世界轴下标(0=X / 1=Y / 2=Z),斜面为 -1 */
|
|
79
|
+
alignedAxisIndex: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 由表面法线构造落点所在平面的坐标系。
|
|
83
|
+
* 绿色 Z 轴 = 法线;蓝色 Y 轴取平面内最接近「世界向上」的方向;红色 X 轴 = 剩下的那条平面内方向。
|
|
84
|
+
* 平面接近水平(地板 / 天花板)时平面内没有竖直方向,退化为用世界 Z 当蓝色轴。
|
|
85
|
+
*
|
|
86
|
+
* 放大镜里的叠加层和场景里的小光标共用这一份坐标系,保证两处看到的红 / 绿 / 蓝完全一致。
|
|
87
|
+
*/
|
|
88
|
+
export declare function buildPlaneFrame(normal: THREE.Vector3): PlaneFrame;
|
|
89
|
+
/**
|
|
90
|
+
* 绘制落点叠加层。
|
|
91
|
+
* 调用时机:Magnifier.render() 里 putImageData 之后。
|
|
92
|
+
*/
|
|
93
|
+
export declare function drawMeasureOverlay(context: CanvasRenderingContext2D, viewport: MagnifierViewport, intersection: PointIntersection): void;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { PointSelector, type PointIntersection } from '../shared-utils/three/PointSelector';
|
|
3
|
+
/** V2 snapping only. The original PointSelector keeps its existing algorithm. */
|
|
4
|
+
export declare class MeasurePointSelector extends PointSelector {
|
|
5
|
+
/**
|
|
6
|
+
* @description 动态吸附线提供器:每次选点更新、吸附计算前调用,返回本次参与吸附的线段,不会写回 adhereLine。
|
|
7
|
+
* 适合按光标位置实时从模型提取的边线。返回的线按有限线段处理(clampToLine),
|
|
8
|
+
* 与 adhereLine 里的无限轴线(如量尺的 XYZ 轴)区分开。
|
|
9
|
+
*/
|
|
10
|
+
adhereLineProvider: ((params: {
|
|
11
|
+
intersection: PointIntersection;
|
|
12
|
+
pointSelector: PointSelector;
|
|
13
|
+
}) => THREE.Line3[]) | null;
|
|
14
|
+
/**
|
|
15
|
+
* @description 动态吸附线的屏幕吸附半径(像素)
|
|
16
|
+
* 动态线按「光标到线段投影的屏幕距离」取最近的一条,而不是按 3D 距离排序后让远边覆盖近边
|
|
17
|
+
*/
|
|
18
|
+
dynamicAdhereScreenRadius: number;
|
|
19
|
+
/**
|
|
20
|
+
* @description 已吸附后保持吸附的屏幕半径(像素),略大于进入半径,避免在阈值边界来回跳动
|
|
21
|
+
*/
|
|
22
|
+
dynamicAdhereKeepScreenRadius: number;
|
|
23
|
+
/**
|
|
24
|
+
* @description 动态吸附线允许的最大 3D 距离(米),用于排除画面深处或明显不在落点附近的边
|
|
25
|
+
*/
|
|
26
|
+
dynamicAdhereMaxDistance: number;
|
|
27
|
+
/**
|
|
28
|
+
* 上一次吸住的动态线。候选线集合会随查询球心移动而变化,
|
|
29
|
+
* 把吸住的边单独留住,光标在保持半径内时优先继续用它,避免在相邻边之间来回跳。
|
|
30
|
+
*/
|
|
31
|
+
private dynamicAdhereLine;
|
|
32
|
+
protected get mouseNdcPosition(): {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
};
|
|
36
|
+
refresh(): void;
|
|
37
|
+
private readonly onFocusLost;
|
|
38
|
+
enable(): void;
|
|
39
|
+
disable(): void;
|
|
40
|
+
clearDynamicAdhereLine(): void;
|
|
41
|
+
protected updatePointSelectorHelperIntersect: (intersect?: PointIntersection | null) => void;
|
|
42
|
+
/**
|
|
43
|
+
* @description 计算一条静态吸附线的吸附结果(3D 距离优先,其次屏幕距离)
|
|
44
|
+
*/
|
|
45
|
+
private getLineAdhereResult;
|
|
46
|
+
/**
|
|
47
|
+
* @description 在动态吸附线(模型边)中选出屏幕上离光标最近的一条。
|
|
48
|
+
*
|
|
49
|
+
* 三个要点:
|
|
50
|
+
* 1. 用射线与线段的最近点求落点,避免透视投影下屏幕比例回推 3D 点造成的偏差;
|
|
51
|
+
* 2. 光标贴着已吸住的边时直接锁定,不让相邻边参与评分,消除来回跳;
|
|
52
|
+
* 3. 需要换边时按「屏幕距离 + 深度惩罚」择优,避免吸到屏幕上重叠、但实际更远的边。
|
|
53
|
+
*/
|
|
54
|
+
private getBestDynamicAdhereResult;
|
|
55
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* 放大镜近景视角的取向计算。
|
|
4
|
+
*
|
|
5
|
+
* 目标(与 MP 的观感一致):放大镜不是主视图的简单放大。落点所在表面没有正对相机时,
|
|
6
|
+
* 视角会朝表面法线偏一点,让斜面 / 侧面在放大镜里以更接近正面的角度呈现;
|
|
7
|
+
* 同时要保证它始终是「主视图那台相机绕落点转了一点」——不换机位、不翻滚、偏转角有上限。
|
|
8
|
+
*
|
|
9
|
+
* 这里只做纯数学,相机怎么临时改、怎么还原由调用方负责。
|
|
10
|
+
*/
|
|
11
|
+
/** 近景相机到落点的距离(米) */
|
|
12
|
+
export declare const CLOSEUP_DISTANCE = 0.6;
|
|
13
|
+
/** 朝表面转正的比例:把「主视线到正对表面」的夹角消掉这么多 */
|
|
14
|
+
export declare const CLOSEUP_NORMAL_BLEND = 0.5;
|
|
15
|
+
/** 近景视角相对主视图的最大偏转角(弧度)。超过就封顶,避免侧视时像换了个机位 */
|
|
16
|
+
export declare const CLOSEUP_MAX_DEVIATION: number;
|
|
17
|
+
/** 判定法线朝向时的滞回区间(点积):视线接近贴着表面时沿用上一帧朝向,避免来回翻 */
|
|
18
|
+
export declare const CLOSEUP_FLIP_EPSILON = 0.05;
|
|
19
|
+
/** 跨帧状态:目前只用于法线朝向的滞回 */
|
|
20
|
+
export interface CloseupViewState {
|
|
21
|
+
/** 本帧的视线方向(单位向量) */
|
|
22
|
+
direction: THREE.Vector3;
|
|
23
|
+
/** 本帧的落点 */
|
|
24
|
+
point: THREE.Vector3;
|
|
25
|
+
/** 本帧法线的朝向:1 = 与传入的法线同向,-1 = 反向,null = 没有法线 */
|
|
26
|
+
normalSign: 1 | -1 | null;
|
|
27
|
+
}
|
|
28
|
+
export interface CloseupViewOptions {
|
|
29
|
+
/** 落点(世界坐标) */
|
|
30
|
+
point: THREE.Vector3;
|
|
31
|
+
/** 落点所在表面的法线(世界坐标,方向不限);拿不到时传 null,只推近不偏转 */
|
|
32
|
+
normal: THREE.Vector3 | null;
|
|
33
|
+
/** 主相机位置 */
|
|
34
|
+
cameraPosition: THREE.Vector3;
|
|
35
|
+
/** 主相机世界四元数;近景姿态由它绕落点做最小旋转得到,因此不会翻滚 */
|
|
36
|
+
cameraQuaternion: THREE.Quaternion;
|
|
37
|
+
/** 近景距离,默认 CLOSEUP_DISTANCE;主相机比这更近时保持原距离。translate=false 时忽略 */
|
|
38
|
+
distance?: number;
|
|
39
|
+
/**
|
|
40
|
+
* 是否把相机沿最终视线移动到落点附近。
|
|
41
|
+
* true = 旧行为(推到 0.6m);false = 只旋转、不平移,放大镜与主视图共用同一机位,
|
|
42
|
+
* 不会产生视差,也不会让全景球心偏移导致画面扭曲。
|
|
43
|
+
*/
|
|
44
|
+
translate?: boolean;
|
|
45
|
+
/** 朝法线偏转的比例,默认 CLOSEUP_NORMAL_BLEND */
|
|
46
|
+
blend?: number;
|
|
47
|
+
/** 最大偏转角(弧度),默认 CLOSEUP_MAX_DEVIATION */
|
|
48
|
+
maxDeviation?: number;
|
|
49
|
+
/** 上一帧的状态,只用于法线朝向的滞回;第一帧传 null */
|
|
50
|
+
previous?: CloseupViewState | null;
|
|
51
|
+
}
|
|
52
|
+
export interface CloseupView {
|
|
53
|
+
/** 近景相机位置 */
|
|
54
|
+
position: THREE.Vector3;
|
|
55
|
+
/** 近景相机视线方向(单位向量) */
|
|
56
|
+
direction: THREE.Vector3;
|
|
57
|
+
/** 近景相机世界四元数(视线方向与 direction 一致,roll 由主相机继承) */
|
|
58
|
+
quaternion: THREE.Quaternion;
|
|
59
|
+
/** 供下一次调用使用的状态 */
|
|
60
|
+
state: CloseupViewState;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 计算近景相机的位姿:
|
|
64
|
+
* 1. translate=true 时相机落在「落点后方 distance 处、朝向落点」这条线上,落点因此仍在画面正中;
|
|
65
|
+
* translate=false 时保持原机位,只改变朝向(放大镜与主视图共用视点,不产生视差);
|
|
66
|
+
* 2. 姿态 = 主相机姿态先把视线校正到落点,再朝「正对表面」的方向转一小段(有上限);
|
|
67
|
+
* 3. 因为是绕相机的旋转,画面不会翻滚,观感就是「同一台相机微微转了个角度」。
|
|
68
|
+
*/
|
|
69
|
+
export declare function resolveCloseupView(options: CloseupViewOptions): CloseupView | null;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* 模型边缘吸附(试验能力)。
|
|
4
|
+
*
|
|
5
|
+
* 选点器本身已经支持吸附到 `THREE.Line3`,five 的 Model 也提供了 `getEdgesBySphere()`,
|
|
6
|
+
* 这里只做两件事:
|
|
7
|
+
* 1. 把光标附近的模型边界线取出来、按离落点的距离排序并限量;
|
|
8
|
+
* 2. 缓存查询结果,避免每次 mousemove 都重走一遍 BVH。
|
|
9
|
+
*
|
|
10
|
+
* 取出来的线交给 `PointSelector.adhereLineProvider`,由选点器完成真正的吸附。
|
|
11
|
+
*/
|
|
12
|
+
export interface EdgeSnapOptions {
|
|
13
|
+
/** 是否启用,默认 true */
|
|
14
|
+
enabled?: boolean;
|
|
15
|
+
/** 查询球半径(米),只在这个范围内找模型边线,默认 0.3 */
|
|
16
|
+
radius?: number;
|
|
17
|
+
/** 面片夹角阈值(度),越小越只保留硬边,默认 30 */
|
|
18
|
+
threshold?: number;
|
|
19
|
+
/** 单次最多参与吸附的边数,默认 240 */
|
|
20
|
+
maxEdges?: number;
|
|
21
|
+
/** 光标移动超过该距离(米)才重新查询,默认 0.12 */
|
|
22
|
+
cacheStep?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface ResolvedEdgeSnapOptions extends Required<EdgeSnapOptions> {
|
|
25
|
+
}
|
|
26
|
+
export declare const DEFAULT_EDGE_SNAP_OPTIONS: ResolvedEdgeSnapOptions;
|
|
27
|
+
export declare function resolveEdgeSnapOptions(options?: boolean | EdgeSnapOptions): ResolvedEdgeSnapOptions;
|
|
28
|
+
/** 只依赖 getEdgesBySphere,避免把 dnalogel 绑死在某个 five 版本上 */
|
|
29
|
+
type EdgeSource = {
|
|
30
|
+
getEdgesBySphere?: (sphere: THREE.Sphere, threshold?: number) => THREE.Line3[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* 取落点附近的模型边界线,按离落点从近到远排序,最多 maxEdges 条。
|
|
34
|
+
* five 的 getEdgesBySphere 返回的是世界坐标线段,可以直接交给 PointSelector。
|
|
35
|
+
*
|
|
36
|
+
* 注意:getEdgesBySphere 是按「三角形与球相交」筛选的,大三角形的边可能落在球外很远,
|
|
37
|
+
* 所以这里再按「点到线段」的真实距离过滤一次,避免把远处的边也当成候选。
|
|
38
|
+
*/
|
|
39
|
+
export declare function collectNearbyEdges(model: EdgeSource | null | undefined, point: THREE.Vector3, options: ResolvedEdgeSnapOptions): THREE.Line3[];
|
|
40
|
+
/**
|
|
41
|
+
* `getEdgesBySphere` 每次都要遍历可见瓦片、合几何、重建邻接关系,开销不低;
|
|
42
|
+
* 光标在 cacheStep 范围内移动时复用上一次结果,足够贴近“附近有哪些边”的事实。
|
|
43
|
+
*/
|
|
44
|
+
export declare class EdgeSnapCache {
|
|
45
|
+
private center;
|
|
46
|
+
private edges;
|
|
47
|
+
private valid;
|
|
48
|
+
query(model: EdgeSource | null | undefined, point: THREE.Vector3, options: ResolvedEdgeSnapOptions): THREE.Line3[];
|
|
49
|
+
clear(): void;
|
|
50
|
+
/** 最近一次查询到的边数,调试 / 示例页展示用 */
|
|
51
|
+
get size(): number;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
import { MeasureControllerV2 } from './Controller';
|
|
3
|
+
/**
|
|
4
|
+
* 量尺插件 V2 —— 点位选择可视化(对应 PRD《量尺点位选择器优化》)
|
|
5
|
+
*
|
|
6
|
+
* 与 MeasurePlugin 的关系:V2 是试点 fork,完全继承 MeasurePlugin 的控制器,
|
|
7
|
+
* 新吸附算法、放大镜叠加层和场景光标仅在 V2 中生效,原插件继续使用原选点器。
|
|
8
|
+
*
|
|
9
|
+
* 使用方式(Console / 编辑器等接入方):
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { MeasureV2 } from '@realsee/dnalogel'
|
|
12
|
+
* const measure = MeasureV2.MeasurePluginV2(five, { unit: 'm' })
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export { MeasureControllerV2 } from './Controller';
|
|
16
|
+
export type { MeasurePluginV2Config } from './Controller';
|
|
17
|
+
export { MeasureMagnifier } from './Magnifier';
|
|
18
|
+
export type { MeasureMagnifierOptions } from './Magnifier';
|
|
19
|
+
export { drawMeasureOverlay, getWorldNormal, OVERLAY_STYLE } from './PointOverlay';
|
|
20
|
+
export type { MagnifierViewport } from './PointOverlay';
|
|
21
|
+
export { collectNearbyEdges, EdgeSnapCache, DEFAULT_EDGE_SNAP_OPTIONS } from './edgeSnap';
|
|
22
|
+
export type { EdgeSnapOptions, ResolvedEdgeSnapOptions } from './edgeSnap';
|
|
23
|
+
export { validatePolygon } from '../MeasurePlugin';
|
|
24
|
+
export type { MeasureEndReason, MeasurePluginConfig, MeasurePluginEventMap } from '../MeasurePlugin';
|
|
25
|
+
export type MeasureControllerV2Interface = InstanceType<typeof MeasureControllerV2>;
|
|
26
|
+
export type MeasurePluginV2ParamsInterface = ConstructorParameters<typeof MeasureControllerV2>[1];
|
|
27
|
+
export declare const MeasurePluginV2: (five: Five, config?: MeasurePluginV2ParamsInterface) => MeasureControllerV2;
|
|
28
|
+
export default MeasurePluginV2;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* 双击快速测量:从落点沿所在平面的法线发一条射线,取第一个打到的模型表面作为终点。
|
|
4
|
+
* 典型场景是双击墙面直接得到墙到对面墙的垂直距离。
|
|
5
|
+
*/
|
|
6
|
+
/** 射线起点离开表面的距离(米),避免射线一出发就打中落点所在的面 */
|
|
7
|
+
export declare const NORMAL_RAY_START_OFFSET = 0.01;
|
|
8
|
+
/** 终点离起点太近(米)视为无效,例如打中了落点旁边的小凸起 */
|
|
9
|
+
export declare const NORMAL_RAY_MIN_DISTANCE = 0.02;
|
|
10
|
+
/** 射线最远距离(米),超过视为没打到 */
|
|
11
|
+
export declare const NORMAL_RAY_MAX_DISTANCE = 100;
|
|
12
|
+
/** 双击判定:两次抬起的最大间隔(毫秒) */
|
|
13
|
+
export declare const DOUBLE_CLICK_INTERVAL = 350;
|
|
14
|
+
/** 双击判定:两次抬起的最大屏幕距离(像素) */
|
|
15
|
+
export declare const DOUBLE_CLICK_MAX_MOVE = 6;
|
|
16
|
+
export interface RaycastHit {
|
|
17
|
+
point: THREE.Vector3;
|
|
18
|
+
distance: number;
|
|
19
|
+
/** 命中面;THREE.Intersection 的 face.normal 已经是世界坐标系法线 */
|
|
20
|
+
face?: {
|
|
21
|
+
normal?: THREE.Vector3 | null;
|
|
22
|
+
} | null;
|
|
23
|
+
}
|
|
24
|
+
/** 法线快速测量的命中结果 */
|
|
25
|
+
export interface NormalMeasureHit {
|
|
26
|
+
/** 终点 */
|
|
27
|
+
point: THREE.Vector3;
|
|
28
|
+
/** 终点所在表面的世界坐标系法线;拿不到时为 null */
|
|
29
|
+
normal: THREE.Vector3 | null;
|
|
30
|
+
}
|
|
31
|
+
/** 对模型做射线检测,返回按距离排序的命中结果 */
|
|
32
|
+
export type ModelRaycast = (raycaster: THREE.Raycaster) => RaycastHit[];
|
|
33
|
+
/**
|
|
34
|
+
* 沿法线求快速测量的命中点。
|
|
35
|
+
* @param point - 起点(双击的落点)
|
|
36
|
+
* @param normal - 起点所在平面的法线(世界坐标,朝向表面外侧,即朝向相机这一侧)
|
|
37
|
+
* @returns 命中点及其表面法线;法线无效或没打到模型时返回 null
|
|
38
|
+
*/
|
|
39
|
+
export declare function findNormalMeasureHit(point: THREE.Vector3, normal: THREE.Vector3, raycast: ModelRaycast): NormalMeasureHit | null;
|
|
40
|
+
/** 只要终点时用这个 */
|
|
41
|
+
export declare function findNormalMeasureEnd(point: THREE.Vector3, normal: THREE.Vector3, raycast: ModelRaycast): THREE.Vector3 | null;
|
|
42
|
+
/**
|
|
43
|
+
* 识别「第二下点在刚打下的点上」的双击。
|
|
44
|
+
* 只记录上一次抬起的时间和屏幕位置;时间和位置都足够近才算双击,命中后清空,三连击不会触发两次。
|
|
45
|
+
*/
|
|
46
|
+
export declare class DoubleClickDetector {
|
|
47
|
+
private readonly interval;
|
|
48
|
+
private readonly maxMove;
|
|
49
|
+
private last;
|
|
50
|
+
constructor(interval?: number, maxMove?: number);
|
|
51
|
+
/** 每次单击抬起时调用;返回 true 表示与上一次构成双击 */
|
|
52
|
+
hit(x: number, y: number, time: number): boolean;
|
|
53
|
+
reset(): void;
|
|
54
|
+
}
|
|
55
|
+
/** 双击时第二下离起点的最大屏幕距离(像素)。起点可能被吸附偏离光标几像素,所以比双击判定宽一些 */
|
|
56
|
+
export declare const START_POINT_HIT_RADIUS = 16;
|
|
57
|
+
interface QuickMeasureCamera {
|
|
58
|
+
position: THREE.Vector3;
|
|
59
|
+
}
|
|
60
|
+
export interface QuickNormalMeasureOptions {
|
|
61
|
+
/** 当前相机;朝向判断和屏幕投影都用它 */
|
|
62
|
+
getCamera: () => THREE.Camera & QuickMeasureCamera;
|
|
63
|
+
/** five 画布,用来把世界坐标换算成屏幕坐标 */
|
|
64
|
+
getElement: () => HTMLElement | null | undefined;
|
|
65
|
+
/** 对模型做射线检测 */
|
|
66
|
+
raycast: ModelRaycast;
|
|
67
|
+
/** 正在测量的点;不在测量中返回 null */
|
|
68
|
+
getMeasuringPoints: () => THREE.Vector3[] | null;
|
|
69
|
+
/**
|
|
70
|
+
* 打到对面:用起点和终点生成测量。
|
|
71
|
+
* 返回 true 表示测量会话继续(控制器以终点作为下一段的起点),此时命中面的法线会留作下一段的起始法线。
|
|
72
|
+
*/
|
|
73
|
+
finish: (start: THREE.Vector3, end: THREE.Vector3) => boolean | void;
|
|
74
|
+
/** 没打到:撤掉起点,回到未打点状态 */
|
|
75
|
+
cancelStart: () => void;
|
|
76
|
+
}
|
|
77
|
+
/** 由 PointSelector 的 wantsSelect 事件驱动,返回 false 表示取消这次选点 */
|
|
78
|
+
type WantsSelectHandler = (intersection?: {
|
|
79
|
+
point?: THREE.Vector3;
|
|
80
|
+
face?: {
|
|
81
|
+
normal?: THREE.Vector3 | null;
|
|
82
|
+
} | null;
|
|
83
|
+
} | null) => boolean | void;
|
|
84
|
+
/**
|
|
85
|
+
* 双击快速测量(只处理鼠标,触屏不触发)。
|
|
86
|
+
*
|
|
87
|
+
* 规则与 MP 一致:
|
|
88
|
+
* - 第一下单击照常打下起点 A,不延迟;第二下在双击时间内又点在 A 上,就从 A 沿法线测到对面,直接完成这条测量;
|
|
89
|
+
* - A 已经打下一段时间后,再双击 A 也会快速测量:落在 A 上的单击不会再打一个重合的点;
|
|
90
|
+
* - 已经开始连线(两个点及以上)时双击按普通单击处理;法线没打到模型时撤掉 A,不生成测量;
|
|
91
|
+
* - 快速测量完成后不退出选点:控制器以命中点为新一段的起点(finish 返回 true),继续选择下一个点位。
|
|
92
|
+
*/
|
|
93
|
+
export declare class QuickNormalMeasure {
|
|
94
|
+
private readonly options;
|
|
95
|
+
private readonly detector;
|
|
96
|
+
private lastMouseUp;
|
|
97
|
+
/** 起点 A 所在平面的法线,在打下 A 的那次选点里记下 */
|
|
98
|
+
private startNormal;
|
|
99
|
+
private attached;
|
|
100
|
+
constructor(options: QuickNormalMeasureOptions);
|
|
101
|
+
attach(pointSelector: {
|
|
102
|
+
on: (name: 'wantsSelect', callback: WantsSelectHandler) => unknown;
|
|
103
|
+
}): void;
|
|
104
|
+
detach(pointSelector: {
|
|
105
|
+
off: (name: 'wantsSelect', callback: WantsSelectHandler) => unknown;
|
|
106
|
+
}): void;
|
|
107
|
+
reset(): void;
|
|
108
|
+
private onMouseUp;
|
|
109
|
+
private onWantsSelect;
|
|
110
|
+
/** 只认刚刚发生的鼠标抬起,用完即清,避免触屏选点误用上一次鼠标的位置 */
|
|
111
|
+
private consumeMouseUp;
|
|
112
|
+
private isOnStartPoint;
|
|
113
|
+
/** 面法线可能朝向表面内侧;射线要往相机这一侧(空的一侧)发 */
|
|
114
|
+
private orientTowardCamera;
|
|
115
|
+
}
|
|
116
|
+
export {};
|