@realsee/five 6.8.0-alpha.6 → 6.8.0-alpha.8

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 (191) hide show
  1. package/ai_guides/README.md +2 -1
  2. package/ai_guides/api.md +10 -0
  3. package/ai_guides/features/load-external-model.md +18 -0
  4. package/ai_guides/features/pano-uv.md +131 -0
  5. package/ai_guides/features/work.md +17 -0
  6. package/ai_guides/release_notes/6.8.md +24 -5
  7. package/docs/assets/hierarchy.js +1 -1
  8. package/docs/assets/navigation.js +1 -1
  9. package/docs/assets/search.js +1 -1
  10. package/docs/classes/five.AdaptiveLuminancePass.html +1 -1
  11. package/docs/classes/five.BoundingMesh.html +1 -1
  12. package/docs/classes/five.Camera.html +1 -1
  13. package/docs/classes/five.EyeDomeLightingPass.html +1 -1
  14. package/docs/classes/five.Five.html +1 -1
  15. package/docs/classes/five.FivePass.html +1 -1
  16. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  17. package/docs/classes/five.Model.html +1 -1
  18. package/docs/classes/five.ModelScene.html +1 -1
  19. package/docs/classes/five.NetworkSubscribe.html +1 -1
  20. package/docs/classes/five.PBMContainer.html +1 -1
  21. package/docs/classes/five.PBMGSObject.html +1 -1
  22. package/docs/classes/five.PBMGroup.html +1 -1
  23. package/docs/classes/five.PBMMesh.html +1 -1
  24. package/docs/classes/five.PBMMeshMaterial.html +15 -6
  25. package/docs/classes/five.PBMPointCloud.html +1 -1
  26. package/docs/classes/five.PBMPointCloudMaterial.html +1 -1
  27. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  28. package/docs/classes/five.PanoCircleMesh.html +1 -1
  29. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  30. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  31. package/docs/classes/five.Parameter.html +1 -1
  32. package/docs/classes/five.Scene.html +1 -1
  33. package/docs/classes/five.Subscribe.html +1 -1
  34. package/docs/classes/five.Tile3D.html +1 -1
  35. package/docs/classes/five.TileNode.html +1 -1
  36. package/docs/classes/five.TrajectoryNode.html +1 -1
  37. package/docs/classes/five.Work.html +16 -16
  38. package/docs/classes/five.WorkResolvedObserver.html +27 -2
  39. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  40. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  41. package/docs/classes/gltf-loader.GLTFLoader.html +1 -1
  42. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  43. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  44. package/docs/classes/line.Line.html +1 -1
  45. package/docs/classes/line.LineGeometry.html +1 -1
  46. package/docs/classes/line.LineMaterial.html +1 -1
  47. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  48. package/docs/classes/line.THREE_Line2.html +1 -1
  49. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  50. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  51. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  52. package/docs/classes/sticker.Sticker.html +1 -1
  53. package/docs/classes/vfx.Airflow.html +1 -1
  54. package/docs/classes/vfx.Flame.html +1 -1
  55. package/docs/classes/vfx.Particle.html +1 -1
  56. package/docs/classes/vfx.ParticleGPU.html +1 -1
  57. package/docs/classes/vfx.SpotLight.html +1 -1
  58. package/docs/documents/README.html +2 -1
  59. package/docs/documents/api.html +1 -1
  60. package/docs/documents/{features_coordnate-system.html → features_coordinate-system.html} +1 -1
  61. package/docs/documents/features_load-external-model.html +21 -1
  62. package/docs/documents/features_pano-uv.html +82 -0
  63. package/docs/documents/features_work.html +1 -1
  64. package/docs/documents/release_notes_6.8.html +29 -6
  65. package/docs/functions/five.loadGltf.html +1 -1
  66. package/docs/functions/five.parseWork.html +1 -1
  67. package/docs/functions/vue.useFiveWorks.html +2 -2
  68. package/docs/hierarchy.html +1 -1
  69. package/docs/index.html +2 -1
  70. package/docs/interfaces/five.AddableObject.html +1 -1
  71. package/docs/interfaces/five.AjaxOptions.html +1 -1
  72. package/docs/interfaces/five.BaseEvent.html +1 -1
  73. package/docs/interfaces/five.EventCallback.html +1 -1
  74. package/docs/interfaces/five.GestureEvent.html +1 -1
  75. package/docs/interfaces/five.ImageOptions.html +1 -1
  76. package/docs/interfaces/five.IntersectEvent.html +1 -1
  77. package/docs/interfaces/five.IntersectMesh.html +1 -1
  78. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  79. package/docs/interfaces/five.Intersection.html +1 -1
  80. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +6 -6
  81. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  82. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  83. package/docs/interfaces/five.ModelEvent.html +1 -1
  84. package/docs/interfaces/five.ModelSceneEvent.html +1 -1
  85. package/docs/interfaces/five.ModelTileEvent.html +1 -1
  86. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  87. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  88. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  89. package/docs/interfaces/five.NetworkOptions.html +1 -1
  90. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  91. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  92. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  93. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  94. package/docs/interfaces/five.ObjectEvent.html +1 -1
  95. package/docs/interfaces/five.PBMMaterial.html +1 -1
  96. package/docs/interfaces/five.PBMMeshMaterialParameters.html +1 -1
  97. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
  98. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  99. package/docs/interfaces/five.PanoEvent.html +1 -1
  100. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  101. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  102. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  103. package/docs/interfaces/five.ParameterMaterialValue.html +1 -1
  104. package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
  105. package/docs/interfaces/five.ParameterValue.html +1 -1
  106. package/docs/interfaces/five.Pose.html +1 -1
  107. package/docs/interfaces/five.RenderEvent.html +1 -1
  108. package/docs/interfaces/five.ResolvedParameterValue.html +1 -1
  109. package/docs/interfaces/five.State.html +1 -1
  110. package/docs/interfaces/five.StateEvent.html +1 -1
  111. package/docs/interfaces/five.TextureOptions.html +1 -1
  112. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  113. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  114. package/docs/interfaces/five.ViewLayer.html +1 -1
  115. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  116. package/docs/interfaces/five.WorkImage.html +1 -1
  117. package/docs/interfaces/five.WorkModel.html +8 -8
  118. package/docs/interfaces/five.WorkModelLayer.html +6 -6
  119. package/docs/interfaces/five.WorkObserver.html +27 -2
  120. package/docs/interfaces/five.WorkTile.html +1 -1
  121. package/docs/interfaces/five.WorksEvent.html +1 -1
  122. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  123. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  124. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  125. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  126. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  127. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  128. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  129. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +1 -1
  130. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
  131. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
  132. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  133. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  134. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
  135. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  136. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  137. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  138. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  139. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  140. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  141. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  142. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  143. package/docs/interfaces/plugins.TrajectoryController.html +1 -1
  144. package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
  145. package/docs/modules.html +1 -1
  146. package/docs/types/five.ParseOptions.html +6 -6
  147. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  148. package/five/index.js +55 -55
  149. package/five/index.mjs +3768 -3279
  150. package/five/model/loaders/glTF-helpers/extensions/KHR_animation_pointer.d.ts +6 -0
  151. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_clearcoat.d.ts +6 -0
  152. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_emissive_strength.d.ts +6 -0
  153. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_sheen.d.ts +6 -0
  154. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_transmission.d.ts +6 -0
  155. package/five/model/loaders/glTF-helpers/extensions/KHR_node_visibility.d.ts +6 -0
  156. package/five/model/loaders/glTF-helpers/glTF.d.ts +20 -1
  157. package/five/model/loaders/glTF-helpers/index.d.ts +12 -0
  158. package/five/model/loaders/gltf.d.ts +1 -0
  159. package/five/model/materials/pbmMeshMaterial.d.ts +9 -0
  160. package/five/work/work.d.ts +35 -2
  161. package/five/work/workObserverUtils.d.ts +36 -0
  162. package/gltf-loader/index.js +3 -3
  163. package/gltf-loader/index.mjs +3 -3
  164. package/line/index.js +3 -3
  165. package/line/index.mjs +3 -3
  166. package/llms.txt +2 -1
  167. package/package.json +1 -1
  168. package/plugins/index.js +2 -2
  169. package/plugins/index.mjs +2 -2
  170. package/react/index.js +2 -2
  171. package/react/index.mjs +2 -2
  172. package/shader-lib/index.js +2 -2
  173. package/shader-lib/index.mjs +2 -2
  174. package/sticker/index.js +3 -3
  175. package/sticker/index.mjs +3 -3
  176. package/umd/five-gltf-loader.js +3 -3
  177. package/umd/five-line.js +3 -3
  178. package/umd/five-plugins.js +2 -2
  179. package/umd/five-react.js +2 -2
  180. package/umd/five-shader-lib.js +2 -2
  181. package/umd/five-sticker.js +3 -3
  182. package/umd/five-vfx.js +2 -2
  183. package/umd/five-vue.js +2 -2
  184. package/umd/five.js +55 -55
  185. package/vfx/index.js +2 -2
  186. package/vfx/index.mjs +2 -2
  187. package/vue/index.js +2 -2
  188. package/vue/index.mjs +2 -2
  189. package/work-downloader/index.js +2 -2
  190. package/work-downloader/index.mjs +2 -2
  191. /package/ai_guides/features/{coordnate-system.md → coordinate-system.md} +0 -0
