@realsee/dnalogel 3.80.8-alpha.2 → 3.81.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DigitalPerformancePlugin/core/DigitalHuman.d.ts +18 -0
- package/dist/DigitalPerformanceV2Plugin/controller/index.d.ts +351 -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 -101
- package/dist/index.d.ts +1 -0
- package/dist/index.js +8739 -7470
- package/dist/index.umd.js +77 -94
- 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 +165 -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/CruisePlugin/Move.js +2 -4
- package/libs/CruisePlugin/Work.js +2 -4
- package/libs/CruisePlugin/index.js +6 -8
- package/libs/DigitalPerformancePlugin/core/DigitalHuman.d.ts +18 -0
- package/libs/DigitalPerformancePlugin/core/DigitalHuman.js +198 -110
- package/libs/DigitalPerformanceV2Plugin/controller/index.d.ts +351 -0
- package/libs/DigitalPerformanceV2Plugin/controller/index.js +750 -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/GuideLinePlugin/Controller.js +4 -6
- package/libs/GuideLinePlugin/GuideLineItem.js +2 -4
- package/libs/GuideLinePlugin/GuideLineModeItem.js +2 -4
- package/libs/GuideLinePlugin/index.js +6 -8
- package/libs/PanoTagPlugin/Components/Tag/index.js +2 -4
- package/libs/PanoTagPlugin/Components/TagContainer.js +2 -4
- package/libs/PanoTagPlugin/Components/TagItem.js +2 -4
- package/libs/PanoTagPlugin/controller/Tag/ModelTag.js +2 -4
- package/libs/PanoTagPlugin/controller/Tag/PlaneTag.js +2 -4
- package/libs/PanoTagPlugin/controller/TagRender.js +2 -4
- package/libs/PanoTagPlugin/controller/TagUtil.js +2 -4
- package/libs/PanoTagPlugin/controller/index.js +5 -7
- package/libs/PanoTagPlugin/index.js +11 -13
- package/libs/PanoTagPlugin/utils/model/mediaPlane.js +126 -129
- package/libs/base/BasePlugin.js +1 -1
- package/libs/index.d.ts +1 -0
- package/libs/index.js +167 -160
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +2 -1
- package/dist/shared-utils/three/StackedAlphaVideoMaterial.d.ts +0 -12
- package/dist/shared-utils/three/isStackedAlphaVideo.d.ts +0 -1
- package/libs/shared-utils/three/StackedAlphaVideoMaterial.d.ts +0 -12
- package/libs/shared-utils/three/StackedAlphaVideoMaterial.js +0 -55
- package/libs/shared-utils/three/isStackedAlphaVideo.d.ts +0 -1
- package/libs/shared-utils/three/isStackedAlphaVideo.js +0 -7
|
@@ -27,6 +27,7 @@ export declare class DigitalHuman {
|
|
|
27
27
|
private processedNeedRenderKeyframeIndices;
|
|
28
28
|
private attachedItems;
|
|
29
29
|
private rightHandBone;
|
|
30
|
+
private externalTextures;
|
|
30
31
|
constructor(model: GLTFObject, digitalPlayground: any);
|
|
31
32
|
playAnimation({ animation, repeat, switchDuration }: {
|
|
32
33
|
animation: THREE.AnimationClip;
|
|
@@ -44,6 +45,23 @@ export declare class DigitalHuman {
|
|
|
44
45
|
items: DigitalModelPlayerItem[];
|
|
45
46
|
effects: DigitalModelPlayerEffect[];
|
|
46
47
|
}): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* 加法式新增:为「外部统一时钟驱动」做一次性准备(不启动 rAF、不累加时间)。
|
|
50
|
+
* 设置 keyframes/items/effects,绑定道具骨骼,预加载特效贴图到 externalTextures。
|
|
51
|
+
* 与既有 play() 互不影响:play() 仍走其内部自驱 rAF 路径。
|
|
52
|
+
*/
|
|
53
|
+
prepareExternalDrive(option?: {
|
|
54
|
+
keyframes?: DigitalModelKeyframe[];
|
|
55
|
+
items?: DigitalModelPlayerItem[];
|
|
56
|
+
effects?: DigitalModelPlayerEffect[];
|
|
57
|
+
}): void;
|
|
58
|
+
/**
|
|
59
|
+
* 加法式新增:按外部给定的全局时间渲染当前帧(供 DigitalPerformanceV2Plugin 的统一时钟驱动)。
|
|
60
|
+
* 不持有 requestAnimationFrame、不累加自身时间、不 resolve;调用前请先 prepareExternalDrive。
|
|
61
|
+
* @param time 章节内全局时间(ms)
|
|
62
|
+
* @param delta 距上一帧的时间增量(ms),用于推进骨骼动画 mixer
|
|
63
|
+
*/
|
|
64
|
+
renderAtTime(time: number, delta: number): void;
|
|
47
65
|
traceUpDate(): void;
|
|
48
66
|
clearTrace(): void;
|
|
49
67
|
clearProcessedNeedRenderKeyframeIndices(): void;
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import type { Five } from '@realsee/five';
|
|
2
|
+
import type { DigitalPerformanceV2PluginConfig, DigitalCameraKeyframe, DigitalCameraPlayer, CameraTransition, CameraCoordinateSpace, CameraState, GroupChapterTimeInfo, GroupProgress } from '../typings';
|
|
3
|
+
import { PerformancePlayground } from '../core/Playground';
|
|
4
|
+
import type { DigitalScript, DigitalChapter } from '../core/shared';
|
|
5
|
+
/** 播放进度(当前章节内) */
|
|
6
|
+
export interface V2Progress {
|
|
7
|
+
/** 当前时间(ms) */
|
|
8
|
+
currentTime: number;
|
|
9
|
+
/** 当前章节总时长(ms) */
|
|
10
|
+
totalTime: number;
|
|
11
|
+
/** 当前章节索引(0-based;无当前章节为 -1) */
|
|
12
|
+
currentChapterIndex: number;
|
|
13
|
+
/** 当前动画组内的章节总数 */
|
|
14
|
+
totalChapters: number;
|
|
15
|
+
}
|
|
16
|
+
export type V2ProgressListener = (progress: V2Progress) => void;
|
|
17
|
+
/** 组级进度监听 */
|
|
18
|
+
export type GroupProgressListener = (progress: GroupProgress) => void;
|
|
19
|
+
/** 运镜关键帧捕获/编辑的可选项 */
|
|
20
|
+
export interface CameraKeyframeOptions {
|
|
21
|
+
/** 到下一关键帧的过渡缓动(缺省 'linear') */
|
|
22
|
+
transition?: CameraTransition;
|
|
23
|
+
/** 关键帧缩略图 URL(COS 直传得到;运行时忽略) */
|
|
24
|
+
thumbnail?: string;
|
|
25
|
+
}
|
|
26
|
+
/** 运镜关键帧增删改操作结果(拒绝时 success=false 并保持序列不变) */
|
|
27
|
+
export interface CameraKeyframeResult {
|
|
28
|
+
success: boolean;
|
|
29
|
+
/** 失败原因(success=false 时存在) */
|
|
30
|
+
error?: string;
|
|
31
|
+
/** 操作后的最新关键帧序列(升序,副本) */
|
|
32
|
+
keyframes: DigitalCameraKeyframe[];
|
|
33
|
+
}
|
|
34
|
+
/** setTimelineTo 操作结果 */
|
|
35
|
+
export interface SetTimelineResult {
|
|
36
|
+
success: boolean;
|
|
37
|
+
error?: string;
|
|
38
|
+
}
|
|
39
|
+
/** 序列化运镜 player 的结果 */
|
|
40
|
+
export interface SerializeCameraResult {
|
|
41
|
+
success: boolean;
|
|
42
|
+
error?: string;
|
|
43
|
+
player?: DigitalCameraPlayer;
|
|
44
|
+
}
|
|
45
|
+
/** 关键帧序列变更监听(携带升序最新序列) */
|
|
46
|
+
export type CameraKeyframesChangedListener = (keyframes: DigitalCameraKeyframe[]) => void;
|
|
47
|
+
/** 当前章节信息(编辑端用) */
|
|
48
|
+
export interface CurrentChapterInfo {
|
|
49
|
+
/** 当前章节索引(0-based;无当前章节为 -1) */
|
|
50
|
+
index: number;
|
|
51
|
+
/** 当前章节名称(无当前章节为空串) */
|
|
52
|
+
name: string;
|
|
53
|
+
/** 当前章节总时长(ms):该章节模型动画时长(排除相机 player) */
|
|
54
|
+
duration: number;
|
|
55
|
+
}
|
|
56
|
+
/** 当前章节变更监听(携带最新当前章节信息) */
|
|
57
|
+
export type CurrentChapterChangedListener = (info: CurrentChapterInfo) => void;
|
|
58
|
+
/**
|
|
59
|
+
* DigitalPerformanceV2Plugin 控制器(最小可用版)
|
|
60
|
+
*
|
|
61
|
+
* 试点 fork:独立于现有 DigitalPerformancePlugin(Legacy),不修改其既有行为。
|
|
62
|
+
* 本版本提供:剧本加载(复用 Shared_Core 加载 + 模型入场景)、播放/暂停/续播、
|
|
63
|
+
* 基于统一时钟的进度与 seek 预览。相机运镜(CameraTrack/CameraDirector)在后续任务叠加。
|
|
64
|
+
*/
|
|
65
|
+
export default class DigitalPerformanceV2PluginController {
|
|
66
|
+
five: Five;
|
|
67
|
+
config: DigitalPerformanceV2PluginConfig;
|
|
68
|
+
readonly NAME = "Dnalogel-DigitalPerformanceV2Plugin";
|
|
69
|
+
playground: PerformancePlayground;
|
|
70
|
+
state: {
|
|
71
|
+
enabled: boolean;
|
|
72
|
+
playing: boolean;
|
|
73
|
+
continuousPlaying: boolean;
|
|
74
|
+
currentChapter: DigitalChapter | null;
|
|
75
|
+
currentScript: DigitalScript | null;
|
|
76
|
+
/** 编辑端:当前选中的运镜项下标(无选中为 null)。切换章节时清除。 */
|
|
77
|
+
selectedShotIndex: number | null;
|
|
78
|
+
};
|
|
79
|
+
private progressListeners;
|
|
80
|
+
private groupProgressListeners;
|
|
81
|
+
private keyframesChangedListeners;
|
|
82
|
+
private currentChapterChangedListeners;
|
|
83
|
+
private unsubClockTick;
|
|
84
|
+
/**
|
|
85
|
+
* 进入编辑时的运镜内存态快照:以章节对象为 key,值为该章节相机关键帧的深拷贝;
|
|
86
|
+
* 值为 null 表示进入编辑时该章节不存在 camera player。null(整体)表示尚未打过快照。
|
|
87
|
+
*/
|
|
88
|
+
private cameraEditSnapshot;
|
|
89
|
+
/**
|
|
90
|
+
* 组级章节时间映射缓存(加法式):按 currentScript 引用缓存。
|
|
91
|
+
* - `groupChapterTimeMapCacheScript` 记录缓存对应的 script 引用;
|
|
92
|
+
* - script 变更 / loadScript 时引用不一致 ⇒ 缓存失效、下次请求重算。
|
|
93
|
+
*/
|
|
94
|
+
private groupChapterTimeMapCache;
|
|
95
|
+
private groupChapterTimeMapCacheScript;
|
|
96
|
+
/**
|
|
97
|
+
* D-SEEK-LIVE(方案 A):连播中「跨章 seek」的重定向令牌。
|
|
98
|
+
* 播放态跨章 seek 时置位 { index, fromTime } 并 abortCurrentPlay;连播循环 await 返回后据此跳转到目标章节继续播放。
|
|
99
|
+
*/
|
|
100
|
+
private seekRedirect;
|
|
101
|
+
/**
|
|
102
|
+
* 加法式:动画组「章节索引 → 楼层」映射(用于 Mapview 只显示当前章节所在楼层)。
|
|
103
|
+
* - number:该章节单一楼层 ⇒ `five.model.show(floor)`;
|
|
104
|
+
* - null:该章节内多段动画跨楼层 ⇒ `five.model.show()`(显示全部,避免藏掉其它层的动画);
|
|
105
|
+
* - 映射缺项按显示全部处理。
|
|
106
|
+
* `null`(整体)表示未启用该能力(不触碰楼层可见性)。由消费方经 `setChapterFloorMap` 注入。
|
|
107
|
+
*/
|
|
108
|
+
private chapterFloorMap;
|
|
109
|
+
constructor(five: Five, config?: DigitalPerformanceV2PluginConfig);
|
|
110
|
+
/** 加载剧本:预加载资源 + 将模型加入 five 场景;autoPlay 时自动播放首章 */
|
|
111
|
+
loadScript(script: DigitalScript): Promise<void>;
|
|
112
|
+
/** 播放指定章节 */
|
|
113
|
+
playChapter(chapter: DigitalChapter): Promise<void>;
|
|
114
|
+
/** 通过索引播放章节 */
|
|
115
|
+
playChapterByIndex(index: number): Promise<void>;
|
|
116
|
+
/** 从当前章节连续播放到最后一章(连播中跨章 seek 可经 seekRedirect 令牌无缝重定向) */
|
|
117
|
+
playAllRemaining(): Promise<void>;
|
|
118
|
+
/** 从第一章开始按顺序连续播放(用于"重播全部",保留已捕获的各章节运镜) */
|
|
119
|
+
playAllFromStart(): Promise<void>;
|
|
120
|
+
/** 从指定章节索引开始,按顺序连续播放到本动画组最后一章(保留已捕获的各章节运镜) */
|
|
121
|
+
playFromChapterIndex(index: number): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* 编辑态:仅播放当前章节(不连播下一章)。
|
|
124
|
+
* 章节自然播放到末尾(ended)后,由 controller 执行「进度归零 + 恢复当前章节默认视角」,
|
|
125
|
+
* SHALL NOT 自动连播下一章节(区别于展示端 playAllRemaining 的章节连续播放)。
|
|
126
|
+
* 无当前章节时为 no-op。
|
|
127
|
+
*/
|
|
128
|
+
playCurrentChapterForEdit(): Promise<void>;
|
|
129
|
+
/** 暂停 */
|
|
130
|
+
pause(): void;
|
|
131
|
+
/**
|
|
132
|
+
* 续播(当前章节)。
|
|
133
|
+
* - `continue()` / `continue({ prepare: false })`:同步 plain 续播,直接 resume 时钟,返回 `void`(既有语义不变)。
|
|
134
|
+
* - `continue({ prepare: true })`:先 `await prepareCameraTo(currentChapterTime)` 平滑 glide-back(不计时)再 resume,
|
|
135
|
+
* 返回 `Promise<void>`。展示端与编辑端均传 `prepare: true` 以保证续播无跳变(D-RESUME)。
|
|
136
|
+
*/
|
|
137
|
+
continue(): void;
|
|
138
|
+
continue(options: {
|
|
139
|
+
prepare?: false;
|
|
140
|
+
}): void;
|
|
141
|
+
continue(options: {
|
|
142
|
+
prepare: true;
|
|
143
|
+
}): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* 编辑态暂停(playing→paused,相机由「导演」交还「用户」拥有)。
|
|
146
|
+
* 统一 Mapview 后,导演接管期间 five 始终是合法 Mapview orbit 状态,暂停瞬间画面不变、
|
|
147
|
+
* 且 five 手势天然为正常模型视角(左键绕 target orbit、右键平移),无需特殊转换。见设计 §5.3.1。
|
|
148
|
+
* 仅供编辑端(camera-mode)暂停路径调用。
|
|
149
|
+
*/
|
|
150
|
+
pauseForEdit(): void;
|
|
151
|
+
/**
|
|
152
|
+
* 编辑态续播(当前章节):在恢复时钟前先 `await prepareCameraTo(当前时间)`,
|
|
153
|
+
* 以内插动画平滑回到暂停瞬间对应的运镜视角(无突变 user→director 切换,Req 13.9 / 18.9),
|
|
154
|
+
* prepare 不计入播放时间(时钟在 prepare 期间不推进)后再 resume。
|
|
155
|
+
* 章节无运镜关键帧时 prepare 为 no-op。不改变通用 `continue()`/`pause()` 语义。
|
|
156
|
+
*/
|
|
157
|
+
continueForEdit(): Promise<void>;
|
|
158
|
+
/** 运镜开关:关闭后播放仅驱动模型动画,不接管 five 相机(立即生效) */
|
|
159
|
+
setCameraDirectionEnabled(enabled: boolean): void;
|
|
160
|
+
/**
|
|
161
|
+
* 加法式:设置「章节索引 → 楼层」映射,启用「播放/切章时 Mapview 只显示当前章节所在楼层」。
|
|
162
|
+
* - number:该章节单一楼层;null:该章节内跨楼层 → 显示全部;映射缺项按显示全部处理。
|
|
163
|
+
* - 传入非 null:立即对当前章节应用一次;此后在任意章节切换(连播推进 / 切章 / 播放预览切章)时自动应用。
|
|
164
|
+
* - 传入 null:停用该能力(不再随章节应用),但**不主动恢复**楼层可见性(恢复由 `reset()` 负责)。
|
|
165
|
+
* 楼层可见性是 five 空间模型的显隐(`five.model.show`),与运镜相机接管相互独立。
|
|
166
|
+
* 各消费方(workshop 编辑端 / NextVR 展示端)自行从各自数据算好映射注入,保证两端行为一致(parity)。
|
|
167
|
+
*/
|
|
168
|
+
setChapterFloorMap(map: Record<number, number | null> | null): void;
|
|
169
|
+
/** 按章节楼层映射对指定章节应用楼层可见性(映射未启用时 no-op) */
|
|
170
|
+
private applyChapterFloor;
|
|
171
|
+
/** 显示指定楼层(传 undefined 显示全部)。安全访问 five.model.show,避免类型/运行时缺失。 */
|
|
172
|
+
private showModelFloor;
|
|
173
|
+
/**
|
|
174
|
+
* seek 预览:跳转到指定时间并渲染当前帧(不改变播放/暂停状态)。
|
|
175
|
+
* - 无当前章节:不改时钟、不渲染,返回失败指示且不抛异常。
|
|
176
|
+
* - 运镜启用:经 director seek 应用相机;运镜禁用:仅驱动 DigitalHuman。
|
|
177
|
+
*/
|
|
178
|
+
setTimelineTo(time: number): SetTimelineResult;
|
|
179
|
+
/**
|
|
180
|
+
* 在指定时间捕获当前 five 相机为一个运镜关键帧。
|
|
181
|
+
* - 位姿取自 five 当前 Mapview 状态(target=offset、longitude、latitude、distance);fov 取自 fiveState(缺省读 five.getCurrentState())。
|
|
182
|
+
* - 按 timeStamp 升序插入;同 timeStamp 覆盖。
|
|
183
|
+
* 拒绝(保持序列不变并返回 error):未加载 script / 无当前章节 / time 非负有限数校验失败。
|
|
184
|
+
*/
|
|
185
|
+
addCameraKeyframe(time: number, fiveState?: {
|
|
186
|
+
fov?: number;
|
|
187
|
+
}, options?: CameraKeyframeOptions): CameraKeyframeResult;
|
|
188
|
+
/**
|
|
189
|
+
* 更新指定下标关键帧:合并 patch 中出现的字段,按 timeStamp 重排序。
|
|
190
|
+
* 拒绝(保持序列不变):未加载 script / 无章节 / index 越界 / patch.timeStamp 非负有限数校验失败。
|
|
191
|
+
*/
|
|
192
|
+
updateCameraKeyframe(index: number, patch: Partial<DigitalCameraKeyframe>): CameraKeyframeResult;
|
|
193
|
+
/** 移除指定下标关键帧。拒绝(保持序列不变):未加载 script / 无章节 / index 越界。 */
|
|
194
|
+
removeCameraKeyframe(index: number): CameraKeyframeResult;
|
|
195
|
+
/** 获取当前章节的运镜关键帧(升序副本;无章节/无 camera player 时返回空数组) */
|
|
196
|
+
getCameraKeyframes(): DigitalCameraKeyframe[];
|
|
197
|
+
/**
|
|
198
|
+
* 序列化当前章节的运镜 player。
|
|
199
|
+
* keyframes 按 timeStamp 升序,仅写入已设置的可选字段(不写 undefined 占位)。
|
|
200
|
+
* 空/无 camera player 返回 keyframes:[];未加载 script / 无章节 时拒绝并返回 error。
|
|
201
|
+
*/
|
|
202
|
+
serializeCameraPlayer(): SerializeCameraResult;
|
|
203
|
+
/**
|
|
204
|
+
* 序列化全部章节中"含非空关键帧"的运镜 player,按章节索引返回。
|
|
205
|
+
* 供编辑端按"章节起始动画 id"聚合后整组保存。未加载 script 时返回空数组。
|
|
206
|
+
*/
|
|
207
|
+
serializeAllCameraPlayers(): Array<{
|
|
208
|
+
chapterIndex: number;
|
|
209
|
+
player: DigitalCameraPlayer;
|
|
210
|
+
}>;
|
|
211
|
+
/**
|
|
212
|
+
* 按章节索引批量加载运镜(用于从持久化数据还原):替换对应章节 camera player 的关键帧。
|
|
213
|
+
* 调用方负责"对账"(只传锚点命中的章节),越界索引忽略。
|
|
214
|
+
*/
|
|
215
|
+
loadCameraPlayersByChapterIndex(byChapterIndex: Record<number, {
|
|
216
|
+
keyframes: DigitalCameraKeyframe[];
|
|
217
|
+
coordinateSpace?: CameraCoordinateSpace;
|
|
218
|
+
name?: string;
|
|
219
|
+
}>): void;
|
|
220
|
+
/** 注册关键帧序列变更监听(camera-keyframes-changed);返回反订阅函数 */
|
|
221
|
+
onCameraKeyframesChanged(listener: CameraKeyframesChangedListener): () => void;
|
|
222
|
+
/**
|
|
223
|
+
* 章节默认视角(Chapter_Default_View)。
|
|
224
|
+
* - 章节存在 ≥1 个运镜关键帧:返回该章节相机轨道 `sample(0)`(因首帧夹紧,等于首帧 CameraState)。
|
|
225
|
+
* - 章节存在 0 个运镜关键帧:返回 `undefined`。
|
|
226
|
+
* 默认视角不单独持久化,完全由关键帧派生(不在 cameraPlayers 新增字段)。
|
|
227
|
+
*/
|
|
228
|
+
getChapterDefaultView(chapterIndex: number): CameraState | undefined;
|
|
229
|
+
/**
|
|
230
|
+
* 应用章节默认视角到 five。
|
|
231
|
+
* - 章节存在关键帧:经 FiveModelCameraBridge 立即应用 `sample(0)`。
|
|
232
|
+
* - 章节存在 0 个关键帧:no-op(保持当前 five 相机状态、不强制移动)。
|
|
233
|
+
*/
|
|
234
|
+
applyChapterDefaultView(chapterIndex: number): void;
|
|
235
|
+
/**
|
|
236
|
+
* 设为当前编辑章节(不开始播放)。该次调用内联动完成:
|
|
237
|
+
* 切暂停 → `seek(0)`(进度归零、各 DigitalHuman 渲染 t=0)→ 重建 director 轨道到该章节关键帧 →
|
|
238
|
+
* 应用该章节默认视角 → 读取并更新该章节总时长 → 清除已选中运镜项 → 派发 onCurrentChapterChanged。
|
|
239
|
+
* 越界索引为 no-op。
|
|
240
|
+
*/
|
|
241
|
+
setCurrentChapter(chapterIndex: number): void;
|
|
242
|
+
/** 当前章节信息:{ index, name, duration };duration 为该章节模型动画时长(排除相机 player) */
|
|
243
|
+
getCurrentChapterInfo(): CurrentChapterInfo;
|
|
244
|
+
/** 注册当前章节变更监听(current-chapter-changed);返回反订阅函数 */
|
|
245
|
+
onCurrentChapterChanged(listener: CurrentChapterChangedListener): () => void;
|
|
246
|
+
/**
|
|
247
|
+
* 进入运镜编辑:对全部章节运镜内存态打一次深快照(供 discardCameraChanges 还原)。
|
|
248
|
+
* 仅记录内存快照,不触碰持久化、不改相机/播放状态。
|
|
249
|
+
*/
|
|
250
|
+
beginCameraEditSession(): void;
|
|
251
|
+
/**
|
|
252
|
+
* 放弃运镜修改:将运镜内存态还原到 `beginCameraEditSession` 时的快照(不走服务端重载)。
|
|
253
|
+
* 未打过快照时为 no-op。还原后重建当前章节 director 轨道并派发关键帧变更事件。
|
|
254
|
+
*/
|
|
255
|
+
discardCameraChanges(): void;
|
|
256
|
+
/** 当前进度(当前章节内 currentTime/totalTime,单位 ms;含当前章节索引/总章节数) */
|
|
257
|
+
getProgress(): V2Progress;
|
|
258
|
+
/** 注册进度监听;返回反订阅函数 */
|
|
259
|
+
onProgressChanged(listener: V2ProgressListener): () => void;
|
|
260
|
+
/**
|
|
261
|
+
* 组级章节时间映射(加法式):每章 { index, name, startTime, endTime, duration } 逐章累计。
|
|
262
|
+
* - duration[i] = getChapterModelDuration(chapters[i])(排除 camera player)
|
|
263
|
+
* - startTime[0]=0、startTime[i]=endTime[i-1]、endTime[i]=startTime[i]+duration[i]
|
|
264
|
+
* - 未加载 / 空章节组返回 [];纯读,不修改任何引擎状态。
|
|
265
|
+
* 按 currentScript 引用缓存;loadScript / script 变更时失效重算。
|
|
266
|
+
*/
|
|
267
|
+
getGroupChapterTimeMap(): GroupChapterTimeInfo[];
|
|
268
|
+
/**
|
|
269
|
+
* 组级进度聚合(加法式):由章节级 getProgress() + getGroupChapterTimeMap() 派生。
|
|
270
|
+
* - groupTotalTime = Σ duration
|
|
271
|
+
* - groupCurrentTime = startTime[currentChapterIndex] + clamp(currentTime, 0, duration[idx])(无当前章节为 0)
|
|
272
|
+
* - 0 ≤ groupCurrentTime ≤ groupTotalTime;percentage ∈ [0,100](groupTotalTime=0 时为 0)
|
|
273
|
+
* 纯读,不修改任何引擎状态。
|
|
274
|
+
*/
|
|
275
|
+
getGroupProgress(): GroupProgress;
|
|
276
|
+
/**
|
|
277
|
+
* 注册组级进度监听(加法式,独立监听集合);返回反订阅函数。
|
|
278
|
+
* 在既有 emitProgress() 内追加组级广播,每 tick / 章节切换 / pause / seek 时随章节级广播一并触发。
|
|
279
|
+
*/
|
|
280
|
+
onGroupProgressChanged(listener: GroupProgressListener): () => void;
|
|
281
|
+
/**
|
|
282
|
+
* 播放/预览专用:设为当前章节(不开始播放,区别于编辑端 setCurrentChapter)。
|
|
283
|
+
* 透传 playground.prepareChapter:切模型可见性 + 重绑相机轨道 + 配置时钟时长并 seek 到 fromTime(不 start)。
|
|
284
|
+
* 不做编辑端默认视角设置 / 选中清理等联动。越界索引为 no-op。
|
|
285
|
+
*/
|
|
286
|
+
setCurrentChapterForPlayback(index: number, fromTime: number): void;
|
|
287
|
+
/**
|
|
288
|
+
* 跳转到组级时间(ms):映射为 (章节 index, 章节内时间),必要时切章后 setTimelineTo。
|
|
289
|
+
* 保留 seek 前的播放/暂停状态(D-SEEK-LIVE,方案 A):
|
|
290
|
+
* - 暂停态:跨章则先 setCurrentChapterForPlayback 切章,再 setTimelineTo 预览该帧后交还用户。
|
|
291
|
+
* - 播放态同章:clock.seek 续播(经 setTimelineTo)。
|
|
292
|
+
* - 播放态跨章:置 seekRedirect 并 abortCurrentPlay,由连播循环跳到目标章节从 localTime 继续。
|
|
293
|
+
* 越界钳制到 [0, groupTotalTime];未加载 script 返回 { success:false } 不抛异常。
|
|
294
|
+
*/
|
|
295
|
+
seekToGroupTime(groupTimeMs: number): SetTimelineResult;
|
|
296
|
+
/** 跳转到组级百分比 [0,100](= seekToGroupTime(clamp(pct,0,100)/100 * groupTotalTime)) */
|
|
297
|
+
seekToGroupPercentage(percentage: number): SetTimelineResult;
|
|
298
|
+
/**
|
|
299
|
+
* 组级时间 → (章节索引, 章节内时间)(加法式内部)。
|
|
300
|
+
* - g ≤ 0 → { index: 0, localTime: 0 }
|
|
301
|
+
* - g ≥ groupTotal → { index: last, localTime: duration[last] }
|
|
302
|
+
* - 否则 startTime[index] ≤ g < endTime[index] 且 localTime = g - startTime[index]
|
|
303
|
+
* - 零时长章节(start==end)被自动跳过(不会定位其内部)
|
|
304
|
+
* 前置条件:timeMap 非空。
|
|
305
|
+
*/
|
|
306
|
+
private mapGroupTimeToChapter;
|
|
307
|
+
/** 数值钳制工具 */
|
|
308
|
+
private clamp;
|
|
309
|
+
/** 当前可用章节 */
|
|
310
|
+
getChapters(): DigitalChapter[];
|
|
311
|
+
/** 当前状态快照 */
|
|
312
|
+
getState(): {
|
|
313
|
+
playing: boolean;
|
|
314
|
+
currentChapter: DigitalChapter | null;
|
|
315
|
+
};
|
|
316
|
+
/** 重置播放(保留已加载资源) */
|
|
317
|
+
reset(): void;
|
|
318
|
+
/** 销毁插件、释放资源 */
|
|
319
|
+
dispose(): void;
|
|
320
|
+
/** 预加载模型 / 动画 / 道具(复用 Shared_Core 加载) */
|
|
321
|
+
private preloadResources;
|
|
322
|
+
private emitProgress;
|
|
323
|
+
/** 组级进度广播(加法式新增;独立监听集合,既有 onProgressChanged 语义不变) */
|
|
324
|
+
private emitGroupProgress;
|
|
325
|
+
/** 编辑前置校验:未加载 script / 无当前章节时返回拒绝结果,否则返回 null */
|
|
326
|
+
private guardKeyframeEdit;
|
|
327
|
+
/** 拒绝结果:保持当前序列不变并返回 error */
|
|
328
|
+
private rejectKeyframe;
|
|
329
|
+
/** 当前章节的 camera player(不存在返回 null) */
|
|
330
|
+
private getCameraPlayer;
|
|
331
|
+
/** 指定章节的 camera player(不存在返回 null) */
|
|
332
|
+
private cameraPlayerOf;
|
|
333
|
+
/** 把 camera player 的关键帧序列化为升序、仅含已设置可选字段的副本(Mapview 位姿) */
|
|
334
|
+
private serializeKeyframes;
|
|
335
|
+
/** 获取当前章节的 camera player,不存在则创建并挂到章节 players 上 */
|
|
336
|
+
private ensureCameraPlayer;
|
|
337
|
+
/** fov 取值:优先 fiveState.fov,否则读 five 当前状态 */
|
|
338
|
+
private resolveFov;
|
|
339
|
+
/** 捕获 five 当前 Mapview 位姿(target=offset、longitude、latitude、distance) */
|
|
340
|
+
private captureCameraPose;
|
|
341
|
+
/** 关键帧变更后:重建并绑定相机轨道(供 seek 预览/后续播放接管),派发事件,返回成功结果 */
|
|
342
|
+
private afterKeyframesChanged;
|
|
343
|
+
private emitKeyframesChanged;
|
|
344
|
+
private emitCurrentChapterChanged;
|
|
345
|
+
/** 当前章节索引(0-based;无当前章节为 -1),按引用或名称匹配 */
|
|
346
|
+
private getCurrentChapterIndex;
|
|
347
|
+
/** 由指定章节的相机关键帧构建一条 CameraTrack(无章节/无 camera player 返回 null) */
|
|
348
|
+
private buildChapterCameraTrack;
|
|
349
|
+
/** 深拷贝关键帧序列(数组字段亦深拷贝),供快照/还原使用(Mapview 位姿) */
|
|
350
|
+
private cloneKeyframes;
|
|
351
|
+
}
|
|
@@ -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,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,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,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,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
|
+
}
|