@realsee/dnalogel 3.80.7 → 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.
Files changed (582) hide show
  1. package/dist/DigitalPerformancePlugin/core/DigitalHuman.d.ts +18 -0
  2. package/dist/DigitalPerformanceV2Plugin/controller/index.d.ts +330 -0
  3. package/dist/DigitalPerformanceV2Plugin/core/CameraDirector.d.ts +61 -0
  4. package/dist/DigitalPerformanceV2Plugin/core/CameraSampler.d.ts +53 -0
  5. package/dist/DigitalPerformanceV2Plugin/core/CameraTrack.d.ts +21 -0
  6. package/dist/DigitalPerformanceV2Plugin/core/FiveModelCameraBridge.d.ts +39 -0
  7. package/dist/DigitalPerformanceV2Plugin/core/PerformanceClock.d.ts +55 -0
  8. package/dist/DigitalPerformanceV2Plugin/core/Playground.d.ts +106 -0
  9. package/dist/DigitalPerformanceV2Plugin/core/shared.d.ts +4 -0
  10. package/dist/DigitalPerformanceV2Plugin/index.d.ts +9 -0
  11. package/dist/DigitalPerformanceV2Plugin/typings/index.d.ts +113 -0
  12. package/dist/index.cjs.js +84 -84
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.js +8206 -6916
  15. package/dist/index.umd.js +77 -77
  16. package/docs/assets/navigation.js +1 -1
  17. package/docs/assets/search.js +1 -1
  18. package/docs/classes/AreaMakerPluginType.AreaMakerController.html +2 -2
  19. package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +2 -2
  20. package/docs/classes/CSS3DRender.html +2 -2
  21. package/docs/classes/DigitalHuman.html +11 -2
  22. package/docs/classes/DigitalPerformanceV2.DigitalPerformanceV2PluginController.html +156 -0
  23. package/docs/classes/DigitalPlayground.html +2 -2
  24. package/docs/classes/DigitalStateMachine.html +2 -2
  25. package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
  26. package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
  27. package/docs/classes/ModelMakerPluginInstance.html +2 -2
  28. package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +2 -2
  29. package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +2 -2
  30. package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +2 -2
  31. package/docs/classes/ModelRoomLabelController.html +2 -2
  32. package/docs/classes/MoveController.html +2 -2
  33. package/docs/classes/Object3DHelperController.html +2 -2
  34. package/docs/classes/PaintBrush.html +2 -2
  35. package/docs/classes/PanoMeasurePluginLine.html +2 -2
  36. package/docs/classes/PanoMeasurePluginModel.html +2 -2
  37. package/docs/classes/PanoMeasurePluginPoint.html +2 -2
  38. package/docs/classes/PanoMeasurePluginPolyline.html +2 -2
  39. package/docs/classes/PanoTagPluginController.html +2 -2
  40. package/docs/classes/Sculpt.html +2 -2
  41. package/docs/classes/Util.BetterTween.html +2 -2
  42. package/docs/classes/Util.FiveDomEvents.html +2 -2
  43. package/docs/classes/Util.FivePuppet.html +2 -2
  44. package/docs/classes/Util.Interval.html +2 -2
  45. package/docs/classes/Util.LegacyPointHelper.html +2 -2
  46. package/docs/classes/Util.LightTag.html +2 -2
  47. package/docs/classes/Util.LineSegments.html +2 -2
  48. package/docs/classes/Util.Magnifier.html +2 -2
  49. package/docs/classes/Util.Object3D.html +2 -2
  50. package/docs/classes/Util.PointDomHelper.html +2 -2
  51. package/docs/classes/Util.PointHelper.html +2 -2
  52. package/docs/classes/Util.PointSelector.html +2 -2
  53. package/docs/classes/Util.PointSelectorHelper.html +2 -2
  54. package/docs/classes/Util.Rectangle.html +2 -2
  55. package/docs/classes/Util.sculpt.BaseEditor.html +2 -2
  56. package/docs/classes/Util.sculpt.BoxMesh.html +2 -2
  57. package/docs/classes/Util.sculpt.BoxMeshEditor.html +2 -2
  58. package/docs/classes/Util.sculpt.CircleMesh.html +2 -2
  59. package/docs/classes/Util.sculpt.CircleMeshEditor.html +2 -2
  60. package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +2 -2
  61. package/docs/classes/Util.sculpt.CylinderMesh.html +2 -2
  62. package/docs/classes/Util.sculpt.CylinderMeshEditor.html +2 -2
  63. package/docs/classes/Util.sculpt.LineMesh.html +2 -2
  64. package/docs/classes/Util.sculpt.PointMesh.html +2 -2
  65. package/docs/classes/Util.sculpt.PolygonMesh.html +2 -2
  66. package/docs/classes/Util.sculpt.PrismMesh.html +2 -2
  67. package/docs/classes/Util.sculpt.PrismMeshEditor.html +2 -2
  68. package/docs/classes/Util.sculpt.RectangleMesh.html +2 -2
  69. package/docs/classes/Util.sculpt.RectangleMeshEditor.html +2 -2
  70. package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +2 -2
  71. package/docs/classes/WalkController.html +2 -2
  72. package/docs/enums/CameraMovementEffect.html +2 -2
  73. package/docs/enums/ContentType.html +2 -2
  74. package/docs/enums/DIRECTION.html +2 -2
  75. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +2 -2
  76. package/docs/enums/DimensionType.html +2 -2
  77. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +2 -2
  78. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +2 -2
  79. package/docs/enums/PaintBrushTypeEnum.html +2 -2
  80. package/docs/enums/PointType.html +2 -2
  81. package/docs/enums/Rotation.html +2 -2
  82. package/docs/functions/AreaMakerPlugin.html +1 -1
  83. package/docs/functions/CSS3DRenderPlugin.html +1 -1
  84. package/docs/functions/CameraMovementPlugin.html +2 -2
  85. package/docs/functions/CruisePlugin.html +1 -1
  86. package/docs/functions/CurrentPanoImagePlugin.html +1 -1
  87. package/docs/functions/DigitalPerformancePlugin.html +1 -1
  88. package/docs/functions/DigitalPerformanceV2.DigitalPerformanceV2Plugin.html +1 -0
  89. package/docs/functions/FloorplanGuidePlugin.html +1 -1
  90. package/docs/functions/GuideLinePlugin.html +1 -1
  91. package/docs/functions/ItemLabelPlugin.html +1 -1
  92. package/docs/functions/MapviewFloorplanPlugin.html +1 -1
  93. package/docs/functions/MeasurePlugin.html +1 -1
  94. package/docs/functions/ModelChassisCompassPlugin.html +2 -2
  95. package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -2
  96. package/docs/functions/ModelFloorplanPlugin.html +1 -1
  97. package/docs/functions/ModelItemLabelPlugin.html +1 -1
  98. package/docs/functions/ModelMakerPlugin.html +1 -1
  99. package/docs/functions/ModelRoomLabelPlugin.html +1 -1
  100. package/docs/functions/ModelTVVideoPlugin.html +1 -1
  101. package/docs/functions/ModelViewPlugin.html +2 -2
  102. package/docs/functions/MovePlugin.html +1 -1
  103. package/docs/functions/Object3DHelperPlugin.html +1 -1
  104. package/docs/functions/PanoCompassPlugin.html +1 -1
  105. package/docs/functions/PanoCursorRaycasterPlugin.html +2 -2
  106. package/docs/functions/PanoDoorLabelPlugin.html +1 -1
  107. package/docs/functions/PanoFloorplanRadarPlugin.html +1 -1
  108. package/docs/functions/PanoMeasurePlugin.html +1 -1
  109. package/docs/functions/PanoRulerPlugin.html +2 -2
  110. package/docs/functions/PanoRulerProPlugin.html +2 -2
  111. package/docs/functions/PanoSpatialTagPlugin.html +2 -2
  112. package/docs/functions/PanoTagPlugin.html +1 -1
  113. package/docs/functions/PanoVideoPlugin.html +2 -2
  114. package/docs/functions/PipelinePlugin.html +1 -1
  115. package/docs/functions/SculptPlugin.html +2 -2
  116. package/docs/functions/SculptPluginForFive.html +2 -2
  117. package/docs/functions/TopviewFloorplanPlugin.html +1 -1
  118. package/docs/functions/Util.awaitNextFrame.html +1 -1
  119. package/docs/functions/Util.blink.html +2 -2
  120. package/docs/functions/Util.blinkWithPreset.html +2 -2
  121. package/docs/functions/Util.bounding.html +1 -1
  122. package/docs/functions/Util.boundingBox.html +1 -1
  123. package/docs/functions/Util.boundingSphere.html +1 -1
  124. package/docs/functions/Util.boxVertex.html +2 -2
  125. package/docs/functions/Util.boxVertexes.html +1 -1
  126. package/docs/functions/Util.checkFiveModelLoaded.html +2 -2
  127. package/docs/functions/Util.cleanup.html +2 -2
  128. package/docs/functions/Util.convexHull.html +2 -2
  129. package/docs/functions/Util.equal.html +2 -2
  130. package/docs/functions/Util.fiveModelIsLoaded.html +2 -2
  131. package/docs/functions/Util.generatePolygonGeometry.html +2 -2
  132. package/docs/functions/Util.getCoordsFromClient.html +1 -1
  133. package/docs/functions/Util.getCoordsFromElement.html +1 -1
  134. package/docs/functions/Util.getFrameTime.html +2 -2
  135. package/docs/functions/Util.getGeometryArea.html +1 -1
  136. package/docs/functions/Util.getGeometryInfo.html +1 -1
  137. package/docs/functions/Util.getIntersectFromRelativePosition.html +1 -1
  138. package/docs/functions/Util.getRaycasterFromFivePointer.html +1 -1
  139. package/docs/functions/Util.initialCSS3DRender.html +1 -1
  140. package/docs/functions/Util.inside.html +1 -1
  141. package/docs/functions/Util.isModelLike.html +1 -1
  142. package/docs/functions/Util.isNil.html +2 -2
  143. package/docs/functions/Util.isPanoramaLike.html +1 -1
  144. package/docs/functions/Util.lookObject.html +2 -2
  145. package/docs/functions/Util.lookPoint.html +2 -2
  146. package/docs/functions/Util.nextFrame.html +1 -1
  147. package/docs/functions/Util.notNil.html +2 -2
  148. package/docs/functions/Util.reblink.html +2 -2
  149. package/docs/functions/Util.replaceStaticPrefix.html +2 -2
  150. package/docs/functions/Util.requestAnimationFrameInterval.html +2 -2
  151. package/docs/functions/Util.sculpt.createBox.html +1 -1
  152. package/docs/functions/Util.sculpt.createCircle.html +1 -1
  153. package/docs/functions/Util.sculpt.createCylinder.html +1 -1
  154. package/docs/functions/Util.sculpt.createLine.html +2 -2
  155. package/docs/functions/Util.sculpt.createPoint.html +1 -1
  156. package/docs/functions/Util.sculpt.createPolygon.html +1 -1
  157. package/docs/functions/Util.sculpt.createPrism.html +1 -1
  158. package/docs/functions/Util.sculpt.createRectangle.html +2 -2
  159. package/docs/functions/Util.sculpt.transformUnit.html +1 -1
  160. package/docs/functions/Util.sculpt.transformUnitSquare.html +1 -1
  161. package/docs/functions/Util.tag.html +1 -1
  162. package/docs/functions/Util.triangleArea.html +2 -2
  163. package/docs/functions/Util.triangleCenter.html +2 -2
  164. package/docs/functions/Util.tweenProgress.html +1 -1
  165. package/docs/functions/Util.uuid.html +2 -2
  166. package/docs/functions/Util.waitFiveModelLoaded.html +2 -2
  167. package/docs/functions/Util.worldBounding.html +1 -1
  168. package/docs/functions/Util.worldBoundingBox.html +1 -1
  169. package/docs/functions/Util.worldBoundingSphere.html +1 -1
  170. package/docs/functions/createPolyline.html +2 -2
  171. package/docs/functions/pluginFlag.html +1 -1
  172. package/docs/functions/validatePolygon.html +1 -1
  173. package/docs/hierarchy.html +1 -1
  174. package/docs/index.html +2 -2
  175. package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +2 -2
  176. package/docs/interfaces/AreaMakerPluginType.Config.html +2 -2
  177. package/docs/interfaces/AreaMakerPluginType.EventMap.html +2 -2
  178. package/docs/interfaces/AreaMakerPluginType.Params.html +2 -2
  179. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +2 -2
  180. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +2 -2
  181. package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +2 -2
  182. package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +2 -2
  183. package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +2 -2
  184. package/docs/interfaces/AreaMakerPluginType.State.html +2 -2
  185. package/docs/interfaces/BoxAnimationConfig.html +2 -2
  186. package/docs/interfaces/BoxPosition.html +2 -2
  187. package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
  188. package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
  189. package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
  190. package/docs/interfaces/ChapterLocation.html +2 -2
  191. package/docs/interfaces/ChapterTimeInfo.html +2 -2
  192. package/docs/interfaces/ContentTypeMapInterface.html +2 -2
  193. package/docs/interfaces/CruisePluginTypes.Config.html +2 -2
  194. package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +2 -2
  195. package/docs/interfaces/CruisePluginTypes.EventMap.html +2 -2
  196. package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +2 -2
  197. package/docs/interfaces/CruisePluginTypes.MoveAction.html +2 -2
  198. package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +2 -2
  199. package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +2 -2
  200. package/docs/interfaces/CruisePluginTypes.PluginData.html +2 -2
  201. package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -2
  202. package/docs/interfaces/CruisePluginTypes.PluginState.html +2 -2
  203. package/docs/interfaces/CurrentPanoImagePluginType.Config.html +2 -2
  204. package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +2 -2
  205. package/docs/interfaces/CurrentPanoImagePluginType.Params.html +2 -2
  206. package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +2 -2
  207. package/docs/interfaces/CurrentPanoImagePluginType.State.html +2 -2
  208. package/docs/interfaces/DigitalCameraKeyframe.html +2 -2
  209. package/docs/interfaces/DigitalCameraPlayer.html +2 -2
  210. package/docs/interfaces/DigitalCameraState.html +2 -2
  211. package/docs/interfaces/DigitalChapter.html +2 -2
  212. package/docs/interfaces/DigitalDataPlayer.html +2 -2
  213. package/docs/interfaces/DigitalDataState.html +2 -2
  214. package/docs/interfaces/DigitalEffectKeyframe.html +2 -2
  215. package/docs/interfaces/DigitalEffectState.html +2 -2
  216. package/docs/interfaces/DigitalItemKeyframe.html +2 -2
  217. package/docs/interfaces/DigitalItemState.html +2 -2
  218. package/docs/interfaces/DigitalModelKeyframe.html +2 -2
  219. package/docs/interfaces/DigitalModelPlayer.html +2 -2
  220. package/docs/interfaces/DigitalModelPlayerEffect.html +2 -2
  221. package/docs/interfaces/DigitalModelPlayerItem.html +2 -2
  222. package/docs/interfaces/DigitalModelState.html +2 -2
  223. package/docs/interfaces/DigitalPerformancePluginConfig.html +2 -2
  224. package/docs/interfaces/DigitalPerformanceV2.CameraState.html +13 -0
  225. package/docs/interfaces/DigitalPerformanceV2.DigitalCameraKeyframe.html +23 -0
  226. package/docs/interfaces/DigitalPerformanceV2.DigitalCameraPlayer.html +7 -0
  227. package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceV2PluginConfig.html +7 -0
  228. package/docs/interfaces/DigitalPerformanceV2.GroupChapterTimeInfo.html +13 -0
  229. package/docs/interfaces/DigitalPerformanceV2.GroupProgress.html +18 -0
  230. package/docs/interfaces/DigitalPerformanceV2.V2Progress.html +10 -0
  231. package/docs/interfaces/DigitalScript.html +2 -2
  232. package/docs/interfaces/DigitalSubTitleKeyframe.html +2 -2
  233. package/docs/interfaces/DigitalSubTitlePlayer.html +2 -2
  234. package/docs/interfaces/DigitalSubTitleState.html +2 -2
  235. package/docs/interfaces/ExtendedAnimationConfig.html +2 -2
  236. package/docs/interfaces/FloorplanBounding.html +2 -2
  237. package/docs/interfaces/FloorplanData.html +2 -2
  238. package/docs/interfaces/FloorplanEntrance.html +2 -2
  239. package/docs/interfaces/FloorplanExtraObject.html +2 -2
  240. package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
  241. package/docs/interfaces/FloorplanFloorData.html +2 -2
  242. package/docs/interfaces/FloorplanImagePosition.html +2 -2
  243. package/docs/interfaces/FloorplanObserver.html +2 -2
  244. package/docs/interfaces/FloorplanOutlineItem.html +2 -2
  245. package/docs/interfaces/FloorplanPosition.html +2 -2
  246. package/docs/interfaces/FloorplanRoomItem.html +2 -2
  247. package/docs/interfaces/FloorplanRoomLabelItem.html +2 -2
  248. package/docs/interfaces/FloorplanServerBounding.html +2 -2
  249. package/docs/interfaces/FloorplanServerComputedData.html +2 -2
  250. package/docs/interfaces/FloorplanServerData.html +2 -2
  251. package/docs/interfaces/FloorplanServerDoorItem.html +2 -2
  252. package/docs/interfaces/FloorplanServerDoorPosition.html +2 -2
  253. package/docs/interfaces/FloorplanServerEntrance.html +2 -2
  254. package/docs/interfaces/FloorplanServerFloorData.html +2 -2
  255. package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
  256. package/docs/interfaces/FloorplanServerObserver.html +2 -2
  257. package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
  258. package/docs/interfaces/FloorplanServerPosition.html +2 -2
  259. package/docs/interfaces/FloorplanServerRoomItem.html +2 -2
  260. package/docs/interfaces/FloorplanServerRoomLabelItem.html +2 -2
  261. package/docs/interfaces/GlobalProgress.html +2 -2
  262. package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +2 -2
  263. package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +2 -2
  264. package/docs/interfaces/GuideLinePluginType.EventMap.html +2 -2
  265. package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +2 -2
  266. package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +2 -2
  267. package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -2
  268. package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +2 -2
  269. package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +2 -2
  270. package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +2 -2
  271. package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +2 -2
  272. package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +2 -2
  273. package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +2 -2
  274. package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -1
  275. package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -2
  276. package/docs/interfaces/GuideLinePluginType.PluginState.html +2 -2
  277. package/docs/interfaces/GuideLinePluginType.Route.html +2 -2
  278. package/docs/interfaces/HelperOffset.html +2 -2
  279. package/docs/interfaces/ImagePlaneGroup.html +2 -2
  280. package/docs/interfaces/ItemLabelPluginData.html +2 -2
  281. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +2 -2
  282. package/docs/interfaces/ItemLabelPluginParametersType.html +2 -2
  283. package/docs/interfaces/MinMax.html +2 -2
  284. package/docs/interfaces/ModelChassisCompassPluginData.html +2 -2
  285. package/docs/interfaces/ModelChassisCompassPluginExportType.html +2 -2
  286. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +2 -2
  287. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +2 -2
  288. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +2 -2
  289. package/docs/interfaces/ModelItemLabelPluginData.html +2 -2
  290. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +2 -2
  291. package/docs/interfaces/ModelItemLabelPluginParametersType.html +2 -2
  292. package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +2 -2
  293. package/docs/interfaces/ModelMakerPluginType.EventMap.html +2 -2
  294. package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +2 -2
  295. package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +2 -2
  296. package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +2 -2
  297. package/docs/interfaces/ModelMakerPluginType.ServerData.html +2 -2
  298. package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +2 -2
  299. package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +2 -2
  300. package/docs/interfaces/ModelMakerPluginType.State.html +2 -2
  301. package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +2 -2
  302. package/docs/interfaces/ModelRoomLabelPluginData.html +2 -2
  303. package/docs/interfaces/ModelTVVideoPluginData.html +2 -2
  304. package/docs/interfaces/ModelTVVideoPluginExportType.html +2 -2
  305. package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -2
  306. package/docs/interfaces/ModelViewPluginExportType.html +2 -2
  307. package/docs/interfaces/Object3DHelperState.html +2 -2
  308. package/docs/interfaces/ObjectHelperControllers.html +2 -2
  309. package/docs/interfaces/PaintBrushAction.html +2 -2
  310. package/docs/interfaces/PaintBrushConfigs.html +2 -2
  311. package/docs/interfaces/PaintBrushState.html +2 -2
  312. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +2 -2
  313. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
  314. package/docs/interfaces/PanoMeasureParameterType.html +2 -2
  315. package/docs/interfaces/PanoMeasurePluginLineJson.html +2 -2
  316. package/docs/interfaces/PanoMeasurePluginOpenParameter.html +2 -2
  317. package/docs/interfaces/PanoMeasurePluginPointJson.html +2 -2
  318. package/docs/interfaces/PanoMeasurePluginPolylineJson.html +2 -2
  319. package/docs/interfaces/PanoRulerPluginExportType.html +2 -2
  320. package/docs/interfaces/PanoRulerPluginOptions.html +2 -2
  321. package/docs/interfaces/PanoRulerPluginParameterType.html +2 -2
  322. package/docs/interfaces/PanoRulerProPluginExportType.html +2 -2
  323. package/docs/interfaces/PanoRulerProPluginOptions.html +2 -2
  324. package/docs/interfaces/PanoRulerProPluginParameterType.html +2 -2
  325. package/docs/interfaces/PanoRulerProPluginState.html +2 -2
  326. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
  327. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
  328. package/docs/interfaces/PanoSpatialTagPluginData.html +2 -2
  329. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +2 -2
  330. package/docs/interfaces/PanoSpatialTagPluginExportType.html +2 -2
  331. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +2 -2
  332. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +2 -2
  333. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +2 -2
  334. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +2 -2
  335. package/docs/interfaces/PanoVideoPluginType.LoadParams.html +2 -2
  336. package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +2 -2
  337. package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -2
  338. package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +2 -2
  339. package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -2
  340. package/docs/interfaces/PanoVideoPluginType.VideoItem.html +2 -2
  341. package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +2 -2
  342. package/docs/interfaces/PluginEventMap.html +2 -2
  343. package/docs/interfaces/Point.html +2 -2
  344. package/docs/interfaces/ProgressBarEvents.html +2 -2
  345. package/docs/interfaces/Room.html +2 -2
  346. package/docs/interfaces/RoomInfo.html +2 -2
  347. package/docs/interfaces/RoomLabel.html +2 -2
  348. package/docs/interfaces/RoomRules.html +1 -1
  349. package/docs/interfaces/Rooms.html +1 -1
  350. package/docs/interfaces/Scissor.html +2 -2
  351. package/docs/interfaces/SculptConfig.html +2 -2
  352. package/docs/interfaces/State.html +2 -2
  353. package/docs/interfaces/TagCacheInterface.html +2 -2
  354. package/docs/interfaces/TagConfig.html +2 -2
  355. package/docs/interfaces/TagGLTFObjectGroup.html +2 -2
  356. package/docs/interfaces/TagIconAnimationConfig.html +2 -2
  357. package/docs/interfaces/TagIconUrl.html +2 -2
  358. package/docs/interfaces/TagObjectGroup.html +2 -2
  359. package/docs/interfaces/TagState.html +2 -2
  360. package/docs/interfaces/TagStyle.html +2 -2
  361. package/docs/interfaces/Tags.html +2 -2
  362. package/docs/interfaces/TemporaryState.html +2 -2
  363. package/docs/interfaces/TraceManager.html +2 -2
  364. package/docs/interfaces/TracePoint.html +2 -2
  365. package/docs/interfaces/Util.AnimeInstance.html +2 -2
  366. package/docs/interfaces/Util.BlinkAnimeOptions.html +2 -2
  367. package/docs/interfaces/Util.EventHandlerConfig.html +2 -2
  368. package/docs/interfaces/Util.FiveDomEvent.html +2 -2
  369. package/docs/interfaces/Util.FiveDomEventMap.html +2 -2
  370. package/docs/interfaces/Util.LegacyMouseGroupParameter.html +2 -2
  371. package/docs/interfaces/Util.MagnifierParameter.html +2 -2
  372. package/docs/interfaces/Util.MouseGroupParameter.html +2 -2
  373. package/docs/interfaces/Util.ObjectInitialState.html +2 -2
  374. package/docs/interfaces/Util.PointIntersection.html +2 -2
  375. package/docs/interfaces/Util.PointSelectorHelperConfig.html +2 -2
  376. package/docs/interfaces/Util.ReBlinkAnimeOptions.html +2 -2
  377. package/docs/modules/AreaMakerPluginType.html +2 -2
  378. package/docs/modules/CruisePluginTypes.html +2 -2
  379. package/docs/modules/CurrentPanoImagePluginType.html +2 -2
  380. package/docs/modules/DigitalPerformanceV2.html +16 -0
  381. package/docs/modules/GuideLineItem.html +2 -2
  382. package/docs/modules/GuideLineModeItem.html +2 -2
  383. package/docs/modules/GuideLinePluginType.html +2 -2
  384. package/docs/modules/ModelMakerPluginType.html +2 -2
  385. package/docs/modules/PanoVideoPluginType.html +2 -2
  386. package/docs/modules/SculptData.html +2 -2
  387. package/docs/modules/SculptType.html +2 -2
  388. package/docs/modules/Util.html +2 -2
  389. package/docs/modules/Util.sculpt.html +2 -2
  390. package/docs/modules.html +3 -2
  391. package/docs/types/AddObject3DHelperConfig.html +2 -2
  392. package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +2 -2
  393. package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -1
  394. package/docs/types/AreaMakerPluginType.PluginData.html +2 -2
  395. package/docs/types/AreaMakerPluginType.ServerData.html +2 -2
  396. package/docs/types/ArrayPosition.html +1 -1
  397. package/docs/types/AudioAppearance.html +1 -1
  398. package/docs/types/BoxTag.html +2 -2
  399. package/docs/types/CSS3DRenderExportType.html +1 -1
  400. package/docs/types/CSS3DRenderPluginExportType.html +1 -1
  401. package/docs/types/CSS3DRenderPluginParameterType.html +1 -1
  402. package/docs/types/ClassFunctionParameters.html +1 -1
  403. package/docs/types/Color.html +1 -1
  404. package/docs/types/ContentTypeConfigKey.html +1 -1
  405. package/docs/types/ContentTypeConfigKeySplit.html +1 -1
  406. package/docs/types/ContentTypeMap.html +1 -1
  407. package/docs/types/Create3DDomContainerReturnType.html +1 -1
  408. package/docs/types/Create3DElementReturnType.html +1 -1
  409. package/docs/types/CruisePluginExportType.html +1 -1
  410. package/docs/types/CruisePluginTypes.CruiseData.html +2 -2
  411. package/docs/types/CruisePluginTypes.MoveEffect.html +1 -1
  412. package/docs/types/CurrentPanoImagePluginExportType.html +1 -1
  413. package/docs/types/DeprecatedMediaPlaneProperty.html +2 -2
  414. package/docs/types/DeprecatedTagProperty.html +2 -2
  415. package/docs/types/DigitalPerformancePluginExportInterface.html +1 -1
  416. package/docs/types/DigitalPerformancePluginParamsInterface.html +1 -1
  417. package/docs/types/DigitalPerformanceV2.CameraCoordinateSpace.html +7 -0
  418. package/docs/types/DigitalPerformanceV2.CameraTransition.html +7 -0
  419. package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginExportInterface.html +1 -0
  420. package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginParamsInterface.html +1 -0
  421. package/docs/types/DigitalPerformanceV2.V2ProgressListener.html +1 -0
  422. package/docs/types/Direction-1.html +1 -1
  423. package/docs/types/Direction4.html +1 -1
  424. package/docs/types/ElementRenderer.html +2 -2
  425. package/docs/types/FloorplanGuidePluginParameterType.html +1 -1
  426. package/docs/types/FloorplanGuidePluginReturnType.html +1 -1
  427. package/docs/types/FloorplanRuleLabels.html +2 -2
  428. package/docs/types/FloorplanServerRuleLabels.html +1 -1
  429. package/docs/types/GuideLinePluginExportType.html +1 -1
  430. package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -2
  431. package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -1
  432. package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -1
  433. package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -2
  434. package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -2
  435. package/docs/types/GuideLinePluginType.PathItem.html +2 -2
  436. package/docs/types/GuideLinePluginType.PluginData.html +2 -2
  437. package/docs/types/GuideLinePluginType.RouteConfig.html +2 -2
  438. package/docs/types/HelperEventMap.html +1 -1
  439. package/docs/types/InternalHelperEventMap.html +1 -1
  440. package/docs/types/KeyframeType.html +1 -1
  441. package/docs/types/MapviewFloorplanPluginParameterType.html +1 -1
  442. package/docs/types/MapviewFloorplanPluginReturnType.html +1 -1
  443. package/docs/types/MaskPosition.html +2 -2
  444. package/docs/types/MaskTag.html +2 -2
  445. package/docs/types/MeasureEndReason.html +1 -1
  446. package/docs/types/MeasurePluginConfig.html +2 -2
  447. package/docs/types/MeasurePluginEventMap.html +1 -1
  448. package/docs/types/MediaData.html +2 -2
  449. package/docs/types/MediaStore.html +1 -1
  450. package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -1
  451. package/docs/types/ModelFloorplanPluginParameterType.html +1 -1
  452. package/docs/types/ModelFloorplanPluginReturnType.html +1 -1
  453. package/docs/types/ModelId.html +1 -1
  454. package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -1
  455. package/docs/types/ModelMakerPluginType.ItemType.html +2 -2
  456. package/docs/types/ModelMakerPluginType.MarkerItem.html +1 -1
  457. package/docs/types/ModelMakerPluginType.ServerItem.html +2 -2
  458. package/docs/types/ModelRoomLabelPluginParameters.html +1 -1
  459. package/docs/types/ModelRoomLabelPluginReturnType.html +1 -1
  460. package/docs/types/MoveArgs.html +2 -2
  461. package/docs/types/MoveOpts.html +2 -2
  462. package/docs/types/Object3DHelperEventMap.html +1 -1
  463. package/docs/types/ObjectFit.html +1 -1
  464. package/docs/types/PaintBrushEventMap.html +1 -1
  465. package/docs/types/PanoCompassPluginData.html +1 -1
  466. package/docs/types/PanoCompassPluginExportType.html +1 -1
  467. package/docs/types/PanoCompassPluginParameterType.html +1 -1
  468. package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -1
  469. package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -1
  470. package/docs/types/PanoIndex.html +1 -1
  471. package/docs/types/PanoMeasurePluginEvent.html +1 -1
  472. package/docs/types/PanoMeasureReturnType.html +1 -1
  473. package/docs/types/PanoSpatialTagPluginId.html +1 -1
  474. package/docs/types/PanoTagPluginExportInterface.html +1 -1
  475. package/docs/types/PanoTagPluginParamsInterface.html +1 -1
  476. package/docs/types/PanoVideoPluginParameterType.html +1 -1
  477. package/docs/types/PanoVideoPluginReturnType.html +1 -1
  478. package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -2
  479. package/docs/types/PipelinePluginParameterType.html +1 -1
  480. package/docs/types/PipelinePluginReturnType.html +1 -1
  481. package/docs/types/PlaneTag.html +2 -2
  482. package/docs/types/Point2DTag.html +2 -2
  483. package/docs/types/Point3DTag.html +2 -2
  484. package/docs/types/PointTagInstance.html +1 -1
  485. package/docs/types/PolygonPosition.html +2 -2
  486. package/docs/types/PolygonTag.html +2 -2
  487. package/docs/types/Position.html +1 -1
  488. package/docs/types/PositionFrom.html +1 -1
  489. package/docs/types/ProgressListener.html +1 -1
  490. package/docs/types/RotateArgs.html +2 -2
  491. package/docs/types/RotateOpts.html +2 -2
  492. package/docs/types/RuleLabelsKey.html +1 -1
  493. package/docs/types/RuleLabelsValue.html +1 -1
  494. package/docs/types/ScaleCallback.html +1 -1
  495. package/docs/types/ScalePosition.html +2 -2
  496. package/docs/types/SculptData.BoxData.html +1 -1
  497. package/docs/types/SculptData.CircleData.html +1 -1
  498. package/docs/types/SculptData.CylinderData.html +1 -1
  499. package/docs/types/SculptData.PointData.html +1 -1
  500. package/docs/types/SculptData.PolygonData.html +1 -1
  501. package/docs/types/SculptData.PolylineData.html +1 -1
  502. package/docs/types/SculptData.PrismData.html +1 -1
  503. package/docs/types/SculptData.RectangleData.html +1 -1
  504. package/docs/types/SculptType.Theme.html +2 -2
  505. package/docs/types/StateType.html +1 -1
  506. package/docs/types/StickType.html +1 -1
  507. package/docs/types/Tag.html +2 -2
  508. package/docs/types/Tag2D.html +2 -2
  509. package/docs/types/Tag3D.html +2 -2
  510. package/docs/types/TagClickParams.html +1 -1
  511. package/docs/types/TagConfigByKey.html +1 -1
  512. package/docs/types/TagContentType.html +1 -1
  513. package/docs/types/TagContentTypeMapping.html +1 -1
  514. package/docs/types/TagDimensionType.html +1 -1
  515. package/docs/types/TagElement.html +2 -2
  516. package/docs/types/TagEvents.html +1 -1
  517. package/docs/types/TagGLTFObject.html +1 -1
  518. package/docs/types/TagHooks.html +1 -1
  519. package/docs/types/TagId.html +1 -1
  520. package/docs/types/TagInstance.html +1 -1
  521. package/docs/types/TagPlacement.html +2 -2
  522. package/docs/types/TagPointType.html +2 -2
  523. package/docs/types/TagRendererMap.html +1 -1
  524. package/docs/types/TopviewFloorplanPluginParameterType.html +1 -1
  525. package/docs/types/TopviewFloorplanPluginReturnType.html +1 -1
  526. package/docs/types/Util.ActionIfNoIntersection.html +1 -1
  527. package/docs/types/Util.AdherePoint.html +2 -2
  528. package/docs/types/Util.PointSelectorConfig.html +1 -1
  529. package/docs/types/Util.SupportedTarget.html +2 -2
  530. package/docs/types/Util.Target.html +2 -2
  531. package/docs/types/Util.ThreeObject.html +2 -2
  532. package/docs/types/WorkCode.html +1 -1
  533. package/docs/variables/FLOOR_TYPE_MAP.html +2 -2
  534. package/docs/variables/PLUGIN.html +1 -1
  535. package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -2
  536. package/docs/variables/ROOM_TYPE_MAP.html +2 -2
  537. package/docs/variables/Util.ANIME_PRESETS.html +2 -2
  538. package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +2 -2
  539. package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +2 -2
  540. package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +2 -2
  541. package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +2 -2
  542. package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +2 -2
  543. package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +2 -2
  544. package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +2 -2
  545. package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +2 -2
  546. package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +2 -2
  547. package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +2 -2
  548. package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +2 -2
  549. package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +2 -2
  550. package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +2 -2
  551. package/docs/variables/defaultGlobalConfig.html +1 -1
  552. package/docs/variables/itemLabelPluginServerParams.html +1 -1
  553. package/docs/variables/modelItemLabelPluginServerParams.html +1 -1
  554. package/docs/variables/modelRoomLabelPluginServerParams.html +1 -1
  555. package/libs/DigitalPerformancePlugin/core/DigitalHuman.d.ts +18 -0
  556. package/libs/DigitalPerformancePlugin/core/DigitalHuman.js +198 -110
  557. package/libs/DigitalPerformanceV2Plugin/controller/index.d.ts +330 -0
  558. package/libs/DigitalPerformanceV2Plugin/controller/index.js +715 -0
  559. package/libs/DigitalPerformanceV2Plugin/core/CameraDirector.d.ts +61 -0
  560. package/libs/DigitalPerformanceV2Plugin/core/CameraDirector.js +101 -0
  561. package/libs/DigitalPerformanceV2Plugin/core/CameraSampler.d.ts +53 -0
  562. package/libs/DigitalPerformanceV2Plugin/core/CameraSampler.js +91 -0
  563. package/libs/DigitalPerformanceV2Plugin/core/CameraTrack.d.ts +21 -0
  564. package/libs/DigitalPerformanceV2Plugin/core/CameraTrack.js +32 -0
  565. package/libs/DigitalPerformanceV2Plugin/core/FiveModelCameraBridge.d.ts +39 -0
  566. package/libs/DigitalPerformanceV2Plugin/core/FiveModelCameraBridge.js +72 -0
  567. package/libs/DigitalPerformanceV2Plugin/core/PerformanceClock.d.ts +55 -0
  568. package/libs/DigitalPerformanceV2Plugin/core/PerformanceClock.js +98 -0
  569. package/libs/DigitalPerformanceV2Plugin/core/Playground.d.ts +106 -0
  570. package/libs/DigitalPerformanceV2Plugin/core/Playground.js +209 -0
  571. package/libs/DigitalPerformanceV2Plugin/core/shared.d.ts +4 -0
  572. package/libs/DigitalPerformanceV2Plugin/core/shared.js +12 -0
  573. package/libs/DigitalPerformanceV2Plugin/index/index.js +11 -0
  574. package/libs/DigitalPerformanceV2Plugin/index.d.ts +9 -0
  575. package/libs/DigitalPerformanceV2Plugin/index.js +20 -0
  576. package/libs/DigitalPerformanceV2Plugin/typings/index.d.ts +113 -0
  577. package/libs/DigitalPerformanceV2Plugin/typings/index.js +1 -0
  578. package/libs/base/BasePlugin.js +5 -5
  579. package/libs/index.d.ts +1 -0
  580. package/libs/index.js +167 -158
  581. package/libs/shared-utils/logger.js +1 -1
  582. package/package.json +2 -1