@@ -1,4 +1,4 @@
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>Airflow | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">Airflow</a></li></ul><h1>Class Airflow</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7426"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Group</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">Airflow</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/airflow/airflow.ts:8</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
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>Airflow | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">Airflow</a></li></ul><h1>Class Airflow</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7494"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Group</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">Airflow</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/airflow/airflow.ts:8</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#needsrender" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>needs<wbr/>Render</span></a>
3
3
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="#color" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>color</span></a>
4
4
  <a href="#expand" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>expand</span></a>
@@ -1,4 +1,4 @@
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>Flame | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">Flame</a></li></ul><h1>Class Flame</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7367"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Group</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">Flame</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/frame/frame.ts:13</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
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>Flame | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">Flame</a></li></ul><h1>Class Flame</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7435"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Group</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">Flame</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/frame/frame.ts:13</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#needsrender" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>needs<wbr/>Render</span></a>
3
3
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="#color1" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>color1</span></a>
4
4
  <a href="#color2" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>color2</span></a>
@@ -1,4 +1,4 @@
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>Particle | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">Particle</a></li></ul><h1>Class Particle</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7452"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Points</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">THREE.BufferGeometry</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">THREE.ShaderMaterial</span><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">Particle</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/particle/particle.ts:112</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
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>Particle | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">Particle</a></li></ul><h1>Class Particle</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7520"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Points</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">THREE.BufferGeometry</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">THREE.ShaderMaterial</span><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">Particle</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/particle/particle.ts:112</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#accelerationbase" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>acceleration<wbr/>Base</span></a>
3
3
  <a href="#accelerationspread" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>acceleration<wbr/>Spread</span></a>
