@realsee/five-webgpu 1.0.0-alpha.1 → 1.0.0-alpha.3

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 (126) hide show
  1. package/README.md +9 -9
  2. package/ai_guides/README.md +2 -2
  3. package/ai_guides/features/clipper.md +1 -1
  4. package/ai_guides/features/coordinate-system.md +1 -1
  5. package/ai_guides/features/event.md +1 -1
  6. package/ai_guides/features/five.md +3 -3
  7. package/ai_guides/features/gesture.md +2 -2
  8. package/ai_guides/features/get-screen-pixels.md +1 -1
  9. package/ai_guides/features/image-options.md +3 -3
  10. package/ai_guides/features/load-external-model.md +9 -9
  11. package/ai_guides/features/mode.md +2 -2
  12. package/ai_guides/features/pano-filter.md +3 -3
  13. package/ai_guides/features/pano-tile.md +2 -2
  14. package/ai_guides/features/raycast.md +1 -1
  15. package/ai_guides/features/screen-project.md +1 -1
  16. package/ai_guides/features/state.md +1 -1
  17. package/ai_guides/features/work.md +2 -2
  18. package/ai_guides/quick-start.md +3 -3
  19. package/ai_guides/release_notes/6.6.md +2 -2
  20. package/ai_guides/release_notes/6.7.md +1 -1
  21. package/ai_guides/release_notes/6.8.md +1 -1
  22. package/docs/assets/hierarchy.js +1 -1
  23. package/docs/assets/search.js +1 -1
  24. package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
  25. package/docs/classes/index.EyeDomeLightingPass.html +1 -1
  26. package/docs/classes/index.FivePass.html +1 -1
  27. package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
  28. package/docs/classes/index.FlowingLight2DPass.html +1 -1
  29. package/docs/classes/index.FlowingLight3DPass.html +1 -1
  30. package/docs/classes/index.GaussianBlurPass.html +1 -1
  31. package/docs/classes/index.Model.html +1 -1
  32. package/docs/classes/index.ModelScene.html +1 -1
  33. package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +7 -6
  34. package/docs/classes/index.PBMGaussianSplattingObject.html +12 -4
  35. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +31 -12
  36. package/docs/classes/index.PBMMeshBasicMaterial.html +1 -1
  37. package/docs/classes/index.PBMMeshBasicNodeMaterial.html +1 -1
  38. package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +1 -1
  39. package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +1 -1
  40. package/docs/classes/index.PBMMeshPhongMaterial.html +1 -1
  41. package/docs/classes/index.PBMMeshPhongNodeMaterial.html +1 -1
  42. package/docs/classes/index.PBMMeshPhysicalMaterial.html +1 -1
  43. package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +1 -1
  44. package/docs/classes/index.PBMPanoFilter.html +1 -1
  45. package/docs/classes/index.PBMPointCloud.html +1 -1
  46. package/docs/classes/index.PBMUpdateable.html +1 -1
  47. package/docs/classes/index.Parameter.html +1 -1
  48. package/docs/classes/index.Tile3D.html +1 -1
  49. package/docs/classes/index.TileNode.html +1 -1
  50. package/docs/classes/index.TrajectoryNode.html +1 -1
  51. package/docs/classes/index.WorkResolvedObserver.html +1 -1
  52. package/docs/documents/README.html +2 -2
  53. package/docs/documents/features_clipper.html +1 -1
  54. package/docs/documents/features_coordinate-system.html +1 -1
  55. package/docs/documents/features_event.html +1 -1
  56. package/docs/documents/features_five.html +3 -3
  57. package/docs/documents/features_gesture.html +2 -2
  58. package/docs/documents/features_get-screen-pixels.html +1 -1
  59. package/docs/documents/features_image-options.html +3 -3
  60. package/docs/documents/features_load-external-model.html +8 -8
  61. package/docs/documents/features_mode.html +2 -2
  62. package/docs/documents/features_pano-filter.html +3 -3
  63. package/docs/documents/features_pano-tile.html +2 -2
  64. package/docs/documents/features_raycast.html +1 -1
  65. package/docs/documents/features_screen-project.html +1 -1
  66. package/docs/documents/features_state.html +1 -1
  67. package/docs/documents/features_work.html +2 -2
  68. package/docs/documents/quick-start.html +2 -2
  69. package/docs/documents/release_notes_6.6.html +2 -2
  70. package/docs/documents/release_notes_6.7.html +1 -1
  71. package/docs/documents/release_notes_6.8.html +1 -1
  72. package/docs/hierarchy.html +1 -1
  73. package/docs/index.html +2 -2
  74. package/docs/interfaces/index.IPBMMaterial.html +1 -1
  75. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +1 -1
  76. package/docs/interfaces/index.PBMHDRConfig.html +1 -1
  77. package/docs/interfaces/index.ParameterMaterialValue.html +1 -1
  78. package/docs/interfaces/index.ParameterTilesetValue.html +1 -1
  79. package/docs/interfaces/index.ParameterValue.html +1 -1
  80. package/docs/interfaces/index.ResolvedParameterValue.html +1 -1
  81. package/docs/interfaces/index.SplatData.html +10 -5
  82. package/docs/interfaces/index.ViewLayer.html +1 -1
  83. package/docs/interfaces/index.WorkCubeImage.html +1 -1
  84. package/docs/interfaces/index.WorkImage.html +1 -1
  85. package/docs/interfaces/index.WorkObserver.html +1 -1
  86. package/docs/interfaces/index.WorkTile.html +1 -1
  87. package/docs/types/index.ParseOptions.html +1 -1
  88. package/five/gaussian-splatting/layerRegistry.d.ts +17 -0
  89. package/five/gaussian-splatting/shStore.d.ts +22 -0
  90. package/five/gaussian-splatting/splatAssembler.d.ts +69 -0
  91. package/five/gaussian-splatting/transformStore.d.ts +37 -0
  92. package/five/gaussian-splatting/wasm/sort.d.ts +4 -3
  93. package/five/index.js +86 -103
  94. package/five/index.mjs +3923 -3856
  95. package/five/model/loaders/spz.d.ts +50 -2
  96. package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +8 -5
  97. package/five/model/objects/pbmGaussianSplattingObject.d.ts +21 -4
  98. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +142 -43
  99. package/llms.txt +1 -1
  100. package/package.json +1 -1
  101. package/plugins/BasePlugin/index.d.ts +1 -1
  102. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +1 -1
  103. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.d.ts +1 -1
  104. package/plugins/index.js +3 -3
  105. package/plugins/index.mjs +3 -3
  106. package/react/context.d.ts +1 -1
  107. package/react/createProvider.d.ts +1 -1
  108. package/react/fiveApp.d.ts +1 -1
  109. package/react/hooks/unsafe__useFiveInstance.d.ts +1 -1
  110. package/react/hooks/useFiveAction.d.ts +1 -1
  111. package/react/hooks/useFiveCurrentObserver.d.ts +1 -1
  112. package/react/hooks/useFiveCurrentState.d.ts +1 -1
  113. package/react/hooks/useFiveEventCallback.d.ts +1 -1
  114. package/react/hooks/useFiveModelEffect.d.ts +1 -1
  115. package/react/hooks/useFiveModelIntersectRaycaster.d.ts +1 -1
  116. package/react/hooks/useFivePlugin.d.ts +1 -1
  117. package/react/hooks/useFiveSceneEffect.d.ts +1 -1
  118. package/react/hooks/useFiveState.d.ts +1 -1
  119. package/react/hooks/useFiveWork.d.ts +1 -1
  120. package/react/index.js +3 -3
  121. package/react/index.mjs +3 -3
  122. package/react/withFive.d.ts +1 -1
  123. package/umd/five-plugins.js +3 -3
  124. package/umd/five-react.js +3 -3
  125. package/umd/five.js +117 -134
  126. package/five/gaussian-splatting/util/renderData.d.ts +0 -66
