@realsee/dnalogel 3.80.6 → 3.81.0-alpha.0
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 +4 -0
- package/dist/DigitalPerformancePlugin/core/DigitalHuman.d.ts +18 -0
- package/dist/DigitalPerformanceV2Plugin/controller/index.d.ts +330 -0
- package/dist/DigitalPerformanceV2Plugin/core/CameraDirector.d.ts +61 -0
- package/dist/DigitalPerformanceV2Plugin/core/CameraSampler.d.ts +53 -0
- package/dist/DigitalPerformanceV2Plugin/core/CameraTrack.d.ts +21 -0
- package/dist/DigitalPerformanceV2Plugin/core/FiveModelCameraBridge.d.ts +39 -0
- package/dist/DigitalPerformanceV2Plugin/core/PerformanceClock.d.ts +55 -0
- package/dist/DigitalPerformanceV2Plugin/core/Playground.d.ts +106 -0
- package/dist/DigitalPerformanceV2Plugin/core/shared.d.ts +4 -0
- package/dist/DigitalPerformanceV2Plugin/index.d.ts +9 -0
- package/dist/DigitalPerformanceV2Plugin/typings/index.d.ts +113 -0
- package/dist/index.cjs.js +84 -84
- package/dist/index.d.ts +1 -0
- package/dist/index.js +8217 -6924
- package/dist/index.umd.js +77 -77
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- 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 +11 -2
- package/docs/classes/DigitalPerformanceV2.DigitalPerformanceV2PluginController.html +156 -0
- package/docs/classes/DigitalPlayground.html +2 -2
- package/docs/classes/DigitalStateMachine.html +2 -2
- package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
- package/docs/classes/ModelMakerPluginInstance.html +2 -2
- package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +2 -2
- package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +2 -2
- package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +2 -2
- 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/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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 -0
- 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/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/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 +1 -1
- 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/createPolyline.html +2 -2
- package/docs/functions/pluginFlag.html +1 -1
- package/docs/functions/validatePolygon.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/index.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 +13 -0
- package/docs/interfaces/DigitalPerformanceV2.DigitalCameraKeyframe.html +23 -0
- package/docs/interfaces/DigitalPerformanceV2.DigitalCameraPlayer.html +7 -0
- package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceV2PluginConfig.html +7 -0
- package/docs/interfaces/DigitalPerformanceV2.GroupChapterTimeInfo.html +13 -0
- package/docs/interfaces/DigitalPerformanceV2.GroupProgress.html +18 -0
- package/docs/interfaces/DigitalPerformanceV2.V2Progress.html +10 -0
- 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/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/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/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.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/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/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/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.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 +2 -2
- 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 +16 -0
- package/docs/modules/GuideLineItem.html +2 -2
- package/docs/modules/GuideLineModeItem.html +2 -2
- package/docs/modules/GuideLinePluginType.html +2 -2
- 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 +2 -2
- package/docs/modules/Util.sculpt.html +2 -2
- package/docs/modules.html +3 -2
- 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/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 +7 -0
- package/docs/types/DigitalPerformanceV2.CameraTransition.html +7 -0
- package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginExportInterface.html +1 -0
- package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginParamsInterface.html +1 -0
- package/docs/types/DigitalPerformanceV2.V2ProgressListener.html +1 -0
- 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/FloorplanGuidePluginParameterType.html +1 -1
- package/docs/types/FloorplanGuidePluginReturnType.html +1 -1
- package/docs/types/FloorplanRuleLabels.html +2 -2
- 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/MeasureEndReason.html +1 -1
- package/docs/types/MeasurePluginConfig.html +2 -2
- package/docs/types/MeasurePluginEventMap.html +1 -1
- package/docs/types/MediaData.html +2 -2
- 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/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/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/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/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/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/FLOOR_TYPE_MAP.html +2 -2
- 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/DigitalPerformancePlugin/core/DigitalHuman.d.ts +18 -0
- package/libs/DigitalPerformancePlugin/core/DigitalHuman.js +198 -110
- package/libs/DigitalPerformanceV2Plugin/controller/index.d.ts +330 -0
- package/libs/DigitalPerformanceV2Plugin/controller/index.js +715 -0
- package/libs/DigitalPerformanceV2Plugin/core/CameraDirector.d.ts +61 -0
- package/libs/DigitalPerformanceV2Plugin/core/CameraDirector.js +101 -0
- package/libs/DigitalPerformanceV2Plugin/core/CameraSampler.d.ts +53 -0
- package/libs/DigitalPerformanceV2Plugin/core/CameraSampler.js +91 -0
- package/libs/DigitalPerformanceV2Plugin/core/CameraTrack.d.ts +21 -0
- package/libs/DigitalPerformanceV2Plugin/core/CameraTrack.js +32 -0
- package/libs/DigitalPerformanceV2Plugin/core/FiveModelCameraBridge.d.ts +39 -0
- package/libs/DigitalPerformanceV2Plugin/core/FiveModelCameraBridge.js +72 -0
- package/libs/DigitalPerformanceV2Plugin/core/PerformanceClock.d.ts +55 -0
- package/libs/DigitalPerformanceV2Plugin/core/PerformanceClock.js +98 -0
- package/libs/DigitalPerformanceV2Plugin/core/Playground.d.ts +106 -0
- package/libs/DigitalPerformanceV2Plugin/core/Playground.js +209 -0
- package/libs/DigitalPerformanceV2Plugin/core/shared.d.ts +4 -0
- package/libs/DigitalPerformanceV2Plugin/core/shared.js +12 -0
- package/libs/DigitalPerformanceV2Plugin/index/index.js +11 -0
- package/libs/DigitalPerformanceV2Plugin/index.d.ts +9 -0
- package/libs/DigitalPerformanceV2Plugin/index.js +20 -0
- package/libs/DigitalPerformanceV2Plugin/typings/index.d.ts +113 -0
- package/libs/DigitalPerformanceV2Plugin/typings/index.js +1 -0
- package/libs/base/BasePlugin.js +5 -5
- package/libs/floorplan/MapviewFloorplanPlugin/Controller.js +69 -66
- package/libs/floorplan/utils/correctFiveState.js +33 -33
- package/libs/index.d.ts +1 -0
- package/libs/index.js +167 -158
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
import type { CameraTrack } from './CameraTrack';
|
|
3
|
+
import type { PerformanceClock } from './PerformanceClock';
|
|
4
|
+
import type { CameraState } from '../typings';
|
|
5
|
+
/**
|
|
6
|
+
* CameraDirector —— 运镜导演(统一 Mapview / orbit 参数系)
|
|
7
|
+
*
|
|
8
|
+
* 绑定一条 CameraTrack,订阅统一时钟 tick,采样 CameraState 经 FiveModelCameraBridge 应用到相机。
|
|
9
|
+
* - 逐帧/seek 均以 immediately=true 贴合采样状态(不依赖 five 内插,跟随精确)。
|
|
10
|
+
* - setEnabled(false):后续播放 tick 不接管相机、保留 five 当前状态。
|
|
11
|
+
* - 空轨道/无关键帧:不接管相机。
|
|
12
|
+
*
|
|
13
|
+
* 由于运镜统一为 Mapview orbit 位姿,导演接管期间 five 始终是合法 Mapview 状态;
|
|
14
|
+
* 暂停只需停止 tick 即把相机「交还用户」——无需任何 look-from→orbit 转换(旧 applyAsOrbit / releaseToUser 已移除)。
|
|
15
|
+
*/
|
|
16
|
+
export declare class CameraDirector {
|
|
17
|
+
private bridge;
|
|
18
|
+
private track;
|
|
19
|
+
private clock;
|
|
20
|
+
private enabled;
|
|
21
|
+
private unsubTick;
|
|
22
|
+
constructor(five: Five);
|
|
23
|
+
/** 绑定/替换轨道(传 null 解绑) */
|
|
24
|
+
bindTrack(track: CameraTrack | null): void;
|
|
25
|
+
/** 跟随时钟播放:订阅 onTick → 采样 → 应用(仅在时钟实际播放时接管,编辑期 seek 不接管) */
|
|
26
|
+
attach(clock: PerformanceClock): void;
|
|
27
|
+
/** 解除时钟订阅(不清空 track) */
|
|
28
|
+
detach(): void;
|
|
29
|
+
/** 编辑端 seek 预览:立即采样并应用到指定时间(不依赖播放状态) */
|
|
30
|
+
seek(time: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* 直接将一个 CameraState 立即应用到 five(immediately=true),不经轨道/时钟。
|
|
33
|
+
* 供「章节默认视角」等编辑端能力使用。复用既有桥实例。
|
|
34
|
+
* 不受 enabled 开关与轨道是否有内容影响(调用方自行决定是否调用)。
|
|
35
|
+
* 应用后 five 即为合法 Mapview 状态,用户可立即正常拖拽(左键 orbit / 右键平移)。
|
|
36
|
+
*/
|
|
37
|
+
applyCameraStateImmediately(state: CameraState): void;
|
|
38
|
+
/**
|
|
39
|
+
* 暂停态 scrub 预览:采样 `track.sample(time)` 并立即应用(预览后交还用户可立即拖拽)。
|
|
40
|
+
* 仅在 enabled 且 track 有内容时应用;否则 no-op(与 seek 预览的接管前置条件一致)。
|
|
41
|
+
*/
|
|
42
|
+
previewAt(time: number): void;
|
|
43
|
+
/**
|
|
44
|
+
* 运镜开关。仅记录状态,不在此处写 five。
|
|
45
|
+
* - false:后续播放 tick 不接管相机。
|
|
46
|
+
* - true:后续播放 tick 按采样接管相机。
|
|
47
|
+
*/
|
|
48
|
+
setEnabled(enabled: boolean): void;
|
|
49
|
+
isEnabled(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* 接管前 prepare(无突变 user→director 切换)。
|
|
52
|
+
* - enabled 且 track 有内容时:经 `bridge.applyAnimated(track.sample(time))` 以内插动画平滑回到目标视角,
|
|
53
|
+
* await 过渡稳定后 resolve。暂停后用户拖动过的当前位姿与目标均为 Mapview 状态,动画为 orbit→orbit,干净不摆动。
|
|
54
|
+
* - 否则:立即 resolve(no-op)。
|
|
55
|
+
* 不触碰时钟、不改 enabled、不绑定/解绑轨道;调用方负责在时钟 start/resume 前 await,以保证 prepare 不计入播放时间。
|
|
56
|
+
*/
|
|
57
|
+
prepareTo(time: number): Promise<void>;
|
|
58
|
+
/** 释放:解订阅并清空轨道 */
|
|
59
|
+
dispose(): void;
|
|
60
|
+
private applyAt;
|
|
61
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
var k = Object.defineProperty;
|
|
2
|
+
var d = (e, t, i) => t in e ? k(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i;
|
|
3
|
+
var s = (e, t, i) => (d(e, typeof t != "symbol" ? t + "" : t, i), i);
|
|
4
|
+
var l = (e, t, i) => new Promise((c, n) => {
|
|
5
|
+
var u = (a) => {
|
|
6
|
+
try {
|
|
7
|
+
r(i.next(a));
|
|
8
|
+
} catch (h) {
|
|
9
|
+
n(h);
|
|
10
|
+
}
|
|
11
|
+
}, p = (a) => {
|
|
12
|
+
try {
|
|
13
|
+
r(i.throw(a));
|
|
14
|
+
} catch (h) {
|
|
15
|
+
n(h);
|
|
16
|
+
}
|
|
17
|
+
}, r = (a) => a.done ? c(a.value) : Promise.resolve(a.value).then(u, p);
|
|
18
|
+
r((i = i.apply(e, t)).next());
|
|
19
|
+
});
|
|
20
|
+
import { FiveModelCameraBridge as b } from "./FiveModelCameraBridge.js";
|
|
21
|
+
import "three";
|
|
22
|
+
class f {
|
|
23
|
+
constructor(t) {
|
|
24
|
+
s(this, "bridge");
|
|
25
|
+
s(this, "track", null);
|
|
26
|
+
s(this, "clock", null);
|
|
27
|
+
s(this, "enabled", !0);
|
|
28
|
+
s(this, "unsubTick", null);
|
|
29
|
+
this.bridge = new b(t);
|
|
30
|
+
}
|
|
31
|
+
/** 绑定/替换轨道(传 null 解绑) */
|
|
32
|
+
bindTrack(t) {
|
|
33
|
+
this.track = t;
|
|
34
|
+
}
|
|
35
|
+
/** 跟随时钟播放:订阅 onTick → 采样 → 应用(仅在时钟实际播放时接管,编辑期 seek 不接管) */
|
|
36
|
+
attach(t) {
|
|
37
|
+
this.detach(), this.clock = t, this.unsubTick = t.onTick((i) => {
|
|
38
|
+
this.clock && this.clock.isPlaying() && this.applyAt(i);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/** 解除时钟订阅(不清空 track) */
|
|
42
|
+
detach() {
|
|
43
|
+
this.unsubTick && (this.unsubTick(), this.unsubTick = null), this.clock = null;
|
|
44
|
+
}
|
|
45
|
+
/** 编辑端 seek 预览:立即采样并应用到指定时间(不依赖播放状态) */
|
|
46
|
+
seek(t) {
|
|
47
|
+
this.applyAt(t);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 直接将一个 CameraState 立即应用到 five(immediately=true),不经轨道/时钟。
|
|
51
|
+
* 供「章节默认视角」等编辑端能力使用。复用既有桥实例。
|
|
52
|
+
* 不受 enabled 开关与轨道是否有内容影响(调用方自行决定是否调用)。
|
|
53
|
+
* 应用后 five 即为合法 Mapview 状态,用户可立即正常拖拽(左键 orbit / 右键平移)。
|
|
54
|
+
*/
|
|
55
|
+
applyCameraStateImmediately(t) {
|
|
56
|
+
this.bridge.apply(t, !0);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 暂停态 scrub 预览:采样 `track.sample(time)` 并立即应用(预览后交还用户可立即拖拽)。
|
|
60
|
+
* 仅在 enabled 且 track 有内容时应用;否则 no-op(与 seek 预览的接管前置条件一致)。
|
|
61
|
+
*/
|
|
62
|
+
previewAt(t) {
|
|
63
|
+
this.enabled && (!this.track || !this.track.hasContent() || this.bridge.apply(this.track.sample(t), !0));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 运镜开关。仅记录状态,不在此处写 five。
|
|
67
|
+
* - false:后续播放 tick 不接管相机。
|
|
68
|
+
* - true:后续播放 tick 按采样接管相机。
|
|
69
|
+
*/
|
|
70
|
+
setEnabled(t) {
|
|
71
|
+
this.enabled = t;
|
|
72
|
+
}
|
|
73
|
+
isEnabled() {
|
|
74
|
+
return this.enabled;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 接管前 prepare(无突变 user→director 切换)。
|
|
78
|
+
* - enabled 且 track 有内容时:经 `bridge.applyAnimated(track.sample(time))` 以内插动画平滑回到目标视角,
|
|
79
|
+
* await 过渡稳定后 resolve。暂停后用户拖动过的当前位姿与目标均为 Mapview 状态,动画为 orbit→orbit,干净不摆动。
|
|
80
|
+
* - 否则:立即 resolve(no-op)。
|
|
81
|
+
* 不触碰时钟、不改 enabled、不绑定/解绑轨道;调用方负责在时钟 start/resume 前 await,以保证 prepare 不计入播放时间。
|
|
82
|
+
*/
|
|
83
|
+
prepareTo(t) {
|
|
84
|
+
return l(this, null, function* () {
|
|
85
|
+
this.enabled && (!this.track || !this.track.hasContent() || (yield this.bridge.applyAnimated(this.track.sample(t))));
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/** 释放:解订阅并清空轨道 */
|
|
89
|
+
dispose() {
|
|
90
|
+
this.detach(), this.track = null;
|
|
91
|
+
}
|
|
92
|
+
applyAt(t) {
|
|
93
|
+
if (!this.enabled || !this.track || !this.track.hasContent())
|
|
94
|
+
return;
|
|
95
|
+
const i = this.track.sample(t);
|
|
96
|
+
this.bridge.apply(i, !0);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
f as CameraDirector
|
|
101
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import type { CameraTransition, DigitalCameraKeyframe, CameraState } from '../typings';
|
|
3
|
+
/**
|
|
4
|
+
* CameraSampler —— 带插值的运镜采样(共享底座),统一在 five **Mapview**(orbit)参数系下补帧。
|
|
5
|
+
*
|
|
6
|
+
* 关键帧以 orbit 位姿表达:{ target, longitude, latitude, distance, fov }。
|
|
7
|
+
* 相邻帧的区间缓动由「较早」关键帧 kf[i] 的 transition 决定(与 Requirement 2.1 一致)。
|
|
8
|
+
* - target:分量线性插值(Vector3 lerp)
|
|
9
|
+
* - longitude:最短弧角度插值(处理 ±π 环绕)
|
|
10
|
+
* - latitude / distance / fov:线性插值
|
|
11
|
+
* 末帧封顶、首帧夹紧;'instant' 直接 snap 到当前帧;不修改入参。
|
|
12
|
+
*
|
|
13
|
+
* 相对旧的「position+forward / look-from」表示:orbit 参数系下相邻帧的插值是「绕目标点的圆弧运动」,
|
|
14
|
+
* 与用户在 Mapview 编辑时所见一致(绕主体环绕),而非两点间直线 dolly。
|
|
15
|
+
*/
|
|
16
|
+
/** 把数值夹紧到 [min, max] */
|
|
17
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
18
|
+
/**
|
|
19
|
+
* 二分查找:返回 timeStamp <= time 的最大关键帧下标。
|
|
20
|
+
* 前置:keyframes 非空且按 timeStamp 升序。后置:0 <= 返回 <= length-1;早于首帧返回 0。
|
|
21
|
+
*/
|
|
22
|
+
export declare function getKeyframeIndexByTime(time: number, keyframes: ReadonlyArray<{
|
|
23
|
+
timeStamp: number;
|
|
24
|
+
}>): number;
|
|
25
|
+
/**
|
|
26
|
+
* 缓动函数:把线性进度 p∈[0,1] 映射为缓动后的插值因子。
|
|
27
|
+
* - 'easeInOut' : smoothstep p*p*(3-2p)
|
|
28
|
+
* - 其它(含 'linear' / undefined) : 恒等
|
|
29
|
+
* 端点固定:ease(0)=0、ease(1)=1;值域有界:p∈[0,1] ⇒ 返回 ∈[0,1]。
|
|
30
|
+
*/
|
|
31
|
+
export declare function ease(p: number, transition?: CameraTransition): number;
|
|
32
|
+
/**
|
|
33
|
+
* 归一化时间比例:p = clamp((time - curTs) / (nextTs - curTs), 0, 1)。
|
|
34
|
+
* nextTs <= curTs(异常或零长区间)时返回 0,避免除零。
|
|
35
|
+
*/
|
|
36
|
+
export declare function normalizedRatio(time: number, curTs: number, nextTs: number): number;
|
|
37
|
+
/** 最短弧角度插值:沿 (-π,π] 的最短方向从 a 插到 b。 */
|
|
38
|
+
export declare function lerpAngle(a: number, b: number, t: number): number;
|
|
39
|
+
/** 采样 orbit 目标点(分量线性插值)。末帧封顶、'instant' 取当前帧。 */
|
|
40
|
+
export declare function sampleTarget(time: number, keyframes: ReadonlyArray<DigitalCameraKeyframe>): THREE.Vector3;
|
|
41
|
+
/** 采样 longitude(最短弧角度插值)。 */
|
|
42
|
+
export declare function sampleLongitude(time: number, keyframes: ReadonlyArray<DigitalCameraKeyframe>): number;
|
|
43
|
+
/** 采样 latitude(线性插值)。 */
|
|
44
|
+
export declare function sampleLatitude(time: number, keyframes: ReadonlyArray<DigitalCameraKeyframe>): number;
|
|
45
|
+
/** 采样 distance(线性插值)。 */
|
|
46
|
+
export declare function sampleDistance(time: number, keyframes: ReadonlyArray<DigitalCameraKeyframe>): number;
|
|
47
|
+
/** 采样 fov(线性插值);末帧封顶、'instant' 取当前帧。 */
|
|
48
|
+
export declare function sampleFov(time: number, keyframes: ReadonlyArray<DigitalCameraKeyframe>): number;
|
|
49
|
+
/**
|
|
50
|
+
* 组装:按时间采样出统一 CameraState(已插值,Mapview orbit 位姿)。
|
|
51
|
+
* 单关键帧时对任意时间返回该唯一帧位姿。不修改入参。
|
|
52
|
+
*/
|
|
53
|
+
export declare function sampleCameraState(time: number, keyframes: ReadonlyArray<DigitalCameraKeyframe>): CameraState;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as p from "three";
|
|
2
|
+
function l(o, t, i) {
|
|
3
|
+
return o < t ? t : o > i ? i : o;
|
|
4
|
+
}
|
|
5
|
+
function u(o, t) {
|
|
6
|
+
const i = t.length;
|
|
7
|
+
if (i <= 1 || o <= t[0].timeStamp)
|
|
8
|
+
return 0;
|
|
9
|
+
if (o >= t[i - 1].timeStamp)
|
|
10
|
+
return i - 1;
|
|
11
|
+
let n = 0, r = i - 1;
|
|
12
|
+
for (; r - n > 1; ) {
|
|
13
|
+
const c = n + r >> 1;
|
|
14
|
+
t[c].timeStamp <= o ? n = c : r = c;
|
|
15
|
+
}
|
|
16
|
+
return n;
|
|
17
|
+
}
|
|
18
|
+
function e(o, t) {
|
|
19
|
+
const i = l(o, 0, 1);
|
|
20
|
+
return t === "easeInOut" ? i * i * (3 - 2 * i) : i;
|
|
21
|
+
}
|
|
22
|
+
function a(o, t, i) {
|
|
23
|
+
const n = i - t;
|
|
24
|
+
return n <= 0 ? 0 : l((o - t) / n, 0, 1);
|
|
25
|
+
}
|
|
26
|
+
function d(o, t, i) {
|
|
27
|
+
const n = Math.atan2(Math.sin(t - o), Math.cos(t - o));
|
|
28
|
+
return o + n * i;
|
|
29
|
+
}
|
|
30
|
+
function s(o) {
|
|
31
|
+
var i, n, r, c;
|
|
32
|
+
const t = (i = o.target) != null ? i : [0, 0, 0];
|
|
33
|
+
return new p.Vector3((n = t[0]) != null ? n : 0, (r = t[1]) != null ? r : 0, (c = t[2]) != null ? c : 0);
|
|
34
|
+
}
|
|
35
|
+
function g(o, t) {
|
|
36
|
+
const i = u(o, t), n = t[i];
|
|
37
|
+
if (i === t.length - 1 || n.transition === "instant")
|
|
38
|
+
return s(n);
|
|
39
|
+
const r = t[i + 1], c = e(a(o, n.timeStamp, r.timeStamp), n.transition);
|
|
40
|
+
return s(n).lerp(s(r), c);
|
|
41
|
+
}
|
|
42
|
+
function S(o, t) {
|
|
43
|
+
const i = u(o, t), n = t[i];
|
|
44
|
+
if (i === t.length - 1 || n.transition === "instant")
|
|
45
|
+
return n.longitude;
|
|
46
|
+
const r = t[i + 1], c = e(a(o, n.timeStamp, r.timeStamp), n.transition);
|
|
47
|
+
return d(n.longitude, r.longitude, c);
|
|
48
|
+
}
|
|
49
|
+
function f(o, t) {
|
|
50
|
+
const i = u(o, t), n = t[i];
|
|
51
|
+
if (i === t.length - 1 || n.transition === "instant")
|
|
52
|
+
return n.latitude;
|
|
53
|
+
const r = t[i + 1], c = e(a(o, n.timeStamp, r.timeStamp), n.transition);
|
|
54
|
+
return n.latitude + (r.latitude - n.latitude) * c;
|
|
55
|
+
}
|
|
56
|
+
function h(o, t) {
|
|
57
|
+
const i = u(o, t), n = t[i];
|
|
58
|
+
if (i === t.length - 1 || n.transition === "instant")
|
|
59
|
+
return n.distance;
|
|
60
|
+
const r = t[i + 1], c = e(a(o, n.timeStamp, r.timeStamp), n.transition);
|
|
61
|
+
return n.distance + (r.distance - n.distance) * c;
|
|
62
|
+
}
|
|
63
|
+
function x(o, t) {
|
|
64
|
+
const i = u(o, t), n = t[i];
|
|
65
|
+
if (i === t.length - 1 || n.transition === "instant")
|
|
66
|
+
return n.fov;
|
|
67
|
+
const r = t[i + 1], c = e(a(o, n.timeStamp, r.timeStamp), n.transition);
|
|
68
|
+
return n.fov + (r.fov - n.fov) * c;
|
|
69
|
+
}
|
|
70
|
+
function m(o, t) {
|
|
71
|
+
return {
|
|
72
|
+
target: g(o, t),
|
|
73
|
+
longitude: S(o, t),
|
|
74
|
+
latitude: f(o, t),
|
|
75
|
+
distance: h(o, t),
|
|
76
|
+
fov: x(o, t)
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
l as clamp,
|
|
81
|
+
e as ease,
|
|
82
|
+
u as getKeyframeIndexByTime,
|
|
83
|
+
d as lerpAngle,
|
|
84
|
+
a as normalizedRatio,
|
|
85
|
+
m as sampleCameraState,
|
|
86
|
+
h as sampleDistance,
|
|
87
|
+
x as sampleFov,
|
|
88
|
+
f as sampleLatitude,
|
|
89
|
+
S as sampleLongitude,
|
|
90
|
+
g as sampleTarget
|
|
91
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CameraState, DigitalCameraKeyframe } from '../typings';
|
|
2
|
+
/**
|
|
3
|
+
* CameraTrack —— 相机轨道
|
|
4
|
+
*
|
|
5
|
+
* 把运镜关键帧序列封装为可按时间采样(含插值)的轨道,委托 CameraSampler 完成补帧。
|
|
6
|
+
* 关键帧统一为 Mapview orbit 位姿 { target, longitude, latitude, distance, fov }。
|
|
7
|
+
*/
|
|
8
|
+
export declare class CameraTrack {
|
|
9
|
+
private keyframes;
|
|
10
|
+
/** 设置/替换关键帧序列(按 timeStamp 升序,不修改入参数组) */
|
|
11
|
+
setKeyframes(keyframes: ReadonlyArray<DigitalCameraKeyframe>): void;
|
|
12
|
+
/** 按时间采样出统一 CameraState(已插值) */
|
|
13
|
+
sample(time: number): CameraState;
|
|
14
|
+
/** 本轨道有效时间范围(首帧~末帧 timeStamp) */
|
|
15
|
+
getTimeRange(): {
|
|
16
|
+
start: number;
|
|
17
|
+
end: number;
|
|
18
|
+
};
|
|
19
|
+
/** 是否有可用关键帧 */
|
|
20
|
+
hasContent(): boolean;
|
|
21
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var s = Object.defineProperty;
|
|
2
|
+
var i = (r, e, t) => e in r ? s(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
|
3
|
+
var a = (r, e, t) => (i(r, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
+
import { sampleCameraState as n } from "./CameraSampler.js";
|
|
5
|
+
import "three";
|
|
6
|
+
class p {
|
|
7
|
+
constructor() {
|
|
8
|
+
a(this, "keyframes", []);
|
|
9
|
+
}
|
|
10
|
+
/** 设置/替换关键帧序列(按 timeStamp 升序,不修改入参数组) */
|
|
11
|
+
setKeyframes(e) {
|
|
12
|
+
this.keyframes = [...e].sort((t, m) => t.timeStamp - m.timeStamp);
|
|
13
|
+
}
|
|
14
|
+
/** 按时间采样出统一 CameraState(已插值) */
|
|
15
|
+
sample(e) {
|
|
16
|
+
return n(e, this.keyframes);
|
|
17
|
+
}
|
|
18
|
+
/** 本轨道有效时间范围(首帧~末帧 timeStamp) */
|
|
19
|
+
getTimeRange() {
|
|
20
|
+
return this.keyframes.length === 0 ? { start: 0, end: 0 } : {
|
|
21
|
+
start: this.keyframes[0].timeStamp,
|
|
22
|
+
end: this.keyframes[this.keyframes.length - 1].timeStamp
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** 是否有可用关键帧 */
|
|
26
|
+
hasContent() {
|
|
27
|
+
return this.keyframes.length > 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
p as CameraTrack
|
|
32
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
import type { CameraState } from '../typings';
|
|
3
|
+
/**
|
|
4
|
+
* FiveModelCameraBridge —— CameraState ↔ five **Mapview**(地图态 / orbit)参数的唯一收敛点。
|
|
5
|
+
*
|
|
6
|
+
* 统一运镜采用 Mapview orbit 位姿:相机绕 `target` 旋转,
|
|
7
|
+
* 相机位置 = target − coordinatesToVector(longitude, latitude) × distance,视线恒指向 `target`。
|
|
8
|
+
* 因此「播放逐帧接管」与「暂停交还用户拖拽」处于同一参数系:
|
|
9
|
+
* 暂停瞬间 five 已是合法 Mapview 状态(offset=target、distance>0),用户可直接左键 orbit / 右键平移,
|
|
10
|
+
* 无需任何 look-from→orbit 转换、无跳变。
|
|
11
|
+
*
|
|
12
|
+
* apply:target→offset、longitude/latitude/distance 直传、fov 钳制、mode='Mapview'。
|
|
13
|
+
* capture:从 five 当前 Mapview 位姿反读一个 CameraState。
|
|
14
|
+
*
|
|
15
|
+
* 注:类名沿用历史 `FiveModelCameraBridge`(避免大范围改名);实际目标模态为 Mapview。
|
|
16
|
+
*/
|
|
17
|
+
export declare class FiveModelCameraBridge {
|
|
18
|
+
private five;
|
|
19
|
+
constructor(five: Five);
|
|
20
|
+
/**
|
|
21
|
+
* 将 CameraState 应用到 five(mode:'Mapview')。对 `five.setState` 恰好一次。
|
|
22
|
+
* - fov 钳制到开区间 (0,180)(含 fov<=0 与 NaN),不拒绝、不抛错。
|
|
23
|
+
* @param immediately five.setState 第二参数。true(缺省)= 立即贴合目标(逐帧驱动/seek 用);false = 走 five 内插动画。
|
|
24
|
+
*/
|
|
25
|
+
apply(state: CameraState, immediately?: boolean): void;
|
|
26
|
+
/**
|
|
27
|
+
* 加法式:以「走 five 内插动画」的方式应用 CameraState(`apply` 的 immediately=false 分支),
|
|
28
|
+
* 返回一个在过渡完成后 resolve 的 Promise。
|
|
29
|
+
* - 映射规则与 `apply` 完全一致,对 `five.setState` 恰好一次,仅第二参数取 false(动画)。
|
|
30
|
+
* - 完成信号:`five.setState` 返回 void、无可等待对象,故以一次过渡时长(CAMERA_TRANSITION_MS)兜底后 resolve。
|
|
31
|
+
*/
|
|
32
|
+
applyAnimated(state: CameraState): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* 从 five 当前 Mapview 位姿反读一个 CameraState。
|
|
35
|
+
* five.getCurrentState() 返回 { offset, longitude, latitude, distance, fov }(来自相机 pose),
|
|
36
|
+
* 其中 offset 即 orbit 目标点(target)。
|
|
37
|
+
*/
|
|
38
|
+
capture(): CameraState;
|
|
39
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var u = Object.defineProperty;
|
|
2
|
+
var d = (t, e, i) => e in t ? u(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i;
|
|
3
|
+
var n = (t, e, i) => (d(t, typeof e != "symbol" ? e + "" : e, i), i);
|
|
4
|
+
import * as a from "three";
|
|
5
|
+
const o = 1e-6, l = 700;
|
|
6
|
+
function r(t) {
|
|
7
|
+
return t > 0 ? t >= 180 ? 180 - o : t : o;
|
|
8
|
+
}
|
|
9
|
+
class f {
|
|
10
|
+
constructor(e) {
|
|
11
|
+
n(this, "five");
|
|
12
|
+
this.five = e;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 将 CameraState 应用到 five(mode:'Mapview')。对 `five.setState` 恰好一次。
|
|
16
|
+
* - fov 钳制到开区间 (0,180)(含 fov<=0 与 NaN),不拒绝、不抛错。
|
|
17
|
+
* @param immediately five.setState 第二参数。true(缺省)= 立即贴合目标(逐帧驱动/seek 用);false = 走 five 内插动画。
|
|
18
|
+
*/
|
|
19
|
+
apply(e, i = !0) {
|
|
20
|
+
this.five.setState(
|
|
21
|
+
{
|
|
22
|
+
offset: e.target.clone(),
|
|
23
|
+
longitude: e.longitude,
|
|
24
|
+
latitude: e.latitude,
|
|
25
|
+
distance: e.distance,
|
|
26
|
+
fov: r(e.fov),
|
|
27
|
+
mode: "Mapview"
|
|
28
|
+
},
|
|
29
|
+
i
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 加法式:以「走 five 内插动画」的方式应用 CameraState(`apply` 的 immediately=false 分支),
|
|
34
|
+
* 返回一个在过渡完成后 resolve 的 Promise。
|
|
35
|
+
* - 映射规则与 `apply` 完全一致,对 `five.setState` 恰好一次,仅第二参数取 false(动画)。
|
|
36
|
+
* - 完成信号:`five.setState` 返回 void、无可等待对象,故以一次过渡时长(CAMERA_TRANSITION_MS)兜底后 resolve。
|
|
37
|
+
*/
|
|
38
|
+
applyAnimated(e) {
|
|
39
|
+
return this.five.setState(
|
|
40
|
+
{
|
|
41
|
+
offset: e.target.clone(),
|
|
42
|
+
longitude: e.longitude,
|
|
43
|
+
latitude: e.latitude,
|
|
44
|
+
distance: e.distance,
|
|
45
|
+
fov: r(e.fov),
|
|
46
|
+
mode: "Mapview"
|
|
47
|
+
},
|
|
48
|
+
/* immediately */
|
|
49
|
+
!1
|
|
50
|
+
), new Promise((i) => {
|
|
51
|
+
setTimeout(i, l);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 从 five 当前 Mapview 位姿反读一个 CameraState。
|
|
56
|
+
* five.getCurrentState() 返回 { offset, longitude, latitude, distance, fov }(来自相机 pose),
|
|
57
|
+
* 其中 offset 即 orbit 目标点(target)。
|
|
58
|
+
*/
|
|
59
|
+
capture() {
|
|
60
|
+
const e = this.five.getCurrentState();
|
|
61
|
+
return {
|
|
62
|
+
target: e.offset ? e.offset.clone() : new a.Vector3(),
|
|
63
|
+
longitude: Number.isFinite(e.longitude) ? e.longitude : 0,
|
|
64
|
+
latitude: Number.isFinite(e.latitude) ? e.latitude : 0,
|
|
65
|
+
distance: Number.isFinite(e.distance) ? e.distance : 0,
|
|
66
|
+
fov: e.fov
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
f as FiveModelCameraBridge
|
|
72
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
export type ClockTickListener = (time: number, delta: number) => void;
|
|
3
|
+
export type ClockEndedListener = () => void;
|
|
4
|
+
/**
|
|
5
|
+
* PerformanceClock —— 统一章节时钟(共享底座)
|
|
6
|
+
*
|
|
7
|
+
* 以 five 的 'renderFrame' 为唯一节拍源,维护章节内全局播放时间 t 并广播 tick。
|
|
8
|
+
* 取代各 DigitalHuman 内部独立的 requestAnimationFrame 与 Math.max 进度反推。
|
|
9
|
+
*
|
|
10
|
+
* 不变量:0 <= time <= duration;playing 期间相邻 tick 的 time 非递减(封顶 duration)。
|
|
11
|
+
*/
|
|
12
|
+
export declare class PerformanceClock {
|
|
13
|
+
private five;
|
|
14
|
+
private duration;
|
|
15
|
+
private time;
|
|
16
|
+
private playing;
|
|
17
|
+
private lastFrameTs;
|
|
18
|
+
private tickListeners;
|
|
19
|
+
private endedListeners;
|
|
20
|
+
constructor(five: Five);
|
|
21
|
+
/**
|
|
22
|
+
* 启动时钟。
|
|
23
|
+
* - duration<=0:不订阅 renderFrame、time 置 0、立即触发一次 ended。
|
|
24
|
+
* - 否则:time = clamp(fromTime, 0, duration),订阅 renderFrame 作为唯一节拍源。
|
|
25
|
+
*/
|
|
26
|
+
start(duration: number, fromTime?: number): void;
|
|
27
|
+
/**
|
|
28
|
+
* 配置时长但不启动、不订阅 renderFrame(供播放/预览专用切章 prepareChapter 使用)。
|
|
29
|
+
* 加法式新增:仅设置 duration 并把当前 time 夹紧到新 duration,不改变 playing 状态。
|
|
30
|
+
*/
|
|
31
|
+
setDuration(duration: number): void;
|
|
32
|
+
/** 暂停:停止累加并保留当前 time */
|
|
33
|
+
pause(): void;
|
|
34
|
+
/** 续播:从保留的 time 继续;续播后首帧 delta 记 0,不产生跳变 */
|
|
35
|
+
resume(): void;
|
|
36
|
+
/** 跳转(seek 预览):不改变播放状态;重置帧基准并广播一次 tick(0) */
|
|
37
|
+
seek(targetTime: number): void;
|
|
38
|
+
/** 停止:停表、解订阅、time 归零,可被再次 start */
|
|
39
|
+
stop(): void;
|
|
40
|
+
getTime(): number;
|
|
41
|
+
getDuration(): number;
|
|
42
|
+
isPlaying(): boolean;
|
|
43
|
+
/** 注册每帧 tick 监听;返回反订阅函数 */
|
|
44
|
+
onTick(listener: ClockTickListener): () => void;
|
|
45
|
+
/** 注册自然结束监听;返回反订阅函数 */
|
|
46
|
+
onEnded(listener: ClockEndedListener): () => void;
|
|
47
|
+
/** 释放:解订阅并清空监听 */
|
|
48
|
+
dispose(): void;
|
|
49
|
+
private clampTime;
|
|
50
|
+
private subscribeFrame;
|
|
51
|
+
private unsubscribeFrame;
|
|
52
|
+
private onFrame;
|
|
53
|
+
private emitTick;
|
|
54
|
+
private emitEnded;
|
|
55
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
var r = Object.defineProperty;
|
|
2
|
+
var n = (s, i, t) => i in s ? r(s, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[i] = t;
|
|
3
|
+
var e = (s, i, t) => (n(s, typeof i != "symbol" ? i + "" : i, t), t);
|
|
4
|
+
class h {
|
|
5
|
+
constructor(i) {
|
|
6
|
+
e(this, "five");
|
|
7
|
+
e(this, "duration", 0);
|
|
8
|
+
e(this, "time", 0);
|
|
9
|
+
e(this, "playing", !1);
|
|
10
|
+
e(this, "lastFrameTs", null);
|
|
11
|
+
e(this, "tickListeners", /* @__PURE__ */ new Set());
|
|
12
|
+
e(this, "endedListeners", /* @__PURE__ */ new Set());
|
|
13
|
+
e(this, "onFrame", () => {
|
|
14
|
+
if (!this.playing)
|
|
15
|
+
return;
|
|
16
|
+
this.five.needsRender = !0;
|
|
17
|
+
const i = performance.now();
|
|
18
|
+
this.lastFrameTs === null && (this.lastFrameTs = i);
|
|
19
|
+
let t = i - this.lastFrameTs;
|
|
20
|
+
this.lastFrameTs = i, (t > 200 || t < 0) && (t = 0), this.time = Math.min(this.time + t, this.duration), this.emitTick(t), this.time >= this.duration && (this.playing = !1, this.unsubscribeFrame(), this.emitEnded());
|
|
21
|
+
});
|
|
22
|
+
this.five = i;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 启动时钟。
|
|
26
|
+
* - duration<=0:不订阅 renderFrame、time 置 0、立即触发一次 ended。
|
|
27
|
+
* - 否则:time = clamp(fromTime, 0, duration),订阅 renderFrame 作为唯一节拍源。
|
|
28
|
+
*/
|
|
29
|
+
start(i, t = 0) {
|
|
30
|
+
if (this.duration = i, !(i > 0)) {
|
|
31
|
+
this.duration = 0, this.time = 0, this.playing = !1, this.lastFrameTs = null, this.unsubscribeFrame(), this.emitEnded();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.time = this.clampTime(t), this.playing = !0, this.lastFrameTs = null, this.subscribeFrame();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 配置时长但不启动、不订阅 renderFrame(供播放/预览专用切章 prepareChapter 使用)。
|
|
38
|
+
* 加法式新增:仅设置 duration 并把当前 time 夹紧到新 duration,不改变 playing 状态。
|
|
39
|
+
*/
|
|
40
|
+
setDuration(i) {
|
|
41
|
+
this.duration = i > 0 ? i : 0, this.time = this.clampTime(this.time);
|
|
42
|
+
}
|
|
43
|
+
/** 暂停:停止累加并保留当前 time */
|
|
44
|
+
pause() {
|
|
45
|
+
this.playing = !1;
|
|
46
|
+
}
|
|
47
|
+
/** 续播:从保留的 time 继续;续播后首帧 delta 记 0,不产生跳变 */
|
|
48
|
+
resume() {
|
|
49
|
+
this.playing || this.duration <= 0 || this.time >= this.duration || (this.playing = !0, this.lastFrameTs = null, this.subscribeFrame());
|
|
50
|
+
}
|
|
51
|
+
/** 跳转(seek 预览):不改变播放状态;重置帧基准并广播一次 tick(0) */
|
|
52
|
+
seek(i) {
|
|
53
|
+
this.time = this.clampTime(i), this.lastFrameTs = null, this.emitTick(0);
|
|
54
|
+
}
|
|
55
|
+
/** 停止:停表、解订阅、time 归零,可被再次 start */
|
|
56
|
+
stop() {
|
|
57
|
+
this.playing = !1, this.time = 0, this.lastFrameTs = null, this.unsubscribeFrame();
|
|
58
|
+
}
|
|
59
|
+
getTime() {
|
|
60
|
+
return this.time;
|
|
61
|
+
}
|
|
62
|
+
getDuration() {
|
|
63
|
+
return this.duration;
|
|
64
|
+
}
|
|
65
|
+
isPlaying() {
|
|
66
|
+
return this.playing;
|
|
67
|
+
}
|
|
68
|
+
/** 注册每帧 tick 监听;返回反订阅函数 */
|
|
69
|
+
onTick(i) {
|
|
70
|
+
return this.tickListeners.add(i), () => this.tickListeners.delete(i);
|
|
71
|
+
}
|
|
72
|
+
/** 注册自然结束监听;返回反订阅函数 */
|
|
73
|
+
onEnded(i) {
|
|
74
|
+
return this.endedListeners.add(i), () => this.endedListeners.delete(i);
|
|
75
|
+
}
|
|
76
|
+
/** 释放:解订阅并清空监听 */
|
|
77
|
+
dispose() {
|
|
78
|
+
this.unsubscribeFrame(), this.tickListeners.clear(), this.endedListeners.clear();
|
|
79
|
+
}
|
|
80
|
+
clampTime(i) {
|
|
81
|
+
return i > 0 ? i > this.duration ? this.duration : i : 0;
|
|
82
|
+
}
|
|
83
|
+
subscribeFrame() {
|
|
84
|
+
this.five.off("renderFrame", this.onFrame), this.five.on("renderFrame", this.onFrame);
|
|
85
|
+
}
|
|
86
|
+
unsubscribeFrame() {
|
|
87
|
+
this.five.off("renderFrame", this.onFrame);
|
|
88
|
+
}
|
|
89
|
+
emitTick(i) {
|
|
90
|
+
this.tickListeners.forEach((t) => t(this.time, i));
|
|
91
|
+
}
|
|
92
|
+
emitEnded() {
|
|
93
|
+
this.endedListeners.forEach((i) => i());
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
h as PerformanceClock
|
|
98
|
+
};
|