4
4
  <a href="#angleaccelerationbase" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>angle<wbr/>Acceleration<wbr/>Base</span></a>
@@ -1,4 +1,4 @@
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>ParticleGPU | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">ParticleGPU</a></li></ul><h1>Class ParticleGPU</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7545"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Points</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">THREE.BufferGeometry</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">THREE.ShaderMaterial</span><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">ParticleGPU</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/particle-gpu/particle.ts:81</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
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>ParticleGPU | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">ParticleGPU</a></li></ul><h1>Class ParticleGPU</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7613"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Points</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">THREE.BufferGeometry</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">THREE.ShaderMaterial</span><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">ParticleGPU</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/particle-gpu/particle.ts:81</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#needsrender" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>needs<wbr/>Render</span></a>
3
3
  <a href="#particledeathage" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>particle<wbr/>Death<wbr/>Age</span></a>
4
4
  <a href="#particlespersecond" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>particles<wbr/>Per<wbr/>Second</span></a>
@@ -1,4 +1,4 @@
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>SpotLight | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">SpotLight</a></li></ul><h1>Class SpotLight</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7402"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Group</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">SpotLight</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/spotLight/spotLight.ts:5</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
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>SpotLight | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/vfx.html">vfx</a></li><li><a href="" aria-current="page">SpotLight</a></li></ul><h1>Class SpotLight</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="7470"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Group</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">SpotLight</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in lib/vfx/spotLight/spotLight.ts:5</li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#needsrender" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>needs<wbr/>Render</span></a>
3
3
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="#anglepower" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>angle<wbr/>Power</span></a>
4
4
  <a href="#attenuation" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>attenuation</span></a>