@@ -10,7 +10,7 @@
10
10
  <p><strong>Definition</strong>: <a href="../../five/types/state.d.ts">State</a></p>
11
11
  </blockquote>
12
12
  <p><strong>State</strong> 类型定义如下(继承自 <code>Pose</code>):</p>
13
- <pre><code class="ts"><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;three/webgpu&quot;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Mode</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">Pose</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机偏航角 (水平方向),单位:弧度 */</span><br/><span class="hl-1"> </span><span class="hl-6">longitude</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机俯仰角 (垂直方向),单位:弧度 */</span><br/><span class="hl-1"> </span><span class="hl-6">latitude</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机垂直视场角,单位:度 */</span><br/><span class="hl-1"> </span><span class="hl-6">fov</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机看向的目标中心点坐标 */</span><br/><span class="hl-1"> </span><span class="hl-6">offset</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机距离目标中心点的距离 */</span><br/><span class="hl-1"> </span><span class="hl-6">distance</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">State</span><span class="hl-1"> </span><span class="hl-3">extends</span><span class="hl-1"> </span><span class="hl-7">Pose</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 显示模式 */</span><br/><span class="hl-1"> </span><span class="hl-6">mode</span><span class="hl-1">: </span><span class="hl-7">Mode</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 当前点位的唯一标识 (workCode) */</span><br/><span class="hl-1"> </span><span class="hl-6">workCode</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 当前点位在列表中的索引 */</span><br/><span class="hl-1"> </span><span class="hl-6">panoIndex</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
13
+ <pre><code class="ts"><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;three/webgpu&quot;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Mode</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five-webgpu&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">Pose</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机偏航角 (水平方向),单位:弧度 */</span><br/><span class="hl-1"> </span><span class="hl-6">longitude</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机俯仰角 (垂直方向),单位:弧度 */</span><br/><span class="hl-1"> </span><span class="hl-6">latitude</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机垂直视场角,单位:度 */</span><br/><span class="hl-1"> </span><span class="hl-6">fov</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机看向的目标中心点坐标 */</span><br/><span class="hl-1"> </span><span class="hl-6">offset</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机距离目标中心点的距离 */</span><br/><span class="hl-1"> </span><span class="hl-6">distance</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">State</span><span class="hl-1"> </span><span class="hl-3">extends</span><span class="hl-1"> </span><span class="hl-7">Pose</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 显示模式 */</span><br/><span class="hl-1"> </span><span class="hl-6">mode</span><span class="hl-1">: </span><span class="hl-7">Mode</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 当前点位的唯一标识 (workCode) */</span><br/><span class="hl-1"> </span><span class="hl-6">workCode</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 当前点位在列表中的索引 */</span><br/><span class="hl-1"> </span><span class="hl-6">panoIndex</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
14
14
  </code><button type="button">Copy</button></pre>
15
15
 
16
16
  <h2 id="concepts" class="tsd-anchor-link">Concepts<a href="#concepts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -10,7 +10,7 @@
10
10
  <p><strong>Definition</strong>: <a href="../../five/work/work.d.ts">Work</a>, <a href="../../five/work/looseWorkType.d.ts">LooseWork</a>, <a href="../../five/work/workJsonType.d.ts">WorkJson</a></p>
11
11
  </blockquote>
12
12
  <p><code>Work</code> 及其相关核心接口定义如下:</p>