@@ -0,0 +1,715 @@
1
+ var k = Object.defineProperty;
2
+ var C = Object.getOwnPropertySymbols;
3
+ var S = Object.prototype.hasOwnProperty, w = Object.prototype.propertyIsEnumerable;
4
+ var d = (u, e, t) => e in u ? k(u, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[e] = t, g = (u, e) => {
5
+ for (var t in e || (e = {}))
6
+ S.call(e, t) && d(u, t, e[t]);
7
+ if (C)
8
+ for (var t of C(e))
9
+ w.call(e, t) && d(u, t, e[t]);
10
+ return u;
11
+ };
12
+ var h = (u, e, t) => (d(u, typeof e != "symbol" ? e + "" : e, t), t);
13
+ var p = (u, e, t) => new Promise((r, a) => {
14
+ var s = (i) => {
15
+ try {
16
+ o(t.next(i));
17
+ } catch (l) {
18
+ a(l);
19
+ }
20
+ }, n = (i) => {
21
+ try {
22
+ o(t.throw(i));
23
+ } catch (l) {
24
+ a(l);
25
+ }
26
+ }, o = (i) => i.done ? r(i.value) : Promise.resolve(i.value).then(s, n);
27
+ o((t = t.apply(u, e)).next());
28
+ });
29
+ import { PerformancePlayground as b, getChapterModelDuration as T, getChapterDuration as E } from "../core/Playground.js";
30
+ import { CameraTrack as K } from "../core/CameraTrack.js";
31
+ import "three";
32
+ import "../../DigitalPerformancePlugin/core/DigitalPlayground.js";
33
+ import "@realsee/five/gltf-loader";
34
+ import "../../DigitalPerformancePlugin/core/DigitalHuman.js";
35
+ import "../../DigitalPerformancePlugin/core/DigitalStateMachine.js";
36
+ import "../../DigitalPerformancePlugin/core/Trace.js";
37
+ import "@realsee/five";
38
+ import "../core/PerformanceClock.js";
39
+ import "../core/CameraDirector.js";
40
+ import "../core/FiveModelCameraBridge.js";
41
+ import "../core/CameraSampler.js";
42
+ const v = "Dnalogel-DigitalPerformanceV2Plugin", P = "five-world";
43
+ class B {
44
+ constructor(e, t = {}) {
45
+ h(this, "five");
46
+ h(this, "config");
47
+ h(this, "NAME", v);
48
+ h(this, "playground");
49
+ h(this, "state", {
50
+ enabled: !0,
51
+ playing: !1,
52
+ continuousPlaying: !1,
53
+ currentChapter: null,
54
+ currentScript: null,
55
+ selectedShotIndex: null
56
+ });
57
+ h(this, "progressListeners", /* @__PURE__ */ new Set());
58
+ h(this, "groupProgressListeners", /* @__PURE__ */ new Set());
59
+ h(this, "keyframesChangedListeners", /* @__PURE__ */ new Set());
60
+ h(this, "currentChapterChangedListeners", /* @__PURE__ */ new Set());
61
+ h(this, "unsubClockTick", null);
62
+ /**
63
+ * 进入编辑时的运镜内存态快照:以章节对象为 key,值为该章节相机关键帧的深拷贝;
64
+ * 值为 null 表示进入编辑时该章节不存在 camera player。null(整体)表示尚未打过快照。
65
+ */
66
+ h(this, "cameraEditSnapshot", null);
67
+ /**
68
+ * 组级章节时间映射缓存(加法式):按 currentScript 引用缓存。
69
+ * - `groupChapterTimeMapCacheScript` 记录缓存对应的 script 引用;
70
+ * - script 变更 / loadScript 时引用不一致 ⇒ 缓存失效、下次请求重算。
71
+ */
72
+ h(this, "groupChapterTimeMapCache", null);
73
+ h(this, "groupChapterTimeMapCacheScript", null);
74
+ /**
75
+ * D-SEEK-LIVE(方案 A):连播中「跨章 seek」的重定向令牌。
76
+ * 播放态跨章 seek 时置位 { index, fromTime } 并 abortCurrentPlay;连播循环 await 返回后据此跳转到目标章节继续播放。
77
+ */
78
+ h(this, "seekRedirect", null);
79
+ this.five = e, this.config = g({ autoPlay: !1, loop: !1, debug: !1 }, t), this.playground = new b(e, this.config.debug), this.unsubClockTick = this.playground.getClock().onTick(() => this.emitProgress());
80
+ }
81
+ /** 加载剧本:预加载资源 + 将模型加入 five 场景;autoPlay 时自动播放首章 */
82
+ loadScript(e) {
83
+ return p(this, null, function* () {
84
+ if (this.state.currentScript = e, this.playground.setScript(e), this.groupChapterTimeMapCache = null, this.groupChapterTimeMapCacheScript = null, yield this.preloadResources(e), this.five && this.five.scene) {
85
+ yield new Promise((r) => requestAnimationFrame(() => r()));
86
+ let t = 0;
87
+ if (e.chapters.forEach((r) => {
88
+ r.players.forEach((a) => {
89
+ if (a.type === "model") {
90
+ const s = this.playground.loader.getDigitalHuman(a.model, a.id);
91
+ s != null && s.container && (this.five.scene.add(s.container), t++);
92
+ }
93
+ });
94
+ }), t === 0)
95
+ throw new Error("没有模型被添加到场景中");
96
+ }
97
+ this.config.autoPlay && e.chapters.length > 0 && (yield this.playChapter(e.chapters[0]));
98
+ });
99
+ }
100
+ /** 播放指定章节 */
101
+ playChapter(e) {
102
+ return p(this, null, function* () {
103
+ this.state.currentChapter = e, this.state.continuousPlaying = !1, this.state.playing = !0;
104
+ try {
105
+ yield this.playground.playByChapter(e);
106
+ } finally {
107
+ this.state.playing = !1, this.emitProgress();
108
+ }
109
+ });
110
+ }
111
+ /** 通过索引播放章节 */
112
+ playChapterByIndex(e) {
113
+ return p(this, null, function* () {
114
+ const t = this.getChapters();
115
+ if (e < 0 || e >= t.length)
116
+ throw new Error("Invalid chapter index");
117
+ yield this.playChapter(t[e]);
118
+ });
119
+ }
120
+ /** 从当前章节连续播放到最后一章(连播中跨章 seek 可经 seekRedirect 令牌无缝重定向) */
121
+ playAllRemaining() {
122
+ return p(this, null, function* () {
123
+ const e = this.getChapters();
124
+ if (e.length === 0)
125
+ throw new Error("No chapters to play");
126
+ let t = 0;
127
+ if (this.state.currentChapter) {
128
+ const r = e.findIndex((a) => a.name === this.state.currentChapter.name);
129
+ t = r === -1 ? 0 : r;
130
+ }
131
+ this.state.continuousPlaying = !0, this.state.playing = !0, this.seekRedirect = null;
132
+ try {
133
+ for (; t >= 0 && t < e.length && this.state.continuousPlaying; ) {
134
+ let r = 0;
135
+ if (this.seekRedirect && this.seekRedirect.index === t && (r = this.seekRedirect.fromTime), this.seekRedirect = null, this.state.currentChapter = e[t], this.emitProgress(), yield this.playground.playByChapter(e[t], r), this.seekRedirect) {
136
+ t = this.seekRedirect.index;
137
+ continue;
138
+ }
139
+ t++;
140
+ }
141
+ } finally {
142
+ this.state.playing = !1, this.state.continuousPlaying = !1, this.seekRedirect = null, this.emitProgress();
143
+ }
144
+ });
145
+ }
146
+ /** 从第一章开始按顺序连续播放(用于"重播全部",保留已捕获的各章节运镜) */
147
+ playAllFromStart() {
148
+ return p(this, null, function* () {
149
+ yield this.playFromChapterIndex(0);
150
+ });
151
+ }
152
+ /** 从指定章节索引开始,按顺序连续播放到本动画组最后一章(保留已捕获的各章节运镜) */
153
+ playFromChapterIndex(e) {
154
+ return p(this, null, function* () {
155
+ const t = this.getChapters();
156
+ if (t.length === 0)
157
+ throw new Error("No chapters to play");
158
+ const r = e < 0 ? 0 : e >= t.length ? t.length - 1 : e;
159
+ this.state.currentChapter = t[r], yield this.playAllRemaining();
160
+ });
161
+ }
162
+ /**
163
+ * 编辑态:仅播放当前章节(不连播下一章)。
164
+ * 章节自然播放到末尾(ended)后,由 controller 执行「进度归零 + 恢复当前章节默认视角」,
165
+ * SHALL NOT 自动连播下一章节(区别于展示端 playAllRemaining 的章节连续播放)。
166
+ * 无当前章节时为 no-op。
167
+ */
168
+ playCurrentChapterForEdit() {
169
+ return p(this, null, function* () {
170
+ const e = this.state.currentChapter;
171
+ if (!e)
172
+ return;
173
+ const t = this.getCurrentChapterIndex(), r = this.playground.getClock().getTime();
174
+ this.state.continuousPlaying = !1, this.state.playing = !0;
175
+ try {
176
+ yield this.playground.playByChapter(e, r, {
177
+ prepare: () => this.playground.prepareCameraTo(r)
178
+ });
179
+ } finally {
180
+ this.state.playing = !1, this.playground.setTimelineTo(0), this.applyChapterDefaultView(t), this.emitProgress();
181
+ }
182
+ });
183
+ }
184
+ /** 暂停 */
185
+ pause() {
186
+ this.playground.pause(), this.state.playing = !1, this.emitProgress();
187
+ }
188
+ continue(e) {
189
+ if (e != null && e.prepare)
190
+ return (() => p(this, null, function* () {
191
+ yield this.playground.prepareCameraTo(this.playground.getClock().getTime()), this.playground.resume(), this.state.playing = !0, this.emitProgress();
192
+ }))();
193
+ this.playground.resume(), this.state.playing = !0, this.emitProgress();
194
+ }
195
+ /**
196
+ * 编辑态暂停(playing→paused,相机由「导演」交还「用户」拥有)。
197
+ * 统一 Mapview 后,导演接管期间 five 始终是合法 Mapview orbit 状态,暂停瞬间画面不变、
198
+ * 且 five 手势天然为正常模型视角(左键绕 target orbit、右键平移),无需特殊转换。见设计 §5.3.1。
199
+ * 仅供编辑端(camera-mode)暂停路径调用。
200
+ */
201
+ pauseForEdit() {
202
+ this.pause();
203
+ }
204
+ /**
205
+ * 编辑态续播(当前章节):在恢复时钟前先 `await prepareCameraTo(当前时间)`,
206
+ * 以内插动画平滑回到暂停瞬间对应的运镜视角(无突变 user→director 切换,Req 13.9 / 18.9),
207
+ * prepare 不计入播放时间(时钟在 prepare 期间不推进)后再 resume。
208
+ * 章节无运镜关键帧时 prepare 为 no-op。不改变通用 `continue()`/`pause()` 语义。
209
+ */
210
+ continueForEdit() {
211
+ return p(this, null, function* () {
212
+ yield this.playground.prepareCameraTo(this.playground.getClock().getTime()), this.playground.resume(), this.state.playing = !0, this.emitProgress();
213
+ });
214
+ }
215
+ /** 运镜开关:关闭后播放仅驱动模型动画,不接管 five 相机(立即生效) */
216
+ setCameraDirectionEnabled(e) {
217
+ this.playground.setCameraDirectionEnabled(e);
218
+ }
219
+ /**
220
+ * seek 预览:跳转到指定时间并渲染当前帧(不改变播放/暂停状态)。
221
+ * - 无当前章节:不改时钟、不渲染,返回失败指示且不抛异常。
222
+ * - 运镜启用:经 director seek 应用相机;运镜禁用:仅驱动 DigitalHuman。
223
+ */
224
+ setTimelineTo(e) {
225
+ return this.state.currentChapter ? (this.playground.setTimelineTo(e), this.state.playing || this.playground.previewCameraAt(this.playground.getClock().getTime()), this.emitProgress(), { success: !0 }) : { success: !1, error: "无当前章节" };
226
+ }
227
+ /**
228
+ * 在指定时间捕获当前 five 相机为一个运镜关键帧。
229
+ * - 位姿取自 five 当前 Mapview 状态(target=offset、longitude、latitude、distance);fov 取自 fiveState(缺省读 five.getCurrentState())。
230
+ * - 按 timeStamp 升序插入;同 timeStamp 覆盖。
231
+ * 拒绝(保持序列不变并返回 error):未加载 script / 无当前章节 / time 非负有限数校验失败。
232
+ */
233
+ addCameraKeyframe(e, t, r) {
234
+ const a = this.guardKeyframeEdit();
235
+ if (a)
236
+ return a;
237
+ if (!(Number.isFinite(e) && e >= 0))
238
+ return this.rejectKeyframe("time 必须为非负有限数");
239
+ const s = this.ensureCameraPlayer(), n = this.captureCameraPose(), o = this.resolveFov(t), i = {
240
+ timeStamp: e,
241
+ target: n.target,
242
+ longitude: n.longitude,
243
+ latitude: n.latitude,
244
+ distance: n.distance,
245
+ fov: o
246
+ };
247
+ r != null && r.transition && (i.transition = r.transition), r != null && r.thumbnail && (i.thumbnail = r.thumbnail);
248
+ const l = s.keyframes.findIndex((m) => m.timeStamp === e);
249
+ return l >= 0 ? s.keyframes[l] = i : s.keyframes.push(i), s.keyframes.sort((m, c) => m.timeStamp - c.timeStamp), this.afterKeyframesChanged(s);
250
+ }
251
+ /**
252
+ * 更新指定下标关键帧:合并 patch 中出现的字段,按 timeStamp 重排序。
253
+ * 拒绝(保持序列不变):未加载 script / 无章节 / index 越界 / patch.timeStamp 非负有限数校验失败。
254
+ */
255
+ updateCameraKeyframe(e, t) {
256
+ const r = this.guardKeyframeEdit();
257
+ if (r)
258
+ return r;
259
+ const a = this.getCameraPlayer();
260
+ if (!a || e < 0 || e >= a.keyframes.length)
261
+ return this.rejectKeyframe("index 越界");
262
+ if (t.timeStamp !== void 0 && !(Number.isFinite(t.timeStamp) && t.timeStamp >= 0))
263
+ return this.rejectKeyframe("time 必须为非负有限数");
264
+ const s = g(g({}, a.keyframes[e]), t);
265
+ return a.keyframes[e] = s, a.keyframes.sort((n, o) => n.timeStamp - o.timeStamp), this.afterKeyframesChanged(a);
266
+ }
267
+ /** 移除指定下标关键帧。拒绝(保持序列不变):未加载 script / 无章节 / index 越界。 */
268
+ removeCameraKeyframe(e) {
269
+ const t = this.guardKeyframeEdit();
270
+ if (t)
271
+ return t;
272
+ const r = this.getCameraPlayer();
273
+ return !r || e < 0 || e >= r.keyframes.length ? this.rejectKeyframe("index 越界") : (r.keyframes.splice(e, 1), this.afterKeyframesChanged(r));
274
+ }
275
+ /** 获取当前章节的运镜关键帧(升序副本;无章节/无 camera player 时返回空数组) */
276
+ getCameraKeyframes() {
277
+ const e = this.getCameraPlayer();
278
+ return e ? e.keyframes.map((t) => g({}, t)) : [];
279
+ }
280
+ /**
281
+ * 序列化当前章节的运镜 player。
282
+ * keyframes 按 timeStamp 升序,仅写入已设置的可选字段(不写 undefined 占位)。
283
+ * 空/无 camera player 返回 keyframes:[];未加载 script / 无章节 时拒绝并返回 error。
284
+ */
285
+ serializeCameraPlayer() {
286
+ var t;
287
+ if (!this.state.currentScript)
288
+ return { success: !1, error: "未加载剧本" };
289
+ if (!this.state.currentChapter)
290
+ return { success: !1, error: "无当前章节" };
291
+ const e = this.getCameraPlayer();
292
+ return {
293
+ success: !0,
294
+ player: {
295
+ name: (t = e == null ? void 0 : e.name) != null ? t : "camera",
296
+ type: "camera",
297
+ keyframes: this.serializeKeyframes(e),
298
+ coordinateSpace: P
299
+ }
300
+ };
301
+ }
302
+ /**
303
+ * 序列化全部章节中"含非空关键帧"的运镜 player,按章节索引返回。
304
+ * 供编辑端按"章节起始动画 id"聚合后整组保存。未加载 script 时返回空数组。
305
+ */
306
+ serializeAllCameraPlayers() {
307
+ if (!this.state.currentScript)
308
+ return [];
309
+ const e = [];
310
+ return this.getChapters().forEach((t, r) => {
311
+ var s;
312
+ const a = this.cameraPlayerOf(t);
313
+ a && a.keyframes.length > 0 && e.push({
314
+ chapterIndex: r,
315
+ player: {
316
+ name: (s = a.name) != null ? s : "camera",
317
+ type: "camera",
318
+ keyframes: this.serializeKeyframes(a),
319
+ coordinateSpace: P
320
+ }
321
+ });
322
+ }), e;
323
+ }
324
+ /**
325
+ * 按章节索引批量加载运镜(用于从持久化数据还原):替换对应章节 camera player 的关键帧。
326
+ * 调用方负责"对账"(只传锚点命中的章节),越界索引忽略。
327
+ */
328
+ loadCameraPlayersByChapterIndex(e) {
329
+ const t = this.getChapters();
330
+ Object.keys(e).forEach((a) => {
331
+ var l, m;
332
+ const s = Number(a);
333
+ if (!Number.isInteger(s) || s < 0 || s >= t.length)
334
+ return;
335
+ const n = t[s], o = e[s];
336
+ let i = n.players.find((c) => c.type === "camera");
337
+ i || (i = { name: (l = o.name) != null ? l : "camera", type: "camera", keyframes: [] }, n.players.push(i)), i.keyframes = [...(m = o.keyframes) != null ? m : []].sort((c, f) => c.timeStamp - f.timeStamp), o.coordinateSpace && (i.coordinateSpace = o.coordinateSpace);
338
+ });
339
+ const r = this.cameraPlayerOf(this.state.currentChapter);
340
+ r && this.playground.setCameraKeyframes(r.keyframes);
341
+ }
342
+ /** 注册关键帧序列变更监听(camera-keyframes-changed);返回反订阅函数 */
343
+ onCameraKeyframesChanged(e) {
344
+ return this.keyframesChangedListeners.add(e), () => this.keyframesChangedListeners.delete(e);
345
+ }
346
+ // —— 编辑端加法式新增能力(Requirement 18 / design Part III §7)——
347
+ /**
348
+ * 章节默认视角(Chapter_Default_View)。
349
+ * - 章节存在 ≥1 个运镜关键帧:返回该章节相机轨道 `sample(0)`(因首帧夹紧,等于首帧 CameraState)。
350
+ * - 章节存在 0 个运镜关键帧:返回 `undefined`。
351
+ * 默认视角不单独持久化,完全由关键帧派生(不在 cameraPlayers 新增字段)。
352
+ */
353
+ getChapterDefaultView(e) {
354
+ const t = this.buildChapterCameraTrack(e);
355
+ if (!(!t || !t.hasContent()))
356
+ return t.sample(0);
357
+ }
358
+ /**
359
+ * 应用章节默认视角到 five。
360
+ * - 章节存在关键帧:经 FiveModelCameraBridge 立即应用 `sample(0)`。
361
+ * - 章节存在 0 个关键帧:no-op(保持当前 five 相机状态、不强制移动)。
362
+ */
363
+ applyChapterDefaultView(e) {
364
+ const t = this.getChapterDefaultView(e);
365
+ t && this.playground.applyCameraStateImmediately(t);
366
+ }
367
+ /**
368
+ * 设为当前编辑章节(不开始播放)。该次调用内联动完成:
369
+ * 切暂停 → `seek(0)`(进度归零、各 DigitalHuman 渲染 t=0)→ 重建 director 轨道到该章节关键帧 →
370
+ * 应用该章节默认视角 → 读取并更新该章节总时长 → 清除已选中运镜项 → 派发 onCurrentChapterChanged。
371
+ * 越界索引为 no-op。
372
+ */
373
+ setCurrentChapter(e) {
374
+ const t = this.getChapters();
375
+ if (e < 0 || e >= t.length)
376
+ return;
377
+ const r = t[e];
378
+ this.playground.pause(), this.state.playing = !1, this.state.currentChapter = r, this.playground.prepareChapter(r, 0), this.applyChapterDefaultView(e), this.state.selectedShotIndex = null, this.emitProgress(), this.emitCurrentChapterChanged();
379
+ }
380
+ /** 当前章节信息:{ index, name, duration };duration 为该章节模型动画时长(排除相机 player) */
381
+ getCurrentChapterInfo() {
382
+ const e = this.state.currentChapter;
383
+ return e ? {
384
+ index: this.getCurrentChapterIndex(),
385
+ name: e.name,
386
+ duration: T(e)
387
+ } : { index: -1, name: "", duration: 0 };
388
+ }
389
+ /** 注册当前章节变更监听(current-chapter-changed);返回反订阅函数 */
390
+ onCurrentChapterChanged(e) {
391
+ return this.currentChapterChangedListeners.add(e), () => this.currentChapterChangedListeners.delete(e);
392
+ }
393
+ /**
394
+ * 进入运镜编辑:对全部章节运镜内存态打一次深快照(供 discardCameraChanges 还原)。
395
+ * 仅记录内存快照,不触碰持久化、不改相机/播放状态。
396
+ */
397
+ beginCameraEditSession() {
398
+ const e = /* @__PURE__ */ new Map();
399
+ this.getChapters().forEach((t) => {
400
+ const r = this.cameraPlayerOf(t);
401
+ e.set(t, r ? this.cloneKeyframes(r.keyframes) : null);
402
+ }), this.cameraEditSnapshot = e;
403
+ }
404
+ /**
405
+ * 放弃运镜修改:将运镜内存态还原到 `beginCameraEditSession` 时的快照(不走服务端重载)。
406
+ * 未打过快照时为 no-op。还原后重建当前章节 director 轨道并派发关键帧变更事件。
407
+ */
408
+ discardCameraChanges() {
409
+ const e = this.cameraEditSnapshot;
410
+ if (!e)
411
+ return;
412
+ e.forEach((r, a) => {
413
+ const s = this.cameraPlayerOf(a);
414
+ if (r === null)
415
+ s && (s.keyframes = []);
416
+ else if (s)
417
+ s.keyframes = this.cloneKeyframes(r);
418
+ else {
419
+ const n = { name: "camera", type: "camera", keyframes: this.cloneKeyframes(r) };
420
+ a.players.push(n);
421
+ }
422
+ });
423
+ const t = this.cameraPlayerOf(this.state.currentChapter);
424
+ this.playground.setCameraKeyframes(t ? t.keyframes : []), this.emitKeyframesChanged(this.getCameraKeyframes());
425
+ }
426
+ /** 当前进度(当前章节内 currentTime/totalTime,单位 ms;含当前章节索引/总章节数) */
427
+ getProgress() {
428
+ const e = this.playground.getClock(), t = e.getTime();
429
+ let r = e.getDuration();
430
+ r <= 0 && this.state.currentChapter && (r = E(this.state.currentChapter));
431
+ const a = this.getChapters(), s = this.state.currentChapter, n = s ? a.findIndex((o) => o === s || o.name === s.name) : -1;
432
+ return { currentTime: t, totalTime: r, currentChapterIndex: n, totalChapters: a.length };
433
+ }
434
+ /** 注册进度监听;返回反订阅函数 */
435
+ onProgressChanged(e) {
436
+ return this.progressListeners.add(e), () => this.progressListeners.delete(e);
437
+ }
438
+ /**
439
+ * 组级章节时间映射(加法式):每章 { index, name, startTime, endTime, duration } 逐章累计。
440
+ * - duration[i] = getChapterModelDuration(chapters[i])(排除 camera player)
441
+ * - startTime[0]=0、startTime[i]=endTime[i-1]、endTime[i]=startTime[i]+duration[i]
442
+ * - 未加载 / 空章节组返回 [];纯读,不修改任何引擎状态。
443
+ * 按 currentScript 引用缓存;loadScript / script 变更时失效重算。
444
+ */
445
+ getGroupChapterTimeMap() {
446
+ const e = this.state.currentScript;
447
+ if (!e)
448
+ return [];
449
+ if (this.groupChapterTimeMapCache && this.groupChapterTimeMapCacheScript === e)
450
+ return this.groupChapterTimeMapCache;
451
+ const t = this.getChapters(), r = [];
452
+ let a = 0;
453
+ for (let s = 0; s < t.length; s++) {
454
+ const n = T(t[s]), o = a, i = o + n;
455
+ r.push({ index: s, name: t[s].name, startTime: o, endTime: i, duration: n }), a = i;
456
+ }
457
+ return this.groupChapterTimeMapCache = r, this.groupChapterTimeMapCacheScript = e, r;
458
+ }
459
+ /**
460
+ * 组级进度聚合(加法式):由章节级 getProgress() + getGroupChapterTimeMap() 派生。
461
+ * - groupTotalTime = Σ duration
462
+ * - groupCurrentTime = startTime[currentChapterIndex] + clamp(currentTime, 0, duration[idx])(无当前章节为 0)
463
+ * - 0 ≤ groupCurrentTime ≤ groupTotalTime;percentage ∈ [0,100](groupTotalTime=0 时为 0)
464
+ * 纯读,不修改任何引擎状态。
465
+ */
466
+ getGroupProgress() {
467
+ const e = this.getProgress(), t = this.getGroupChapterTimeMap(), r = t.length === 0 ? 0 : t[t.length - 1].endTime, a = e.currentChapterIndex;
468
+ let s = 0;
469
+ if (a >= 0 && a < t.length) {
470
+ const o = t[a].startTime, i = this.clamp(e.currentTime, 0, t[a].duration);
471
+ s = this.clamp(o + i, 0, r);
472
+ }
473
+ const n = r > 0 ? this.clamp(s / r * 100, 0, 100) : 0;
474
+ return {
475
+ groupCurrentTime: s,
476
+ groupTotalTime: r,
477
+ percentage: n,
478
+ currentChapterIndex: a,
479
+ currentChapterTime: e.currentTime,
480
+ currentChapterTotalTime: e.totalTime,
481
+ totalChapters: e.totalChapters
482
+ };
483
+ }
484
+ /**
485
+ * 注册组级进度监听(加法式,独立监听集合);返回反订阅函数。
486
+ * 在既有 emitProgress() 内追加组级广播,每 tick / 章节切换 / pause / seek 时随章节级广播一并触发。
487
+ */
488
+ onGroupProgressChanged(e) {
489
+ return this.groupProgressListeners.add(e), () => this.groupProgressListeners.delete(e);
490
+ }
491
+ /**
492
+ * 播放/预览专用:设为当前章节(不开始播放,区别于编辑端 setCurrentChapter)。
493
+ * 透传 playground.prepareChapter:切模型可见性 + 重绑相机轨道 + 配置时钟时长并 seek 到 fromTime(不 start)。
494
+ * 不做编辑端默认视角设置 / 选中清理等联动。越界索引为 no-op。
495
+ */
496
+ setCurrentChapterForPlayback(e, t) {
497
+ const r = this.getChapters();
498
+ e < 0 || e >= r.length || (this.state.currentChapter = r[e], this.playground.prepareChapter(r[e], t));
499
+ }
500
+ /**
501
+ * 跳转到组级时间(ms):映射为 (章节 index, 章节内时间),必要时切章后 setTimelineTo。
502
+ * 保留 seek 前的播放/暂停状态(D-SEEK-LIVE,方案 A):
503
+ * - 暂停态:跨章则先 setCurrentChapterForPlayback 切章,再 setTimelineTo 预览该帧后交还用户。
504
+ * - 播放态同章:clock.seek 续播(经 setTimelineTo)。
505
+ * - 播放态跨章:置 seekRedirect 并 abortCurrentPlay,由连播循环跳到目标章节从 localTime 继续。
506
+ * 越界钳制到 [0, groupTotalTime];未加载 script 返回 { success:false } 不抛异常。
507
+ */
508
+ seekToGroupTime(e) {
509
+ if (!this.state.currentScript)
510
+ return { success: !1, error: "未加载剧本" };
511
+ const t = this.getGroupChapterTimeMap();
512
+ if (t.length === 0)
513
+ return { success: !1, error: "无章节" };
514
+ const r = t[t.length - 1].endTime, a = this.clamp(e, 0, r), { index: s, localTime: n } = this.mapGroupTimeToChapter(a, t), o = s !== this.getCurrentChapterIndex();
515
+ if (this.state.playing && this.state.continuousPlaying && o)
516
+ return this.seekRedirect = { index: s, fromTime: n }, this.playground.abortCurrentPlay(), { success: !0 };
517
+ o && this.setCurrentChapterForPlayback(s, n);
518
+ const i = this.setTimelineTo(n);
519
+ return this.emitProgress(), i;
520
+ }
521
+ /** 跳转到组级百分比 [0,100](= seekToGroupTime(clamp(pct,0,100)/100 * groupTotalTime)) */
522
+ seekToGroupPercentage(e) {
523
+ const t = this.getGroupChapterTimeMap(), r = t.length === 0 ? 0 : t[t.length - 1].endTime;
524
+ return this.seekToGroupTime(this.clamp(e, 0, 100) / 100 * r);
525
+ }
526
+ /**
527
+ * 组级时间 → (章节索引, 章节内时间)(加法式内部)。
528
+ * - g ≤ 0 → { index: 0, localTime: 0 }
529
+ * - g ≥ groupTotal → { index: last, localTime: duration[last] }
530
+ * - 否则 startTime[index] ≤ g < endTime[index] 且 localTime = g - startTime[index]
531
+ * - 零时长章节(start==end)被自动跳过(不会定位其内部)
532
+ * 前置条件:timeMap 非空。
533
+ */
534
+ mapGroupTimeToChapter(e, t) {
535
+ const r = t[t.length - 1], a = r.endTime;
536
+ if (e <= 0)
537
+ return { index: 0, localTime: 0 };
538
+ if (e >= a)
539
+ return { index: r.index, localTime: r.duration };
540
+ for (const s of t)
541
+ if (e < s.endTime)
542
+ return { index: s.index, localTime: e - s.startTime };
543
+ return { index: r.index, localTime: r.duration };
544
+ }
545
+ /** 数值钳制工具 */
546
+ clamp(e, t, r) {
547
+ return e < t ? t : e > r ? r : e;
548
+ }
549
+ /** 当前可用章节 */
550
+ getChapters() {
551
+ var e;
552
+ return ((e = this.state.currentScript) == null ? void 0 : e.chapters) || [];
553
+ }
554
+ /** 当前状态快照 */
555
+ getState() {
556
+ return { playing: this.state.playing, currentChapter: this.state.currentChapter };
557
+ }
558
+ /** 重置播放(保留已加载资源) */
559
+ reset() {
560
+ this.playground.reset(), this.state.playing = !1, this.state.continuousPlaying = !1, this.state.currentChapter = null, this.state.selectedShotIndex = null, this.seekRedirect = null, this.emitProgress();
561
+ }
562
+ /** 销毁插件、释放资源 */
563
+ dispose() {
564
+ this.unsubClockTick && (this.unsubClockTick(), this.unsubClockTick = null), this.progressListeners.clear(), this.keyframesChangedListeners.clear(), this.currentChapterChangedListeners.clear(), this.groupProgressListeners.clear(), this.cameraEditSnapshot = null, this.playground.dispose();
565
+ }
566
+ /** 预加载模型 / 动画 / 道具(复用 Shared_Core 加载) */
567
+ preloadResources(e) {
568
+ return p(this, null, function* () {
569
+ const t = [], r = [], a = /* @__PURE__ */ new Set(), s = [], n = /* @__PURE__ */ new Map();
570
+ e.chapters.forEach((o) => {
571
+ o.players.forEach((i) => {
572
+ if (i.type !== "model")
573
+ return;
574
+ const l = i;
575
+ t.push(l.model), r.push(i.id), l.keyframes.forEach((m) => {
576
+ var f, y;
577
+ if (!m.animation)
578
+ return;
579
+ a.add(m.animation.url);
580
+ const c = m.animation.item;
581
+ c && (s.push(c.url), n.set(c.url, {
582
+ position: (f = c.position) != null ? f : [0, 0, 0],
583
+ rotation: (y = c.rotation) != null ? y : [0, 0, 0]
584
+ }));
585
+ });
586
+ });
587
+ }), yield Promise.all([
588
+ this.playground.loader.loadModels(t, r),
589
+ this.playground.loader.loadItems(s, n),
590
+ this.playground.loader.loadAnimations(Array.from(a))
591
+ ]);
592
+ });
593
+ }
594
+ emitProgress() {
595
+ if (this.progressListeners.size > 0) {
596
+ const e = this.getProgress();
597
+ this.progressListeners.forEach((t) => t(e));
598
+ }
599
+ this.emitGroupProgress();
600
+ }
601
+ /** 组级进度广播(加法式新增;独立监听集合,既有 onProgressChanged 语义不变) */
602
+ emitGroupProgress() {
603
+ if (this.groupProgressListeners.size === 0)
604
+ return;
605
+ const e = this.getGroupProgress();
606
+ this.groupProgressListeners.forEach((t) => t(e));
607
+ }
608
+ // —— 运镜关键帧编辑辅助 ——
609
+ /** 编辑前置校验:未加载 script / 无当前章节时返回拒绝结果,否则返回 null */
610
+ guardKeyframeEdit() {
611
+ return this.state.currentScript ? this.state.currentChapter ? null : this.rejectKeyframe("无当前章节") : this.rejectKeyframe("未加载剧本");
612
+ }
613
+ /** 拒绝结果:保持当前序列不变并返回 error */
614
+ rejectKeyframe(e) {
615
+ return { success: !1, error: e, keyframes: this.getCameraKeyframes() };
616
+ }
617
+ /** 当前章节的 camera player(不存在返回 null) */
618
+ getCameraPlayer() {
619
+ return this.cameraPlayerOf(this.state.currentChapter);
620
+ }
621
+ /** 指定章节的 camera player(不存在返回 null) */
622
+ cameraPlayerOf(e) {
623
+ if (!e)
624
+ return null;
625
+ const t = e.players.find((r) => r.type === "camera");
626
+ return t != null ? t : null;
627
+ }
628
+ /** 把 camera player 的关键帧序列化为升序、仅含已设置可选字段的副本(Mapview 位姿) */
629
+ serializeKeyframes(e) {
630
+ return (e ? [...e.keyframes].sort((r, a) => r.timeStamp - a.timeStamp) : []).map((r) => {
631
+ const a = {
632
+ timeStamp: r.timeStamp,
633
+ target: [...r.target],
634
+ longitude: r.longitude,
635
+ latitude: r.latitude,
636
+ distance: r.distance,
637
+ fov: r.fov
638
+ };
639
+ return r.transition !== void 0 && (a.transition = r.transition), r.thumbnail !== void 0 && (a.thumbnail = r.thumbnail), a;
640
+ });
641
+ }
642
+ /** 获取当前章节的 camera player,不存在则创建并挂到章节 players 上 */
643
+ ensureCameraPlayer() {
644
+ const e = this.state.currentChapter;
645
+ let t = e.players.find((r) => r.type === "camera");
646
+ return t || (t = { name: "camera", type: "camera", keyframes: [] }, e.players.push(t)), t;
647
+ }
648
+ /** fov 取值:优先 fiveState.fov,否则读 five 当前状态 */
649
+ resolveFov(e) {
650
+ var r, a;
651
+ if (e && Number.isFinite(e.fov))
652
+ return e.fov;
653
+ const t = (a = (r = this.five).getCurrentState) == null ? void 0 : a.call(r).fov;
654
+ return Number.isFinite(t) ? t : 60;
655
+ }
656
+ /** 捕获 five 当前 Mapview 位姿(target=offset、longitude、latitude、distance) */
657
+ captureCameraPose() {
658
+ var r, a;
659
+ const e = (a = (r = this.five).getCurrentState) == null ? void 0 : a.call(r), t = e == null ? void 0 : e.offset;
660
+ return {
661
+ target: t ? [t.x, t.y, t.z] : [0, 0, 0],
662
+ longitude: Number.isFinite(e == null ? void 0 : e.longitude) ? e.longitude : 0,
663
+ latitude: Number.isFinite(e == null ? void 0 : e.latitude) ? e.latitude : 0,
664
+ distance: Number.isFinite(e == null ? void 0 : e.distance) ? e.distance : 0
665
+ };
666
+ }
667
+ /** 关键帧变更后:重建并绑定相机轨道(供 seek 预览/后续播放接管),派发事件,返回成功结果 */
668
+ afterKeyframesChanged(e) {
669
+ this.playground.setCameraKeyframes(e.keyframes);
670
+ const t = this.getCameraKeyframes();
671
+ return this.emitKeyframesChanged(t), { success: !0, keyframes: t };
672
+ }
673
+ emitKeyframesChanged(e) {
674
+ this.keyframesChangedListeners.forEach((t) => t(e.map((r) => g({}, r))));
675
+ }
676
+ emitCurrentChapterChanged() {
677
+ if (this.currentChapterChangedListeners.size === 0)
678
+ return;
679
+ const e = this.getCurrentChapterInfo();
680
+ this.currentChapterChangedListeners.forEach((t) => t(g({}, e)));
681
+ }
682
+ /** 当前章节索引(0-based;无当前章节为 -1),按引用或名称匹配 */
683
+ getCurrentChapterIndex() {
684
+ const e = this.state.currentChapter;
685
+ return e ? this.getChapters().findIndex((t) => t === e || t.name === e.name) : -1;
686
+ }
687
+ /** 由指定章节的相机关键帧构建一条 CameraTrack(无章节/无 camera player 返回 null) */
688
+ buildChapterCameraTrack(e) {
689
+ const t = this.getChapters();
690
+ if (e < 0 || e >= t.length)
691
+ return null;
692
+ const r = this.cameraPlayerOf(t[e]);
693
+ if (!r || r.keyframes.length === 0)
694
+ return null;
695
+ const a = new K();
696
+ return a.setKeyframes(r.keyframes), a;
697
+ }
698
+ /** 深拷贝关键帧序列(数组字段亦深拷贝),供快照/还原使用(Mapview 位姿) */
699
+ cloneKeyframes(e) {
700
+ return e.map((t) => {
701
+ const r = {
702
+ timeStamp: t.timeStamp,
703
+ target: [...t.target],
704
+ longitude: t.longitude,
705
+ latitude: t.latitude,
706
+ distance: t.distance,
707
+ fov: t.fov
708
+ };
709
+ return t.transition !== void 0 && (r.transition = t.transition), t.thumbnail !== void 0 && (r.thumbnail = t.thumbnail), r;
710
+ });
711
+ }
712
+ }
713
+ export {
714
+ B as default
715
+ };