@@ -66,9 +66,10 @@ Before writing or updating any documentation, YOU MUST READ <a href="ai-doc-guid
66
66
  <ul>
67
67
  <li><a href="features_five.html">Five</a>: 核心类 <code>Five</code>,管理渲染循环与全局状态。</li>
68
68
  <li><a href="features_work.html">Work</a>: 数据载体,描述三维空间的数据结构 (VR 看房数据)。</li>
69
+ <li><a href="features_pano-uv.html">Panorama UV</a>: 全景图 UV 与空间方向转换工具。</li>
69
70
  <li><a href="features_mode.html">Mode</a>: 五种核心浏览模式 (Panorama, Floorplan, Topview, Model, Map)。</li>
70
71
  <li><a href="features_state.html">State</a>: 状态管理 (Pose, Mode, PanoIndex),用于复原场景。</li>
71
- <li><a href="features_coordnate-system.html">Coordinate System</a>: 坐标系定义 (右手坐标系, Y轴向上)。</li>
72
+ <li><a href="features_coordinate-system.html">Coordinate System</a>: 坐标系定义 (右手坐标系, Y轴向上)。</li>
72
73
  </ul>
73
74
  <h3 id="3-data-resource-数据与资源" class="tsd-anchor-link">3. Data &amp; Resource (数据与资源)<a href="#3-data-resource-数据与资源" 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>
74
75
  <p>数据加载与资源管理配置。</p>
@@ -178,7 +178,7 @@
178
178
 
179
179
  <h3 id="panorama-point" class="tsd-anchor-link"><code>WorkObserver</code> (Panorama Point)<a href="#panorama-point" 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>
180
180
  <p>Represents a single panorama spot.</p>
181
- <pre><code class="typescript"><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-6">index</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// Index in the list</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><span class="hl-8">// Floor number</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><span class="hl-8">// Position in 3D space</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><span class="hl-8">// Rotation relative to model</span><br/><span class="hl-1"> </span><span class="hl-6">accessibleNodes</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">[]; </span><span class="hl-8">// Indices of reachable points</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><span class="hl-8">// Panorama image URLs</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><span class="hl-8">// Whether the point is enabled</span><br/><span class="hl-1">}</span>
181
+ <pre><code class="typescript"><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-6">index</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// Index in the list</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><span class="hl-8">// Floor number</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><span class="hl-8">// Position in 3D space</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><span class="hl-8">// Rotation relative to model</span><br/><span class="hl-1"> </span><span class="hl-6">accessibleNodes</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">[]; </span><span class="hl-8">// Indices of reachable points</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><span class="hl-8">// Panorama image URLs</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><span class="hl-8">// Whether the point is enabled</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// Coordinate Methods</span><br/><span class="hl-1"> </span><span class="hl-5">getWorldPosition</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-5">getWorldStandingPosition</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 Conversion Methods</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-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-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-7">CubeFace</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-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>
182
182
  </code><button type="button">Copy</button></pre>
183
183
 
184
184
  <h2 id="events" class="tsd-anchor-link">Events<a href="#events" 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,4 +1,4 @@
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>features/coordnate-system | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/coordnate-system</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="坐标系-coordinate-system" class="tsd-anchor-link">坐标系 (Coordinate System)<a href="#坐标系-coordinate-system" 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>
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>features/coordinate-system | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/coordinate-system</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="坐标系-coordinate-system" class="tsd-anchor-link">坐标系 (Coordinate System)<a href="#坐标系-coordinate-system" 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
2
  <ul>