13
- <pre><code class="ts"><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;three/webgpu&quot;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-10">type</span><span class="hl-1"> { </span><span class="hl-6">Mode</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">type</span><span class="hl-1"> </span><span class="hl-7">CubeFace</span><span class="hl-1"> = </span><span class="hl-9">&#39;up&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;down&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;right&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;front&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;back&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">/** Work 实体:VR 项目的根对象 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">Work</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 唯一标识 (Work ID) */</span><br/><span class="hl-1"> </span><span class="hl-6">workCode</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 项目名称 */</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 资源加载的基础路径 (Base URL) */</span><br/><span class="hl-1"> </span><span class="hl-6">baseURL</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 数据签发人 */</span><br/><span class="hl-1"> </span><span class="hl-6">issuer</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 过期时间 */</span><br/><span class="hl-1"> </span><span class="hl-6">expire</span><span class="hl-1">: </span><span class="hl-7">Date</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 允许访问的安全域名列表 */</span><br/><span class="hl-1"> </span><span class="hl-6">allowHosts</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">string</span><span class="hl-1">[];</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 初始化参数 (默认模态、视角等) */</span><br/><span class="hl-1"> </span><span class="hl-6">initial</span><span class="hl-1">: </span><span class="hl-7">WorkInitial</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相对位姿 (用于多 Work 拼接时的坐标变换) */</span><br/><span class="hl-1"> </span><span class="hl-6">transform</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Matrix4</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 模型参数 (3D 模型资源信息) */</span><br/><span class="hl-1"> </span><span class="hl-6">model</span><span class="hl-1">?: </span><span class="hl-7">WorkModel</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 全景点位信息 (所有可观测点位的列表) */</span><br/><span class="hl-1"> </span><span class="hl-6">observers</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">WorkObserver</span><span class="hl-1">[];</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 观察点:空间中可驻足观看的点位 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkObserver</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 所属 Work 引用 */</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 在 observers 数组中的索引 */</span><br/><span class="hl-1"> </span><span class="hl-6">index</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位序号 (通常与 index 相同) */</span><br/><span class="hl-1"> </span><span class="hl-6">panoIndex</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位唯一 ID (通常格式为 `${workCode}[${panoIndex}]`) */</span><br/><span class="hl-1"> </span><span class="hl-6">panoId</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位是否激活可用 */</span><br/><span class="hl-1"> </span><span class="hl-6">active</span><span class="hl-1">: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位是否可加载 */</span><br/><span class="hl-1"> </span><span class="hl-6">loadable</span><span class="hl-1">: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位所在楼层索引 */</span><br/><span class="hl-1"> </span><span class="hl-6">floorIndex</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位在模型坐标系下的观察位置 (用于渲染相机位置) */</span><br/><span class="hl-1"> </span><span class="hl-6">position</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位在模型坐标系下的地面位置 (用于导航和 UI 定位) */</span><br/><span class="hl-1"> </span><span class="hl-6">standingPosition</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位和模型的旋转对齐四元数 */</span><br/><span class="hl-1"> </span><span class="hl-6">quaternion</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Quaternion</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位和模型的旋转对齐矩阵 */</span><br/><span class="hl-1"> </span><span class="hl-6">matrix</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Matrix4</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 可连通的相关点位序号 (用于全景游走) */</span><br/><span class="hl-1"> </span><span class="hl-6">accessibleNodes</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">number</span><span class="hl-1">[];</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位全景图资源信息 */</span><br/><span class="hl-1"> </span><span class="hl-6">images</span><span class="hl-1">: </span><span class="hl-7">WorkImage</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 获取点位的全局坐标 */</span><br/><span class="hl-1"> </span><span class="hl-5">getWorldPosition</span><span class="hl-1">(</span><span class="hl-3">this</span><span class="hl-1">: </span><span class="hl-7">WorkObserver</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 获取点位的全局地面坐标 */</span><br/><span class="hl-1"> </span><span class="hl-5">getWorldStandingPosition</span><span class="hl-1">(</span><span class="hl-3">this</span><span class="hl-1">: </span><span class="hl-7">WorkObserver</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 将方向向量转化为全景图 uv */</span><br/><span class="hl-1"> </span><span class="hl-5">vectorToEquirectangularUv</span><span class="hl-1">(</span><span class="hl-6">vector</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 将全景图 uv 转化为方向向量 */</span><br/><span class="hl-1"> </span><span class="hl-5">equirectangularUvToVector</span><span class="hl-1">(</span><span class="hl-6">uv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 将方向向量转化为获六视图 uv */</span><br/><span class="hl-1"> </span><span class="hl-5">vectorToCubemapUv</span><span class="hl-1">(</span><span class="hl-6">vector</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): [</span><span class="hl-13">cubeFace</span><span class="hl-1">: </span><span class="hl-7">CubeFace</span><span class="hl-1">, </span><span class="hl-13">cubemapUv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 将六视图 uv 转化为方向向量 */</span><br/><span class="hl-1"> </span><span class="hl-5">cubemapUvToVector</span><span class="hl-1">(</span><span class="hl-6">cubeFace</span><span class="hl-1">: </span><span class="hl-7">CubeFace</span><span class="hl-1">, </span><span class="hl-6">uv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 初始化位姿参数 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkInitial</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模态 */</span><br/><span class="hl-1"> </span><span class="hl-6">mode</span><span class="hl-1">?: </span><span class="hl-7">Mode</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位序号 */</span><br/><span class="hl-1"> </span><span class="hl-6">panoIndex</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机水平角 */</span><br/><span class="hl-1"> </span><span class="hl-6">longitude</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机俯仰角 */</span><br/><span class="hl-1"> </span><span class="hl-6">latitude</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机可视角度(垂直)*/</span><br/><span class="hl-1"> </span><span class="hl-6">fov</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机观察点位置 [x, y, z] */</span><br/><span class="hl-1"> </span><span class="hl-6">offset</span><span class="hl-1">?: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机距离观察点距离 */</span><br/><span class="hl-1"> </span><span class="hl-6">distance</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 模型数据 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkModel</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** work */</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型文件地址 at3d / domez */</span><br/><span class="hl-1"> </span><span class="hl-6">file</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型贴图文件地址 */</span><br/><span class="hl-1"> </span><span class="hl-6">textures</span><span class="hl-1">?: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">string</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型贴图文件地址的父目录 */</span><br/><span class="hl-1"> </span><span class="hl-6">textureBase</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 指定上方向,对于 obj, ply 等定义不明确的需要指定上方向 */</span><br/><span class="hl-1"> </span><span class="hl-6">upAxis</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 3d tile */</span><br/><span class="hl-1"> </span><span class="hl-6">layers</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">WorkModelLayer</span><span class="hl-1">[];</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 模型图层信息 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkModelLayer</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** work */</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型类型 point_cloud mesh gaussian_splatting */</span><br/><span class="hl-1"> </span><span class="hl-6">type</span><span class="hl-1">: </span><span class="hl-9">&#39;point_cloud&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;mesh&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;gaussian_splatting&#39;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型名称 */</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 指定上方向 */</span><br/><span class="hl-1"> </span><span class="hl-6">upAxis</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** tileset.json 地址 */</span><br/><span class="hl-1"> </span><span class="hl-6">tileset</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 全景图资源信息 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkImage</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 分辨率表 */</span><br/><span class="hl-1"> </span><span class="hl-6">sizeList</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">number</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 瓦片信息 */</span><br/><span class="hl-1"> </span><span class="hl-6">tiles</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">WorkTile</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 缩略图/预览图等 */</span><br/><span class="hl-1"> [</span><span class="hl-6">key</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">]: </span><span class="hl-7">any</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
13
+ <pre><code class="ts"><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;three/webgpu&quot;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-10">type</span><span class="hl-1"> { </span><span class="hl-6">Mode</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five-webgpu&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">type</span><span class="hl-1"> </span><span class="hl-7">CubeFace</span><span class="hl-1"> = </span><span class="hl-9">&#39;up&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;down&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;right&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;front&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;back&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">/** Work 实体:VR 项目的根对象 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">Work</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 唯一标识 (Work ID) */</span><br/><span class="hl-1"> </span><span class="hl-6">workCode</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 项目名称 */</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 资源加载的基础路径 (Base URL) */</span><br/><span class="hl-1"> </span><span class="hl-6">baseURL</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 数据签发人 */</span><br/><span class="hl-1"> </span><span class="hl-6">issuer</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 过期时间 */</span><br/><span class="hl-1"> </span><span class="hl-6">expire</span><span class="hl-1">: </span><span class="hl-7">Date</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 允许访问的安全域名列表 */</span><br/><span class="hl-1"> </span><span class="hl-6">allowHosts</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">string</span><span class="hl-1">[];</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 初始化参数 (默认模态、视角等) */</span><br/><span class="hl-1"> </span><span class="hl-6">initial</span><span class="hl-1">: </span><span class="hl-7">WorkInitial</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相对位姿 (用于多 Work 拼接时的坐标变换) */</span><br/><span class="hl-1"> </span><span class="hl-6">transform</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Matrix4</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 模型参数 (3D 模型资源信息) */</span><br/><span class="hl-1"> </span><span class="hl-6">model</span><span class="hl-1">?: </span><span class="hl-7">WorkModel</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 全景点位信息 (所有可观测点位的列表) */</span><br/><span class="hl-1"> </span><span class="hl-6">observers</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">WorkObserver</span><span class="hl-1">[];</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 观察点:空间中可驻足观看的点位 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkObserver</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 所属 Work 引用 */</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 在 observers 数组中的索引 */</span><br/><span class="hl-1"> </span><span class="hl-6">index</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位序号 (通常与 index 相同) */</span><br/><span class="hl-1"> </span><span class="hl-6">panoIndex</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位唯一 ID (通常格式为 `${workCode}[${panoIndex}]`) */</span><br/><span class="hl-1"> </span><span class="hl-6">panoId</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位是否激活可用 */</span><br/><span class="hl-1"> </span><span class="hl-6">active</span><span class="hl-1">: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位是否可加载 */</span><br/><span class="hl-1"> </span><span class="hl-6">loadable</span><span class="hl-1">: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位所在楼层索引 */</span><br/><span class="hl-1"> </span><span class="hl-6">floorIndex</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位在模型坐标系下的观察位置 (用于渲染相机位置) */</span><br/><span class="hl-1"> </span><span class="hl-6">position</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位在模型坐标系下的地面位置 (用于导航和 UI 定位) */</span><br/><span class="hl-1"> </span><span class="hl-6">standingPosition</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位和模型的旋转对齐四元数 */</span><br/><span class="hl-1"> </span><span class="hl-6">quaternion</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Quaternion</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位和模型的旋转对齐矩阵 */</span><br/><span class="hl-1"> </span><span class="hl-6">matrix</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Matrix4</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 可连通的相关点位序号 (用于全景游走) */</span><br/><span class="hl-1"> </span><span class="hl-6">accessibleNodes</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">number</span><span class="hl-1">[];</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 点位全景图资源信息 */</span><br/><span class="hl-1"> </span><span class="hl-6">images</span><span class="hl-1">: </span><span class="hl-7">WorkImage</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 获取点位的全局坐标 */</span><br/><span class="hl-1"> </span><span class="hl-5">getWorldPosition</span><span class="hl-1">(</span><span class="hl-3">this</span><span class="hl-1">: </span><span class="hl-7">WorkObserver</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 获取点位的全局地面坐标 */</span><br/><span class="hl-1"> </span><span class="hl-5">getWorldStandingPosition</span><span class="hl-1">(</span><span class="hl-3">this</span><span class="hl-1">: </span><span class="hl-7">WorkObserver</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">/** 将方向向量转化为全景图 uv */</span><br/><span class="hl-1"> </span><span class="hl-5">vectorToEquirectangularUv</span><span class="hl-1">(</span><span class="hl-6">vector</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 将全景图 uv 转化为方向向量 */</span><br/><span class="hl-1"> </span><span class="hl-5">equirectangularUvToVector</span><span class="hl-1">(</span><span class="hl-6">uv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 将方向向量转化为获六视图 uv */</span><br/><span class="hl-1"> </span><span class="hl-5">vectorToCubemapUv</span><span class="hl-1">(</span><span class="hl-6">vector</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): [</span><span class="hl-13">cubeFace</span><span class="hl-1">: </span><span class="hl-7">CubeFace</span><span class="hl-1">, </span><span class="hl-13">cubemapUv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 将六视图 uv 转化为方向向量 */</span><br/><span class="hl-1"> </span><span class="hl-5">cubemapUvToVector</span><span class="hl-1">(</span><span class="hl-6">cubeFace</span><span class="hl-1">: </span><span class="hl-7">CubeFace</span><span class="hl-1">, </span><span class="hl-6">uv</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector2</span><span class="hl-1">, </span><span class="hl-6">uvOrigin</span><span class="hl-1">?: </span><span class="hl-9">&#39;top-left&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;bottom-left&#39;</span><span class="hl-1">): </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 初始化位姿参数 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkInitial</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模态 */</span><br/><span class="hl-1"> </span><span class="hl-6">mode</span><span class="hl-1">?: </span><span class="hl-7">Mode</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 点位序号 */</span><br/><span class="hl-1"> </span><span class="hl-6">panoIndex</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机水平角 */</span><br/><span class="hl-1"> </span><span class="hl-6">longitude</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机俯仰角 */</span><br/><span class="hl-1"> </span><span class="hl-6">latitude</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机可视角度(垂直)*/</span><br/><span class="hl-1"> </span><span class="hl-6">fov</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机观察点位置 [x, y, z] */</span><br/><span class="hl-1"> </span><span class="hl-6">offset</span><span class="hl-1">?: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 相机距离观察点距离 */</span><br/><span class="hl-1"> </span><span class="hl-6">distance</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 模型数据 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkModel</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** work */</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型文件地址 at3d / domez */</span><br/><span class="hl-1"> </span><span class="hl-6">file</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型贴图文件地址 */</span><br/><span class="hl-1"> </span><span class="hl-6">textures</span><span class="hl-1">?: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">string</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型贴图文件地址的父目录 */</span><br/><span class="hl-1"> </span><span class="hl-6">textureBase</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 指定上方向,对于 obj, ply 等定义不明确的需要指定上方向 */</span><br/><span class="hl-1"> </span><span class="hl-6">upAxis</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 3d tile */</span><br/><span class="hl-1"> </span><span class="hl-6">layers</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">WorkModelLayer</span><span class="hl-1">[];</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 模型图层信息 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkModelLayer</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** work */</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型类型 point_cloud mesh gaussian_splatting */</span><br/><span class="hl-1"> </span><span class="hl-6">type</span><span class="hl-1">: </span><span class="hl-9">&#39;point_cloud&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;mesh&#39;</span><span class="hl-1"> | </span><span class="hl-9">&#39;gaussian_splatting&#39;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型名称 */</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 指定上方向 */</span><br/><span class="hl-1"> </span><span class="hl-6">upAxis</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** tileset.json 地址 */</span><br/><span class="hl-1"> </span><span class="hl-6">tileset</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">/** 全景图资源信息 */</span><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkImage</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">work</span><span class="hl-1">: </span><span class="hl-7">Work</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 分辨率表 */</span><br/><span class="hl-1"> </span><span class="hl-6">sizeList</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">number</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 瓦片信息 */</span><br/><span class="hl-1"> </span><span class="hl-6">tiles</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">WorkTile</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 缩略图/预览图等 */</span><br/><span class="hl-1"> [</span><span class="hl-6">key</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">]: </span><span class="hl-7">any</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
14
14
  </code><button type="button">Copy</button></pre>
15
15
 
16
16
  <h2 id="concepts" class="tsd-anchor-link">Concepts<a href="#concepts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -92,7 +92,7 @@ Five 会遍历 <code>work.model.layers</code> 并加载其中定义的所有图
92
92
  <h2 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
93
93
  <h3 id="1-解析与加载-work" class="tsd-anchor-link">1. 解析与加载 Work<a href="#1-解析与加载-work" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
94
94
  <p>最基础的用法是从 API 获取数据并加载。</p>
95
- <pre><code class="ts"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1">, </span><span class="hl-6">parseWork</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">();</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">appendTo</span><span class="hl-1">(</span><span class="hl-6">document</span><span class="hl-1">.</span><span class="hl-5">getElementById</span><span class="hl-1">(</span><span class="hl-9">&quot;app&quot;</span><span class="hl-1">));</span><br/><br/><span class="hl-8">// 1. 获取数据</span><br/><span class="hl-5">fetch</span><span class="hl-1">(</span><span class="hl-9">&quot;https://vrlab-public.ljcdn.com/release/web/work.json&quot;</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">res</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">res</span><span class="hl-1">.</span><span class="hl-5">json</span><span class="hl-1">())</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 2. 解析数据</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">work</span><span class="hl-1"> = </span><span class="hl-5">parseWork</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-8">// 3. 加载到 Five</span><br/><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">load</span><span class="hl-1">(</span><span class="hl-6">work</span><span class="hl-1">);</span><br/><span class="hl-1"> });</span>
95
+ <pre><code class="ts"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1">, </span><span class="hl-6">parseWork</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five-webgpu&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">();</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">appendTo</span><span class="hl-1">(</span><span class="hl-6">document</span><span class="hl-1">.</span><span class="hl-5">getElementById</span><span class="hl-1">(</span><span class="hl-9">&quot;app&quot;</span><span class="hl-1">));</span><br/><br/><span class="hl-8">// 1. 获取数据</span><br/><span class="hl-5">fetch</span><span class="hl-1">(</span><span class="hl-9">&quot;https://vrlab-public.ljcdn.com/release/web/work.json&quot;</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">res</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">res</span><span class="hl-1">.</span><span class="hl-5">json</span><span class="hl-1">())</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 2. 解析数据</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">work</span><span class="hl-1"> = </span><span class="hl-5">parseWork</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-8">// 3. 加载到 Five</span><br/><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">load</span><span class="hl-1">(</span><span class="hl-6">work</span><span class="hl-1">);</span><br/><span class="hl-1"> });</span>
96
96
  </code><button type="button">Copy</button></pre>
97
97
 
98
98
  <h3 id="2-访问-work-数据" class="tsd-anchor-link">2. 访问 Work 数据<a href="#2-访问-work-数据" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
@@ -4,7 +4,7 @@
4
4
  </ul>
5
5
  <h2 id="installation" class="tsd-anchor-link">Installation<a href="#installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
6
6
  <p>通过 npm 或 yarn 安装:</p>
7
- <pre><code class="bash"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">three@^0.117.1</span><span class="hl-1"> </span><span class="hl-9">@realsee/five</span><br/><span class="hl-8"># or</span><br/><span class="hl-5">yarn</span><span class="hl-1"> </span><span class="hl-9">add</span><span class="hl-1"> </span><span class="hl-9">three@^0.117.1</span><span class="hl-1"> </span><span class="hl-9">@realsee/five</span>
7
+ <pre><code class="bash"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">three@^0.117.1</span><span class="hl-1"> </span><span class="hl-9">@realsee/five-webgpu</span><br/><span class="hl-8"># or</span><br/><span class="hl-5">yarn</span><span class="hl-1"> </span><span class="hl-9">add</span><span class="hl-1"> </span><span class="hl-9">three@^0.117.1</span><span class="hl-1"> </span><span class="hl-9">@realsee/five-webgpu</span>
8
8
  </code><button type="button">Copy</button></pre>