3
3
  <li><strong>Summary</strong>: 详解 Five 中的坐标系定义(Local, ENU, ECEF)及其相互转换关系。</li>
4
4
  <li><strong>Concepts</strong>: Local (Y-up), ENU (Z-up), ECEF, ENU84, RootMeta, Observers.</li>
@@ -32,7 +32,27 @@
32
32
  <p>所有加载器支持传入自定义 <code>fetcher</code>。这在需要鉴权、自定义 Header 或处理特定 CDN 逻辑时非常有用。如果不传,默认使用内部的 <code>internalFetcher</code>。</p>
33
33
  <h2 id="configuration" class="tsd-anchor-link">Configuration<a href="#configuration" 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>
34
34
  <h3 id="loadgltf" class="tsd-anchor-link">loadGltf<a href="#loadgltf" 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>
35
- <p>加载 <code>.gltf</code> 或 <code>.glb</code> 文件。支持 Draco 压缩。</p>
35
+ <p>加载 <code>.gltf</code> 或 <code>.glb</code> 文件。支持 Draco 压缩。
36
+ 支持扩展:</p>
37
+ <ul>
38
+ <li><code>KHR_binary_glTF</code></li>
39
+ <li><code>KHR_draco_mesh_compression</code></li>
40
+ <li><code>KHR_texture_basisu</code></li>
41
+ <li><code>KHR_texture_transform</code></li>
42
+ <li><code>KHR_mesh_quantization</code></li>
43
+ <li><code>KHR_materials_unlit</code></li>
44
+ <li><code>KHR_node_visibility</code></li>
45
+ <li><code>KHR_animation_pointer</code></li>
46
+ <li><code>EXT_meshopt_compression</code></li>
47
+ <li><code>KHR_materials_clearcoat</code></li>
48
+ <li><code>KHR_materials_sheen</code></li>
49
+ <li><code>KHR_materials_transmission</code></li>
50
+ <li><code>KHR_materials_emissive_strength</code></li>
51
+ <li><code>EXT_texture_webp</code></li>
52
+ <li><code>CESIUM_RTC</code></li>
53
+ <li><code>REALSEE_materials_lightmap</code></li>
54
+ <li><code>KHR_gaussian_splatting_compression_spz</code></li>
55
+ </ul>
36
56
  <table>
37
57
  <thead>
38
58
  <tr>