9
9
 
10
10
  <blockquote>
@@ -12,7 +12,7 @@
12
12
  </blockquote>
13
13
  <h2 id="basic-usage" class="tsd-anchor-link">Basic Usage<a href="#basic-usage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
14
14
  <p>初始化 Five 实例并加载 Work 数据:</p>
15
- <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1">, </span><span class="hl-6">parseWork</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 1. 创建 Five 实例</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">();</span><br/><br/><span class="hl-8">// 2. 挂载到 DOM</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">app</span><span class="hl-1"> = </span><span class="hl-6">document</span><span class="hl-1">.</span><span class="hl-5">getElementById</span><span class="hl-1">(</span><span class="hl-9">&#39;app&#39;</span><span class="hl-1">);</span><br/><span class="hl-10">if</span><span class="hl-1"> (</span><span class="hl-6">app</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-8">// 设置容器全屏</span><br/><span class="hl-1"> </span><span class="hl-6">app</span><span class="hl-1">.</span><span class="hl-6">style</span><span class="hl-1">.</span><span class="hl-6">width</span><span class="hl-1"> = </span><span class="hl-9">&#39;100vw&#39;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-6">app</span><span class="hl-1">.</span><span class="hl-6">style</span><span class="hl-1">.</span><span class="hl-6">height</span><span class="hl-1"> = </span><span class="hl-9">&#39;100vh&#39;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">appendTo</span><span class="hl-1">(</span><span class="hl-6">app</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 监听窗口大小变化</span><br/><span class="hl-1"> </span><span class="hl-6">window</span><span class="hl-1">.</span><span class="hl-5">addEventListener</span><span class="hl-1">(</span><span class="hl-9">&#39;resize&#39;</span><span class="hl-1">, () </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">refresh</span><span class="hl-1">());</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">// 3. 加载数据 (Work)</span><br/><span class="hl-8">// 这是一个公开测试数据</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">workURL</span><span class="hl-1"> = </span><span class="hl-9">&#39;https://raw.githubusercontent.com/realsee-developer/dnalogel/main/open-works/real/80o024DE2xyva3j5BE/work.json&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-5">fetch</span><span class="hl-1">(</span><span class="hl-6">workURL</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">res</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">res</span><span class="hl-1">.</span><span class="hl-5">json</span><span class="hl-1">())</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 解析并加载</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">work</span><span class="hl-1"> = </span><span class="hl-5">parseWork</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">return</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">load</span><span class="hl-1">(</span><span class="hl-6">work</span><span class="hl-1">);</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(() </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;模型加载完成&quot;</span><span class="hl-1">);</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> .</span><span class="hl-5">catch</span><span class="hl-1">(</span><span class="hl-6">err</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">error</span><span class="hl-1">(</span><span class="hl-6">err</span><span class="hl-1">));</span>
15
+ <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1">, </span><span class="hl-6">parseWork</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five-webgpu&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 1. 创建 Five 实例</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">();</span><br/><br/><span class="hl-8">// 2. 挂载到 DOM</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">app</span><span class="hl-1"> = </span><span class="hl-6">document</span><span class="hl-1">.</span><span class="hl-5">getElementById</span><span class="hl-1">(</span><span class="hl-9">&#39;app&#39;</span><span class="hl-1">);</span><br/><span class="hl-10">if</span><span class="hl-1"> (</span><span class="hl-6">app</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-8">// 设置容器全屏</span><br/><span class="hl-1"> </span><span class="hl-6">app</span><span class="hl-1">.</span><span class="hl-6">style</span><span class="hl-1">.</span><span class="hl-6">width</span><span class="hl-1"> = </span><span class="hl-9">&#39;100vw&#39;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-6">app</span><span class="hl-1">.</span><span class="hl-6">style</span><span class="hl-1">.</span><span class="hl-6">height</span><span class="hl-1"> = </span><span class="hl-9">&#39;100vh&#39;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">appendTo</span><span class="hl-1">(</span><span class="hl-6">app</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 监听窗口大小变化</span><br/><span class="hl-1"> </span><span class="hl-6">window</span><span class="hl-1">.</span><span class="hl-5">addEventListener</span><span class="hl-1">(</span><span class="hl-9">&#39;resize&#39;</span><span class="hl-1">, () </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">refresh</span><span class="hl-1">());</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-8">// 3. 加载数据 (Work)</span><br/><span class="hl-8">// 这是一个公开测试数据</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">workURL</span><span class="hl-1"> = </span><span class="hl-9">&#39;https://raw.githubusercontent.com/realsee-developer/dnalogel/main/open-works/real/80o024DE2xyva3j5BE/work.json&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-5">fetch</span><span class="hl-1">(</span><span class="hl-6">workURL</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">res</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">res</span><span class="hl-1">.</span><span class="hl-5">json</span><span class="hl-1">())</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 解析并加载</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">work</span><span class="hl-1"> = </span><span class="hl-5">parseWork</span><span class="hl-1">(</span><span class="hl-6">json</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">return</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">load</span><span class="hl-1">(</span><span class="hl-6">work</span><span class="hl-1">);</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> .</span><span class="hl-5">then</span><span class="hl-1">(() </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;模型加载完成&quot;</span><span class="hl-1">);</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> .</span><span class="hl-5">catch</span><span class="hl-1">(</span><span class="hl-6">err</span><span class="hl-1"> </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">error</span><span class="hl-1">(</span><span class="hl-6">err</span><span class="hl-1">));</span>
16
16
  </code><button type="button">Copy</button></pre>
17
17
 
18
18
  <h2 id="next-steps" class="tsd-anchor-link">Next Steps<a href="#next-steps" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -2,7 +2,7 @@
2
2
  <blockquote>
3
3
  <p>6.6.x 版本发布日志</p>
4
4
  </blockquote>
5
- <pre><code class="shell"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">@realsee/five@6.6</span>
5
+ <pre><code class="shell"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">@realsee/five-webgpu</span>
6
6
  </code><button type="button">Copy</button></pre>
7
7
 
8
8
  <h2 id="依赖升级" class="tsd-anchor-link">依赖升级<a href="#依赖升级" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -43,7 +43,7 @@
43
43
  <h2 id="新增特性" class="tsd-anchor-link">新增特性<a href="#新增特性" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
44
44
  <h3 id="imagebitmap-支持" class="tsd-anchor-link">ImageBitmap 支持<a href="#imagebitmap-支持" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
45
45
  <p>支持使用浏览器原生的 <code>ImageBitmap</code> API 替代传统的 <code>HTMLImageElement</code> 进行纹理加载。<code>ImageBitmap</code> 的解码过程可以在后台线程进行,避免了解码大图时阻塞主线程导致的掉帧现象。</p>
46
- <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 开启 Native ImageBitmap 支持 (全局配置)</span><br/><span class="hl-6">Five</span><span class="hl-1">.</span><span class="hl-6">useNativeImageBitmap</span><span class="hl-1"> = </span><span class="hl-3">true</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 之后创建的 Five 实例将自动应用此配置</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">({ ... });</span>
46
+ <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five-webgpu&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 开启 Native ImageBitmap 支持 (全局配置)</span><br/><span class="hl-6">Five</span><span class="hl-1">.</span><span class="hl-6">useNativeImageBitmap</span><span class="hl-1"> = </span><span class="hl-3">true</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 之后创建的 Five 实例将自动应用此配置</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">({ ... });</span>
47
47
  </code><button type="button">Copy</button></pre>
48
48
 
49
49
  <h3 id="图片-exif-旋转支持" class="tsd-anchor-link">图片 Exif 旋转支持<a href="#图片-exif-旋转支持" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
@@ -2,7 +2,7 @@
2
2
  <blockquote>
3
3
  <p>6.7.x 版本发布日志</p>
4
4
  </blockquote>
5
- <pre><code class="shell"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">@realsee/five@6.7</span>
5
+ <pre><code class="shell"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">@realsee/five-webgpu</span>
6
6
  </code><button type="button">Copy</button></pre>
7
7
 
8
8
  <h2 id="fivelaod-的多-work-的非阻塞性加载" class="tsd-anchor-link">five.laod 的多 Work 的非阻塞性加载<a href="#fivelaod-的多-work-的非阻塞性加载" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -2,7 +2,7 @@
2
2
  <blockquote>
3
3
  <p>6.8.x 版本发布日志</p>
4
4
  </blockquote>
5
- <pre><code class="shell"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">@realsee/five@6.8</span>
5
+ <pre><code class="shell"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">@realsee/five-webgpu</span>
6
6
  </code><button type="button">Copy</button></pre>
7
7
 
8
8
  <h2 id="gaussian-splatting-3dgs-支持" class="tsd-anchor-link">Gaussian Splatting (3DGS) 支持<a href="#gaussian-splatting-3dgs-支持" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>如视 Five SDK</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="1021" id="index.BaseEvent"><a href="interfaces/index.BaseEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BaseEvent</a><ul><li data-refl="1071" id="index.IntersectEvent"><a href="interfaces/index.IntersectEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IntersectEvent</a></li><li data-refl="1090" id="index.ModelTileEvent"><a href="interfaces/index.ModelTileEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelTileEvent</a></li><li data-refl="1099" id="index.ModelEvent"><a href="interfaces/index.ModelEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelEvent</a></li><li data-refl="1108" id="index.ModelSceneEvent"><a href="interfaces/index.ModelSceneEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelSceneEvent</a></li><li data-refl="1115" id="index.NetworkResourceEvent"><a href="interfaces/index.NetworkResourceEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>NetworkResourceEvent</a></li><li data-refl="1125" id="index.ObjectEvent"><a href="interfaces/index.ObjectEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ObjectEvent</a></li><li data-refl="1144" id="index.PanoTextureEvent"><a href="interfaces/index.PanoTextureEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoTextureEvent</a></li><li data-refl="1154" id="index.RenderEvent"><a href="interfaces/index.RenderEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>RenderEvent</a></li><li data-refl="1161" id="index.StateEvent"><a href="interfaces/index.StateEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>StateEvent</a><ul><li data-refl="1027" id="index.GestureEvent"><a href="interfaces/index.GestureEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GestureEvent</a></li><li data-refl="1080" id="index.ModeChangeEvent"><a href="interfaces/index.ModeChangeEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModeChangeEvent</a></li><li data-refl="1132" id="index.PanoEvent"><a href="interfaces/index.PanoEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoEvent</a></li></ul></li><li data-refl="1169" id="index.WorksEvent"><a href="interfaces/index.WorksEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorksEvent</a></li><li data-refl="1178" id="index.XRGestureEvent"><a href="interfaces/index.XRGestureEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>XRGestureEvent</a></li><li data-refl="1195" id="index.XRSessionEvent"><a href="interfaces/index.XRSessionEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>XRSessionEvent</a></li><li data-refl="1203" id="index.XRControllerEvent"><a href="interfaces/index.XRControllerEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>XRControllerEvent</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="813" id="index.BoundingVolume"><a href="interfaces/index.BoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BoundingVolume</a><ul><li data-refl="881" id="index.BoxBoundingVolume"><a href="interfaces/index.BoxBoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BoxBoundingVolume</a></li><li data-refl="927" id="index.RegionBoundingVolume"><a href="interfaces/index.RegionBoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>RegionBoundingVolume</a></li><li data-refl="976" id="index.SphereBoundingVolume"><a href="interfaces/index.SphereBoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>SphereBoundingVolume</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1450" id="index.ImageOptions"><a href="interfaces/index.ImageOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ImageOptions</a><ul><li data-refl="1463" id="index.TextureOptions"><a href="interfaces/index.TextureOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>TextureOptions</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1564" id="index.IntersectMeshInterface"><a href="interfaces/index.IntersectMeshInterface.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IntersectMeshInterface</a><ul><li data-refl="1431" id="index.IntersectMesh"><a href="interfaces/index.IntersectMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IntersectMesh</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="3587" id="index.IPBMMaterial"><a href="interfaces/index.IPBMMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IPBMMaterial</a><ul><li data-refl="3695" id="index.PBMMeshBasicMaterial"><a href="classes/index.PBMMeshBasicMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshBasicMaterial</a></li><li data-refl="3906" id="index.PBMMeshPanoOnlyMaterial"><a href="classes/index.PBMMeshPanoOnlyMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPanoOnlyMaterial</a></li><li data-refl="3766" id="index.PBMMeshPhongMaterial"><a href="classes/index.PBMMeshPhongMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhongMaterial</a></li><li data-refl="3836" id="index.PBMMeshPhysicalMaterial"><a href="classes/index.PBMMeshPhysicalMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhysicalMaterial</a></li><li data-refl="3695"><a href="classes/index.PBMMeshBasicMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshBasicMaterial</a></li><li data-refl="3766"><a href="classes/index.PBMMeshPhongMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhongMaterial</a></li><li data-refl="3836"><a href="classes/index.PBMMeshPhysicalMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhysicalMaterial</a></li><li data-refl="3906"><a href="classes/index.PBMMeshPanoOnlyMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPanoOnlyMaterial</a></li><li data-refl="3980" id="index.PBMMeshBasicNodeMaterial"><a href="classes/index.PBMMeshBasicNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshBasicNodeMaterial</a></li><li data-refl="4056" id="index.PBMMeshPhongNodeMaterial"><a href="classes/index.PBMMeshPhongNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhongNodeMaterial</a></li><li data-refl="4131" id="index.PBMMeshPhysicalNodeMaterial"><a href="classes/index.PBMMeshPhysicalNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhysicalNodeMaterial</a></li><li data-refl="4206" id="index.PBMMeshPanoOnlyNodeMaterial"><a href="classes/index.PBMMeshPanoOnlyNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPanoOnlyNodeMaterial</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="456" id="index.NetworkOptions"><a href="interfaces/index.NetworkOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>NetworkOptions</a><ul><li data-refl="419" id="index.AjaxOptions"><a href="interfaces/index.AjaxOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AjaxOptions</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1533" id="index.PanoCircleMeshInterface"><a href="interfaces/index.PanoCircleMeshInterface.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoCircleMeshInterface</a><ul><li data-refl="1256" id="index.PanoCircleMesh"><a href="classes/index.PanoCircleMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PanoCircleMesh</a></li><li data-refl="1380" id="index.PanoCircleMeshCustom"><a href="classes/index.PanoCircleMeshCustom.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PanoCircleMeshCustom</a></li><li data-refl="1319" id="index.PanoCircleMeshSolid"><a href="classes/index.PanoCircleMeshSolid.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PanoCircleMeshSolid</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="3024" id="index.PanoramaLikeControllerCustomInitArgs"><a href="interfaces/index.PanoramaLikeControllerCustomInitArgs.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoramaLikeControllerCustomInitArgs</a><ul><li data-refl="2961" id="index.ModelControllerCustomInitArgs"><a href="interfaces/index.ModelControllerCustomInitArgs.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelControllerCustomInitArgs</a></li><li data-refl="2979" id="index.PanoramaControllerCustomInitArgs"><a href="interfaces/index.PanoramaControllerCustomInitArgs.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoramaControllerCustomInitArgs</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="5859" id="index.ParameterMaterialValue"><a href="interfaces/index.ParameterMaterialValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterMaterialValue</a><ul><li data-refl="5753" id="index.ParameterValue"><a href="interfaces/index.ParameterValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterValue</a><ul><li data-refl="5806" id="index.ResolvedParameterValue"><a href="interfaces/index.ResolvedParameterValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ResolvedParameterValue</a></li></ul></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="5897" id="index.ParameterTilesetValue"><a href="interfaces/index.ParameterTilesetValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterTilesetValue</a><ul><li data-refl="5753"><a href="interfaces/index.ParameterValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterValue</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="6446" id="index.Pass"><a href="interfaces/index.Pass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>Pass</a><ul><li data-refl="6422" id="index.FivePass"><a href="classes/index.FivePass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FivePass</a><ul><li data-refl="6462" id="index.AdaptiveLuminancePass"><a href="classes/index.AdaptiveLuminancePass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>AdaptiveLuminancePass</a></li><li data-refl="6498" id="index.EyeDomeLightingPass"><a href="classes/index.EyeDomeLightingPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>EyeDomeLightingPass</a></li><li data-refl="6625" id="index.FlowingLight3DPass"><a href="classes/index.FlowingLight3DPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FlowingLight3DPass</a><ul><li data-refl="6541" id="index.FlowingLight2DPass"><a href="classes/index.FlowingLight2DPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FlowingLight2DPass</a></li></ul></li><li data-refl="6715" id="index.GaussianBlurPass"><a href="classes/index.GaussianBlurPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GaussianBlurPass</a></li><li data-refl="6752" id="index.FlowingFireworks3DPass"><a href="classes/index.FlowingFireworks3DPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FlowingFireworks3DPass</a></li></ul></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="3062" id="index.PBMMesh"><a href="classes/index.PBMMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMesh</a><ul><li data-refl="1243" id="index.BoundingMesh"><a href="classes/index.BoundingMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BoundingMesh</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1508" id="index.Pose"><a href="interfaces/index.Pose.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>Pose</a><ul><li data-refl="1514" id="index.State"><a href="interfaces/index.State.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>State</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="478" id="index.Subscribe"><a href="classes/index.Subscribe.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Subscribe</a><ul><li data-refl="273" id="index.NetworkSubscribe"><a href="classes/index.NetworkSubscribe.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>NetworkSubscribe</a></li><li data-refl="1573" id="index.Five"><a href="classes/index.Five.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Five</a></li><li data-refl="3387" id="index.PBMUpdateable"><a href="classes/index.PBMUpdateable.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMUpdateable</a><ul><li data-refl="3475" id="index.PBMPanoFilter"><a href="classes/index.PBMPanoFilter.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMPanoFilter</a></li></ul></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="4874" id="index.Tile3D"><a href="classes/index.Tile3D.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Tile3D</a><ul><li data-refl="5084" id="index.ViewLayer"><a href="interfaces/index.ViewLayer.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ViewLayer</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="5973" id="index.WorkCubeImage"><a href="interfaces/index.WorkCubeImage.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkCubeImage</a><ul><li data-refl="5988" id="index.WorkImage"><a href="interfaces/index.WorkImage.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkImage</a></li><li data-refl="6082" id="index.WorkTile"><a href="interfaces/index.WorkTile.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkTile</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="6038" id="index.WorkObserver"><a href="interfaces/index.WorkObserver.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkObserver</a><ul><li data-refl="6325" id="index.WorkResolvedObserver"><a href="classes/index.WorkResolvedObserver.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>WorkResolvedObserver</a></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>如视 Five SDK</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="1021" id="index.BaseEvent"><a href="interfaces/index.BaseEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BaseEvent</a><ul><li data-refl="1071" id="index.IntersectEvent"><a href="interfaces/index.IntersectEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IntersectEvent</a></li><li data-refl="1090" id="index.ModelTileEvent"><a href="interfaces/index.ModelTileEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelTileEvent</a></li><li data-refl="1099" id="index.ModelEvent"><a href="interfaces/index.ModelEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelEvent</a></li><li data-refl="1108" id="index.ModelSceneEvent"><a href="interfaces/index.ModelSceneEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelSceneEvent</a></li><li data-refl="1115" id="index.NetworkResourceEvent"><a href="interfaces/index.NetworkResourceEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>NetworkResourceEvent</a></li><li data-refl="1125" id="index.ObjectEvent"><a href="interfaces/index.ObjectEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ObjectEvent</a></li><li data-refl="1144" id="index.PanoTextureEvent"><a href="interfaces/index.PanoTextureEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoTextureEvent</a></li><li data-refl="1154" id="index.RenderEvent"><a href="interfaces/index.RenderEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>RenderEvent</a></li><li data-refl="1161" id="index.StateEvent"><a href="interfaces/index.StateEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>StateEvent</a><ul><li data-refl="1027" id="index.GestureEvent"><a href="interfaces/index.GestureEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GestureEvent</a></li><li data-refl="1080" id="index.ModeChangeEvent"><a href="interfaces/index.ModeChangeEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModeChangeEvent</a></li><li data-refl="1132" id="index.PanoEvent"><a href="interfaces/index.PanoEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoEvent</a></li></ul></li><li data-refl="1169" id="index.WorksEvent"><a href="interfaces/index.WorksEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorksEvent</a></li><li data-refl="1178" id="index.XRGestureEvent"><a href="interfaces/index.XRGestureEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>XRGestureEvent</a></li><li data-refl="1195" id="index.XRSessionEvent"><a href="interfaces/index.XRSessionEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>XRSessionEvent</a></li><li data-refl="1203" id="index.XRControllerEvent"><a href="interfaces/index.XRControllerEvent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>XRControllerEvent</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="813" id="index.BoundingVolume"><a href="interfaces/index.BoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BoundingVolume</a><ul><li data-refl="881" id="index.BoxBoundingVolume"><a href="interfaces/index.BoxBoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BoxBoundingVolume</a></li><li data-refl="927" id="index.RegionBoundingVolume"><a href="interfaces/index.RegionBoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>RegionBoundingVolume</a></li><li data-refl="976" id="index.SphereBoundingVolume"><a href="interfaces/index.SphereBoundingVolume.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>SphereBoundingVolume</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1450" id="index.ImageOptions"><a href="interfaces/index.ImageOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ImageOptions</a><ul><li data-refl="1463" id="index.TextureOptions"><a href="interfaces/index.TextureOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>TextureOptions</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1564" id="index.IntersectMeshInterface"><a href="interfaces/index.IntersectMeshInterface.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IntersectMeshInterface</a><ul><li data-refl="1431" id="index.IntersectMesh"><a href="interfaces/index.IntersectMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IntersectMesh</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="3582" id="index.IPBMMaterial"><a href="interfaces/index.IPBMMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>IPBMMaterial</a><ul><li data-refl="3690" id="index.PBMMeshBasicMaterial"><a href="classes/index.PBMMeshBasicMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshBasicMaterial</a></li><li data-refl="3901" id="index.PBMMeshPanoOnlyMaterial"><a href="classes/index.PBMMeshPanoOnlyMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPanoOnlyMaterial</a></li><li data-refl="3761" id="index.PBMMeshPhongMaterial"><a href="classes/index.PBMMeshPhongMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhongMaterial</a></li><li data-refl="3831" id="index.PBMMeshPhysicalMaterial"><a href="classes/index.PBMMeshPhysicalMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhysicalMaterial</a></li><li data-refl="3690"><a href="classes/index.PBMMeshBasicMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshBasicMaterial</a></li><li data-refl="3761"><a href="classes/index.PBMMeshPhongMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhongMaterial</a></li><li data-refl="3831"><a href="classes/index.PBMMeshPhysicalMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhysicalMaterial</a></li><li data-refl="3901"><a href="classes/index.PBMMeshPanoOnlyMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPanoOnlyMaterial</a></li><li data-refl="3975" id="index.PBMMeshBasicNodeMaterial"><a href="classes/index.PBMMeshBasicNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshBasicNodeMaterial</a></li><li data-refl="4051" id="index.PBMMeshPhongNodeMaterial"><a href="classes/index.PBMMeshPhongNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhongNodeMaterial</a></li><li data-refl="4126" id="index.PBMMeshPhysicalNodeMaterial"><a href="classes/index.PBMMeshPhysicalNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPhysicalNodeMaterial</a></li><li data-refl="4201" id="index.PBMMeshPanoOnlyNodeMaterial"><a href="classes/index.PBMMeshPanoOnlyNodeMaterial.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMeshPanoOnlyNodeMaterial</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="456" id="index.NetworkOptions"><a href="interfaces/index.NetworkOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>NetworkOptions</a><ul><li data-refl="419" id="index.AjaxOptions"><a href="interfaces/index.AjaxOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AjaxOptions</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1533" id="index.PanoCircleMeshInterface"><a href="interfaces/index.PanoCircleMeshInterface.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoCircleMeshInterface</a><ul><li data-refl="1256" id="index.PanoCircleMesh"><a href="classes/index.PanoCircleMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PanoCircleMesh</a></li><li data-refl="1380" id="index.PanoCircleMeshCustom"><a href="classes/index.PanoCircleMeshCustom.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PanoCircleMeshCustom</a></li><li data-refl="1319" id="index.PanoCircleMeshSolid"><a href="classes/index.PanoCircleMeshSolid.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PanoCircleMeshSolid</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="3024" id="index.PanoramaLikeControllerCustomInitArgs"><a href="interfaces/index.PanoramaLikeControllerCustomInitArgs.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoramaLikeControllerCustomInitArgs</a><ul><li data-refl="2961" id="index.ModelControllerCustomInitArgs"><a href="interfaces/index.ModelControllerCustomInitArgs.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ModelControllerCustomInitArgs</a></li><li data-refl="2979" id="index.PanoramaControllerCustomInitArgs"><a href="interfaces/index.PanoramaControllerCustomInitArgs.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PanoramaControllerCustomInitArgs</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="5854" id="index.ParameterMaterialValue"><a href="interfaces/index.ParameterMaterialValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterMaterialValue</a><ul><li data-refl="5748" id="index.ParameterValue"><a href="interfaces/index.ParameterValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterValue</a><ul><li data-refl="5801" id="index.ResolvedParameterValue"><a href="interfaces/index.ResolvedParameterValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ResolvedParameterValue</a></li></ul></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="5892" id="index.ParameterTilesetValue"><a href="interfaces/index.ParameterTilesetValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterTilesetValue</a><ul><li data-refl="5748"><a href="interfaces/index.ParameterValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ParameterValue</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="6441" id="index.Pass"><a href="interfaces/index.Pass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>Pass</a><ul><li data-refl="6417" id="index.FivePass"><a href="classes/index.FivePass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FivePass</a><ul><li data-refl="6457" id="index.AdaptiveLuminancePass"><a href="classes/index.AdaptiveLuminancePass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>AdaptiveLuminancePass</a></li><li data-refl="6493" id="index.EyeDomeLightingPass"><a href="classes/index.EyeDomeLightingPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>EyeDomeLightingPass</a></li><li data-refl="6620" id="index.FlowingLight3DPass"><a href="classes/index.FlowingLight3DPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FlowingLight3DPass</a><ul><li data-refl="6536" id="index.FlowingLight2DPass"><a href="classes/index.FlowingLight2DPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FlowingLight2DPass</a></li></ul></li><li data-refl="6710" id="index.GaussianBlurPass"><a href="classes/index.GaussianBlurPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GaussianBlurPass</a></li><li data-refl="6747" id="index.FlowingFireworks3DPass"><a href="classes/index.FlowingFireworks3DPass.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>FlowingFireworks3DPass</a></li></ul></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="3062" id="index.PBMMesh"><a href="classes/index.PBMMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMMesh</a><ul><li data-refl="1243" id="index.BoundingMesh"><a href="classes/index.BoundingMesh.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BoundingMesh</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="1508" id="index.Pose"><a href="interfaces/index.Pose.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>Pose</a><ul><li data-refl="1514" id="index.State"><a href="interfaces/index.State.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>State</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="478" id="index.Subscribe"><a href="classes/index.Subscribe.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Subscribe</a><ul><li data-refl="273" id="index.NetworkSubscribe"><a href="classes/index.NetworkSubscribe.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>NetworkSubscribe</a></li><li data-refl="1573" id="index.Five"><a href="classes/index.Five.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Five</a></li><li data-refl="3382" id="index.PBMUpdateable"><a href="classes/index.PBMUpdateable.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMUpdateable</a><ul><li data-refl="3470" id="index.PBMPanoFilter"><a href="classes/index.PBMPanoFilter.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PBMPanoFilter</a></li></ul></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="4869" id="index.Tile3D"><a href="classes/index.Tile3D.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Tile3D</a><ul><li data-refl="5079" id="index.ViewLayer"><a href="interfaces/index.ViewLayer.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ViewLayer</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="5968" id="index.WorkCubeImage"><a href="interfaces/index.WorkCubeImage.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkCubeImage</a><ul><li data-refl="5983" id="index.WorkImage"><a href="interfaces/index.WorkImage.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkImage</a></li><li data-refl="6077" id="index.WorkTile"><a href="interfaces/index.WorkTile.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkTile</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="6033" id="index.WorkObserver"><a href="interfaces/index.WorkObserver.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WorkObserver</a><ul><li data-refl="6320" id="index.WorkResolvedObserver"><a href="classes/index.WorkResolvedObserver.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>WorkResolvedObserver</a></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