@@ -0,0 +1,82 @@
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>features/pano-uv | 如视 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"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/pano-uv</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="全景图-uv-与方向转换-panorama-uv-conversion" class="tsd-anchor-link">全景图 UV 与方向转换 (Panorama UV Conversion)<a href="#全景图-uv-与方向转换-panorama-uv-conversion" 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
+ <ul>
3
+ <li><strong>Summary</strong>: 提供了一组工具方法,用于在<strong>全景图 UV 坐标</strong> (Equirectangular UV / Cubemap UV) 与<strong>三维空间方向向量</strong> (Vector3) 之间进行转换。</li>
4
+ <li><strong>Schema</strong>: 依赖 <code>WorkObserver</code> 实例,提供四个核心转换方法。</li>
5
+ <li><strong>Concepts</strong>: Equirectangular Projection, Cubemap Projection, UV Origin, Coordinate Systems.</li>
6
+ <li><strong>Configuration</strong>: <code>uvOrigin</code> (UV 原点设置).</li>
7
+ <li><strong>Examples</strong>: 向量转全景 UV、UV 转向量、Cubemap 转换。</li>
8
+ </ul>
9
+ <h2 id="schema" class="tsd-anchor-link">Schema<a href="#schema" 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
+ <blockquote>
11
+ <p><strong>Definition</strong>: <a href="../../five/work/work.d.ts">WorkObserver</a></p>
12
+ </blockquote>
13
+ <p>这些方法挂载在 <code>WorkObserver</code> 实例上,依赖当前观察点 (Observer) 的位姿信息 (Position &amp; Quaternion) 以及 <code>work.transform</code> 进行计算。</p>
14
+ <pre><code class="typescript"><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">/**</span><br/><span class="hl-8"> * 将方向向量转化为全景图 uv</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">vector</span><span class="hl-8"> - 全局方向向量 (World Space)</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</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/><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 将全景图 uv 转化为方向向量</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uv</span><span class="hl-8"> - 全景图 UV 坐标 [0, 1]</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</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/><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 将方向向量转化为六视图 uv</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">vector</span><span class="hl-8"> - 全局方向向量 (World Space)</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</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/><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 将六视图 uv 转化为方向向量</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">cubeFace</span><span class="hl-8"> - 立方体面 (&#39;up&#39; | &#39;down&#39; | &#39;left&#39; | &#39;right&#39; | &#39;front&#39; | &#39;back&#39;)</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uv</span><span class="hl-8"> - 该面上的 UV 坐标 [0, 1]</span><br/><span class="hl-8"> * </span><span class="hl-3">@param</span><span class="hl-8"> </span><span class="hl-6">uvOrigin</span><span class="hl-8"> - UV 原点位置,默认为 &#39;top-left&#39;</span><br/><span class="hl-8"> */</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-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>
15
+ </code><button type="button">Copy</button></pre>
16
+
17
+ <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>
18
+ <h3 id="1-坐标系转换-coordinate-transformation" class="tsd-anchor-link">1. 坐标系转换 (Coordinate Transformation)<a href="#1-坐标系转换-coordinate-transformation" 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>
19
+ <p>转换过程会自动处理以下坐标空间的变换:</p>
20
+ <ol>
21
+ <li><strong>World Space (世界坐标系)</strong>: <code>vector</code> 参数所处的坐标系。</li>
22
+ <li><strong>Work Space (Work 坐标系)</strong>: 考虑 <code>work.transform</code> 带来的整体旋转。</li>
23
+ <li><strong>Observer Space (观察者坐标系)</strong>: 考虑 <code>observer.quaternion</code> 带来的观察点旋转。</li>
24
+ <li><strong>Panorama Space (全景图空间)</strong>: 最终映射到 2D 图片上的 UV 坐标。</li>
25
+ </ol>
26
+ <h3 id="2-投影方式-projection-types" class="tsd-anchor-link">2. 投影方式 (Projection Types)<a href="#2-投影方式-projection-types" 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>
27
+ <ul>
28
+ <li><strong>Equirectangular (等距柱状投影)</strong>: 将球体展开为 2:1 的矩形图片。常用于全景图预览。</li>
29
+ <li><strong>Cubemap (立方体贴图)</strong>: 将球体投影到立方体的六个面上。常用于高清全景浏览。</li>
30
+ </ul>
31
+ <h3 id="3-uv-原点-uv-origin" class="tsd-anchor-link">3. UV 原点 (UV Origin)<a href="#3-uv-原点-uv-origin" 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>
32
+ <ul>
33
+ <li><strong>top-left (默认)</strong>: 原点 <code>(0, 0)</code> 在图片<strong>左上角</strong>。U 轴向右,V 轴向下。符合大多数 Web 图片处理习惯 (Canvas, DOM)。</li>
34
+ <li><strong>bottom-left</strong>: 原点 <code>(0, 0)</code> 在图片<strong>左下角</strong>。U 轴向右,V 轴向上。符合 WebGL / OpenGL 纹理坐标习惯。</li>
35
+ </ul>
36
+ <h2 id="configuration" class="tsd-anchor-link">Configuration<a href="#configuration" 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>
37
+ <p>所有方法均包含可选参数 <code>uvOrigin</code>。</p>
38
+ <h3 id="common-configuration" class="tsd-anchor-link">Common Configuration<a href="#common-configuration" 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>
39
+ <table>
40
+ <thead>
41
+ <tr>
42
+ <th style="text-align:left">Parameter</th>
43
+ <th style="text-align:left">Type</th>
44
+ <th style="text-align:left">Default</th>
45
+ <th style="text-align:left">Description</th>
46
+ </tr>
47
+ </thead>
48
+ <tbody>
49
+ <tr>
50
+ <td style="text-align:left"><code>uvOrigin</code></td>
51
+ <td style="text-align:left"><code>'top-left' | 'bottom-left'</code></td>
52
+ <td style="text-align:left"><code>'top-left'</code></td>
53
+ <td style="text-align:left">指定 UV 坐标系的原点位置。</td>
54
+ </tr>
55
+ </tbody>
56
+ </table>
57
+ <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>
58
+ <h3 id="1-点击全景图获取空间方向-click-to-vector" class="tsd-anchor-link">1. 点击全景图获取空间方向 (Click to Vector)<a href="#1-点击全景图获取空间方向-click-to-vector" 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>
59
+ <p>假设你有一个全景图的点击事件,获取到了点击位置的 UV:</p>
60
+ <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">observer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">work</span><span class="hl-1">.</span><span class="hl-6">observers</span><span class="hl-1">[</span><span class="hl-11">0</span><span class="hl-1">];</span><br/><span class="hl-8">// 假设这是用户点击全景图后归一化得到的 UV (0~1)</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">clickUv</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector2</span><span class="hl-1">(</span><span class="hl-11">0.5</span><span class="hl-1">, </span><span class="hl-11">0.5</span><span class="hl-1">);</span><br/><br/><span class="hl-8">// 转换为世界空间的方向向量</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">direction</span><span class="hl-1"> = </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-5">equirectangularUvToVector</span><span class="hl-1">(</span><span class="hl-6">clickUv</span><span class="hl-1">);</span><br/><br/><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">&#39;点击方向:&#39;</span><span class="hl-1">, </span><span class="hl-6">direction</span><span class="hl-1">);</span>
61
+ </code><button type="button">Copy</button></pre>
62
+
63
+ <h3 id="2-将空间点映射到全景图上-world-point-to-uv" class="tsd-anchor-link">2. 将空间点映射到全景图上 (World Point to UV)<a href="#2-将空间点映射到全景图上-world-point-to-uv" 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>
64
+ <p>假设场景中有一个 3D 物体,你想知道它在当前全景图上的位置(例如打标签):</p>
65
+ <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">observer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">work</span><span class="hl-1">.</span><span class="hl-6">observers</span><span class="hl-1">[</span><span class="hl-11">0</span><span class="hl-1">];</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">objectPosition</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">10</span><span class="hl-1">, </span><span class="hl-11">2</span><span class="hl-1">, </span><span class="hl-11">5</span><span class="hl-1">);</span><br/><br/><span class="hl-8">// 计算物体相对于观察点的方向向量</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">direction</span><span class="hl-1"> = </span><span class="hl-6">objectPosition</span><span class="hl-1">.</span><span class="hl-5">clone</span><span class="hl-1">().</span><span class="hl-5">sub</span><span class="hl-1">(</span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-6">position</span><span class="hl-1">).</span><span class="hl-5">normalize</span><span class="hl-1">();</span><br/><br/><span class="hl-8">// 获取全景图 UV</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">uv</span><span class="hl-1"> = </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-5">vectorToEquirectangularUv</span><span class="hl-1">(</span><span class="hl-6">direction</span><span class="hl-1">);</span><br/><br/><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">`物体在全景图上的位置: u=</span><span class="hl-3">${</span><span class="hl-6">uv</span><span class="hl-12">.</span><span class="hl-6">x</span><span class="hl-3">}</span><span class="hl-9">, v=</span><span class="hl-3">${</span><span class="hl-6">uv</span><span class="hl-12">.</span><span class="hl-6">y</span><span class="hl-3">}</span><span class="hl-9">`</span><span class="hl-1">);</span>
66
+ </code><button type="button">Copy</button></pre>
67
+
68
+ <h3 id="3-处理-cubemap-坐标-cubemap-conversion" class="tsd-anchor-link">3. 处理 Cubemap 坐标 (Cubemap Conversion)<a href="#3-处理-cubemap-坐标-cubemap-conversion" 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>
69
+ <p>如果你使用的是六面体全景图资源:</p>
70
+ <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">observer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">work</span><span class="hl-1">.</span><span class="hl-6">observers</span><span class="hl-1">[</span><span class="hl-11">0</span><span class="hl-1">];</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">direction</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">, -</span><span class="hl-11">1</span><span class="hl-1">); </span><span class="hl-8">// 正前方</span><br/><br/><span class="hl-8">// 获取对应的面和 UV</span><br/><span class="hl-3">const</span><span class="hl-1"> [</span><span class="hl-4">face</span><span class="hl-1">, </span><span class="hl-4">uv</span><span class="hl-1">] = </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-5">vectorToCubemapUv</span><span class="hl-1">(</span><span class="hl-6">direction</span><span class="hl-1">);</span><br/><br/><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">`正前方对应 Cubemap 的 </span><span class="hl-3">${</span><span class="hl-6">face</span><span class="hl-3">}</span><span class="hl-9"> 面,UV 为`</span><span class="hl-1">, </span><span class="hl-6">uv</span><span class="hl-1">);</span>
71
+ </code><button type="button">Copy</button></pre>
72
+
73
+ <h2 id="related" class="tsd-anchor-link">Related<a href="#related" 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>
74
+ <ul>
75
+ <li><a href="features_work.html">Work</a>: 了解 WorkObserver 的数据结构。</li>
76
+ <li><a href="features_coordinate-system.html">Coordinate System</a>: 了解 Five 的坐标系定义。</li>
77
+ </ul>
78
+ <hr>
79
+ <pre><code class="yaml"><span class="hl-0">tags</span><span class="hl-1">: [</span><span class="hl-2">work</span><span class="hl-1">, </span><span class="hl-2">observer</span><span class="hl-1">, </span><span class="hl-2">uv</span><span class="hl-1">, </span><span class="hl-2">projection</span><span class="hl-1">, </span><span class="hl-2">math</span><span class="hl-1">]</span>
80
+ </code><button type="button">Copy</button></pre>
81
+
82
+ </div></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><details open class="tsd-accordion tsd-page-navigation"><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>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#全景图-uv-与方向转换-panorama-uv-conversion"><span>全景图 <wbr/>UV 与方向转换 (<wbr/>Panorama <wbr/>UV <wbr/>Conversion)</span></a><ul><li><a href="#schema"><span>Schema</span></a></li><li><a href="#concepts"><span>Concepts</span></a></li><li><ul><li><a href="#1-坐标系转换-coordinate-transformation"><span>1. 坐标系转换 (<wbr/>Coordinate <wbr/>Transformation)</span></a></li><li><a href="#2-投影方式-projection-types"><span>2. 投影方式 (<wbr/>Projection <wbr/>Types)</span></a></li><li><a href="#3-uv-原点-uv-origin"><span>3. <wbr/>UV 原点 (<wbr/>UV <wbr/>Origin)</span></a></li></ul></li><li><a href="#configuration"><span>Configuration</span></a></li><li><ul><li><a href="#common-configuration"><span>Common <wbr/>Configuration</span></a></li></ul></li><li><a href="#examples"><span>Examples</span></a></li><li><ul><li><a href="#1-点击全景图获取空间方向-click-to-vector"><span>1. 点击全景图获取空间方向 (<wbr/>Click to <wbr/>Vector)</span></a></li><li><a href="#2-将空间点映射到全景图上-world-point-to-uv"><span>2. 将空间点映射到全景图上 (<wbr/>World <wbr/>Point to <wbr/>UV)</span></a></li><li><a href="#3-处理-cubemap-坐标-cubemap-conversion"><span>3. 处理 <wbr/>Cubemap 坐标 (<wbr/>Cubemap <wbr/>Conversion)</span></a></li></ul></li><li><a href="#related"><span>Related</span></a></li></ul></div></details></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>