package/docs/index.html CHANGED
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>如视 Five SDK</h1></div><div class="tsd-panel tsd-typography"><h1 id="five-sdk-documentation" class="tsd-anchor-link">Five SDK Documentation<a href="#five-sdk-documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1>
2
- <p><a href="https://www.npmjs.com/package/@realsee/five"><img src="https://img.shields.io/npm/v/@realsee/five.svg?style=flat-square&amp;logo=npm&amp;label=npm%20install%20@realsee/five" alt="npm version"></a></p>
2
+ <p><a href="https://www.npmjs.com/package/@realsee/five-webgpu"><img src="https://img.shields.io/npm/v/@realsee/five-webgpu.svg?style=flat-square&amp;logo=npm&amp;label=npm%20install%20@realsee/five-webgpu" alt="npm version"></a></p>
3
3
  <ul>
4
4
  <li><strong>Summary</strong>: Five SDK 的文档索引与阅读指南,旨在帮助开发者与 AI 助手快速定位所需信息。</li>
5
5
  <li><strong>Audience</strong>: 开发者、AI 辅助编程工具。</li>
@@ -42,7 +42,7 @@ Before writing or updating any documentation, YOU MUST READ <a href="documents/a
42
42
  <li><strong>Coding Standards (代码规范)</strong>:
43
43
  <ul>
44
44
  <li>优先使用 TypeScript 类型提示。</li>
45
- <li>确保从 <code>@realsee/five</code> 导入核心类与类型 (e.g., <code>import { Five, Mode, Work, State } from &quot;@realsee/five&quot;</code>).</li>
45
+ <li>确保从 <code>@realsee/five-webgpu</code> 导入核心类与类型 (e.g., <code>import { Five, Mode, Work, State } from &quot;@realsee/five-webgpu&quot;</code>).</li>
46
46
  </ul>
47
47
  </li>
48
48
  </ul>