@realsee/five 6.7.0-alpha.9 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/docs/assets/hierarchy.js +1 -1
  2. package/docs/assets/navigation.js +1 -1
  3. package/docs/assets/search.js +1 -1
  4. package/docs/classes/five.AdaptiveLuminancePass.html +22 -0
  5. package/docs/classes/five.AnimationFrameLoop.html +4 -4
  6. package/docs/classes/five.BoundingMesh.html +4 -0
  7. package/docs/classes/five.Camera.html +6 -5
  8. package/docs/classes/five.EffectComposer.html +21 -0
  9. package/docs/classes/five.EyeDomeLightingPass.html +21 -0
  10. package/docs/classes/five.Five.html +90 -76
  11. package/docs/classes/five.FivePass.html +18 -0
  12. package/docs/classes/five.FiveRenderer.html +9 -0
  13. package/docs/classes/five.FullScreenQuad.html +6 -0
  14. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  15. package/docs/classes/five.Model.html +32 -31
  16. package/docs/classes/five.ModelScene.html +23 -20
  17. package/docs/classes/five.NetworkSubscribe.html +1 -1
  18. package/docs/classes/five.PBMContainer.html +1 -1
  19. package/docs/classes/five.PBMGroup.html +1 -1
  20. package/docs/classes/five.PBMMesh.html +1 -1
  21. package/docs/classes/five.PBMMeshMaterial.html +6 -7
  22. package/docs/classes/five.PBMPointCloud.html +1 -1
  23. package/docs/classes/five.PBMPointCloudMaterial.html +5 -6
  24. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  25. package/docs/classes/five.PanoCircleMesh.html +3 -3
  26. package/docs/classes/five.PanoCircleMeshCustom.html +4 -4
  27. package/docs/classes/five.PanoCircleMeshSolid.html +5 -5
  28. package/docs/classes/five.Parameter.html +44 -47
  29. package/docs/classes/five.Scene.html +1 -1
  30. package/docs/classes/five.Subscribe.html +1 -1
  31. package/docs/classes/five.TextureLoader.html +2 -2
  32. package/docs/classes/five.Tile3D.html +21 -21
  33. package/docs/classes/five.TileNode.html +4 -3
  34. package/docs/classes/five.Tileset.html +4 -4
  35. package/docs/classes/five.TrajectoryNode.html +1 -1
  36. package/docs/classes/five.Work.html +16 -16
  37. package/docs/classes/five.WorkResolvedObserver.html +20 -21
  38. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  39. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  40. package/docs/classes/gltf-loader.GLTFLoader.html +1 -1
  41. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  42. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  43. package/docs/classes/line.Line.html +1 -1
  44. package/docs/classes/line.LineGeometry.html +1 -1
  45. package/docs/classes/line.LineMaterial.html +1 -1
  46. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  47. package/docs/classes/line.THREE_Line2.html +1 -1
  48. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  49. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  50. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  51. package/docs/classes/sticker.Sticker.html +1 -1
  52. package/docs/classes/vfx.Airflow.html +1 -1
  53. package/docs/classes/vfx.Flame.html +1 -1
  54. package/docs/classes/vfx.Particle.html +1 -1
  55. package/docs/classes/vfx.ParticleGPU.html +1 -1
  56. package/docs/classes/vfx.SpotLight.html +1 -1
  57. package/docs/functions/five.loadAt3d.html +1 -1
  58. package/docs/functions/five.parseWork.html +1 -1
  59. package/docs/functions/five.workToJson.html +1 -1
  60. package/docs/functions/plugins.DynamicPathLinePlugin.html +1 -0
  61. package/docs/functions/react.withFive.html +1 -1
  62. package/docs/functions/vue.useFiveWorks.html +2 -2
  63. package/docs/hierarchy.html +1 -1
  64. package/docs/interfaces/five.AddableObject.html +1 -1
  65. package/docs/interfaces/five.AjaxOptions.html +1 -1
  66. package/docs/interfaces/five.AnimationFrame.html +3 -2
  67. package/docs/interfaces/five.AnimationFrameContext.html +2 -2
  68. package/docs/interfaces/five.BaseEvent.html +1 -1
  69. package/docs/interfaces/five.EventCallback.html +1 -1
  70. package/docs/interfaces/five.FiveInitArgs.html +3 -3
  71. package/docs/interfaces/five.FiveLoadOptions.html +8 -10
  72. package/docs/interfaces/five.GestureEvent.html +1 -1
  73. package/docs/interfaces/five.ImageOptions.html +1 -1
  74. package/docs/interfaces/five.IntersectEvent.html +1 -1
  75. package/docs/interfaces/five.IntersectMesh.html +2 -2
  76. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  77. package/docs/interfaces/five.Intersection.html +1 -1
  78. package/docs/interfaces/five.LoosePanoWork.html +2 -2
  79. package/docs/interfaces/five.LooseWork.html +2 -2
  80. package/docs/interfaces/five.LooseWorkInitial.html +2 -2
  81. package/docs/interfaces/five.LooseWorkModel.html +3 -2
  82. package/docs/interfaces/five.LooseWorkObserver.html +3 -2
  83. package/docs/interfaces/five.LooseWorkPanorama.html +8 -8
  84. package/docs/interfaces/five.LooseWorkVideo.html +2 -2
  85. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +7 -7
  86. package/docs/interfaces/five.ModeChangeEvent.html +2 -2
  87. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +5 -3
  88. package/docs/interfaces/five.ModelEvent.html +2 -2
  89. package/docs/interfaces/five.ModelOptions.html +11 -0
  90. package/docs/interfaces/five.ModelSceneEvent.html +2 -2
  91. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  92. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  93. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  94. package/docs/interfaces/five.NetworkOptions.html +1 -1
  95. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  96. package/docs/interfaces/five.NetworkResourceEvent.html +2 -2
  97. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  98. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  99. package/docs/interfaces/five.ObjectEvent.html +2 -2
  100. package/docs/interfaces/five.PBMMaterial.html +1 -1
  101. package/docs/interfaces/five.PBMMeshMaterialParameters.html +2 -3
  102. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +2 -3
  103. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  104. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +2 -2
  105. package/docs/interfaces/five.PanoEvent.html +1 -1
  106. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  107. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +12 -10
  108. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +5 -3
  109. package/docs/interfaces/five.ParameterMaterialValue.html +29 -31
  110. package/docs/interfaces/five.ParameterTilesetValue.html +15 -16
  111. package/docs/interfaces/five.ParameterValue.html +43 -46
  112. package/docs/interfaces/five.Pass.html +9 -0
  113. package/docs/interfaces/five.Pose.html +1 -1
  114. package/docs/interfaces/five.RenderEvent.html +2 -2
  115. package/docs/interfaces/five.ResolvedParameterValue.html +43 -46
  116. package/docs/interfaces/five.State.html +1 -1
  117. package/docs/interfaces/five.StateEvent.html +1 -1
  118. package/docs/interfaces/five.TextureOptions.html +1 -1
  119. package/docs/interfaces/five.TilesetOptions.html +2 -2
  120. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -3
  121. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +12 -10
  122. package/docs/interfaces/five.ViewLayer.html +21 -21
  123. package/docs/interfaces/five.WorkCubeImage.html +2 -2
  124. package/docs/interfaces/five.WorkImage.html +5 -3
  125. package/docs/interfaces/five.WorkInitial.html +8 -8
  126. package/docs/interfaces/five.WorkModel.html +9 -7
  127. package/docs/interfaces/five.WorkModelJson.html +3 -2
  128. package/docs/interfaces/five.WorkModelLayer.html +7 -2
  129. package/docs/interfaces/five.WorkModelLayerJson.html +2 -2
  130. package/docs/interfaces/five.WorkObserver.html +21 -22
  131. package/docs/interfaces/five.WorkObserverJson.html +4 -2
  132. package/docs/interfaces/five.WorkPanoramaJson.html +2 -2
  133. package/docs/interfaces/five.WorkPanoramasJson.html +2 -2
  134. package/docs/interfaces/five.WorkTile.html +4 -4
  135. package/docs/interfaces/five.WorkVideo.html +4 -4
  136. package/docs/interfaces/five.WorksEvent.html +2 -3
  137. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  138. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  139. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +12 -10
  140. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  141. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  142. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  143. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  144. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +83 -0
  145. package/docs/interfaces/plugins.DynamicPathLinePluginType.Config.html +36 -0
  146. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +26 -0
  147. package/docs/interfaces/plugins.DynamicPathLinePluginType.Params.html +6 -0
  148. package/docs/interfaces/plugins.DynamicPathLinePluginType.PathConfig.html +28 -0
  149. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +10 -0
  150. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  151. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  152. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
  153. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  154. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  155. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  156. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  157. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  158. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  159. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  160. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  161. package/docs/interfaces/plugins.TrajectoryController.html +1 -1
  162. package/docs/interfaces/react.FiveInjectionTypes.html +4 -4
  163. package/docs/modules/five.html +1 -1
  164. package/docs/modules/plugins.DynamicPathLinePluginType.html +1 -0
  165. package/docs/modules/plugins.html +1 -1
  166. package/docs/types/five.AnimationFrameLoopType.html +1 -1
  167. package/docs/types/five.Models.html +4 -4
  168. package/docs/types/five.ParseOptions.html +6 -6
  169. package/docs/types/five.PostProcessingType.html +1 -1
  170. package/docs/types/five.RequestAnimationFrameArgs.html +1 -0
  171. package/docs/types/five.TilesetFrameState.html +2 -3
  172. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  173. package/docs/types/plugins.DynamicPathLinePluginType.PluginData.html +3 -0
  174. package/docs/types/plugins.DynamicPathLinePluginType.ServerData.html +3 -0
  175. package/docs/types/vue.FiveProviderComponent.html +1 -1
  176. package/five/index.d.ts +311 -85
  177. package/five/index.js +299 -198
  178. package/five/index.mjs +7306 -6940
  179. package/gltf-loader/index.js +3 -3
  180. package/gltf-loader/index.mjs +146 -146
  181. package/line/index.js +3 -3
  182. package/line/index.mjs +10 -10
  183. package/package.json +1 -1
  184. package/plugins/index.d.ts +314 -0
  185. package/plugins/index.js +296 -15
  186. package/plugins/index.mjs +2615 -1503
  187. package/react/index.d.ts +1 -1
  188. package/react/index.js +2 -2
  189. package/react/index.mjs +2 -2
  190. package/shader-lib/index.d.ts +24 -1
  191. package/shader-lib/index.js +22 -13
  192. package/shader-lib/index.mjs +408 -171
  193. package/sticker/index.js +3 -3
  194. package/sticker/index.mjs +7 -7
  195. package/umd/five-gltf-loader.js +3 -3
  196. package/umd/five-line.js +3 -3
  197. package/umd/five-plugins.js +296 -15
  198. package/umd/five-react.js +2 -2
  199. package/umd/five-shader-lib.js +22 -13
  200. package/umd/five-sticker.js +3 -3
  201. package/umd/five-vfx.js +2 -2
  202. package/umd/five-vue.js +2 -2
  203. package/umd/five.js +299 -198
  204. package/vfx/index.js +2 -2
  205. package/vfx/index.mjs +2 -2
  206. package/vue/index.d.ts +1 -1
  207. package/vue/index.js +2 -2
  208. package/vue/index.mjs +2 -2
  209. package/work-downloader/index.js +3 -3
  210. package/work-downloader/index.mjs +13 -11
  211. package/docs/interfaces/five.ModelLike.html +0 -3
  212. package/docs/types/five.Tile3dOptions.html +0 -1
package/line/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 10/23/2025
5
- * Version: 6.7.0-alpha.9
4
+ * Generated: 12/29/2025
5
+ * Version: 6.7.0
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -451,4 +451,4 @@
451
451
  #include <premultiplied_alpha_fragment>
452
452
 
453
453
  }
454
- `},g=(function(a){y(r,a);function r(t){var n=a.call(this,{uniforms:o.UniformsUtils.clone(B.uniforms),vertexShader:B.vertexShader,fragmentShader:B.fragmentShader,clipping:!0})||this;return n.type="LineMaterial",n.dashed=!1,Object.defineProperties(n,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}}),n.setValues(t),n}return r})(o.ShaderMaterial);Object.assign(g.prototype,{isLineMaterial:!0});var M=(function(a){y(r,a);function r(t,n){var e=a.call(this)||this;return e.type="LineSegments2",e.geometry=t!==void 0?t:new A,e.material=n!==void 0?n:new g({color:Math.random()*16777215}),e}return r.prototype.computeLineDistances=function(){for(var t=this.geometry,n=t.attributes.instanceStart,e=t.attributes.instanceEnd,i=new Float32Array(2*n.count),s=new o.Vector3,c=new o.Vector3,p=0,u=0,S=n.count;p<S;p++,u+=2)s.fromBufferAttribute(n,p),c.fromBufferAttribute(e,p),i[u]=u===0?0:i[u-1],i[u+1]=i[u]+s.distanceTo(c);var h=new o.InstancedInterleavedBuffer(i,2,1);return t.setAttribute("instanceDistanceStart",new o.InterleavedBufferAttribute(h,1,0)),t.setAttribute("instanceDistanceEnd",new o.InterleavedBufferAttribute(h,1,1)),this},r.prototype.raycast=function(t,n){t.camera===null&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var e=t.ray,i=t.camera,s=i.projectionMatrix,c=this.geometry,p=this.material,u=p.resolution,S=p.linewidth,h=c.attributes.instanceStart,U=c.attributes.instanceEnd,l=new o.Vector4,f=new o.Vector4,v=new o.Vector4,b=new o.Vector3,w=new o.Matrix4,d=new o.Line3,z=new o.Vector3;e.at(1,v),v.w=1,v.applyMatrix4(i.matrixWorldInverse),v.applyMatrix4(s),v.multiplyScalar(1/v.w),v.x*=u.x/2,v.y*=u.y/2,v.z=0,b.copy(v);var x=this.matrixWorld;w.multiplyMatrices(i.matrixWorldInverse,x);for(var m=0,N=h.count;m<N;m++){l.fromBufferAttribute(h,m),f.fromBufferAttribute(U,m),l.w=1,f.w=1,l.applyMatrix4(w),f.applyMatrix4(w),l.applyMatrix4(s),f.applyMatrix4(s),l.multiplyScalar(1/l.w),f.multiplyScalar(1/f.w);var j=l.z<-1&&f.z<-1,G=l.z>1&&f.z>1;if(!(j||G)){l.x*=u.x/2,l.y*=u.y/2,f.x*=u.x/2,f.y*=u.y/2,d.start.copy(l),d.start.z=0,d.end.copy(f),d.end.z=0;var D=d.closestPointToPointParameter(b,!0);d.at(D,z);var O=o.MathUtils.lerp(l.z,f.z,D),W=O>=-1&&O<=1,T=b.distanceTo(z)<S*.5;if(W&&T){d.start.fromBufferAttribute(h,m),d.end.fromBufferAttribute(U,m),d.start.applyMatrix4(x),d.end.applyMatrix4(x);var V=new o.Vector3,E=new o.Vector3;e.distanceSqToSegment(d.start,d.end,E,V),n.push({point:E,pointOnLine:V,distance:e.origin.distanceTo(E),object:this,faceIndex:m})}}}},r})(o.Mesh);Object.assign(M.prototype,{isLineSegments2:!0});var C=(function(a){y(r,a);function r(t,n){var e=a.call(this,t,n)||this;return e.type="Line2",e}return r})(M);Object.assign(C.prototype,{isLine2:!0});var P=(function(a){y(r,a);function r(){var t=a.call(this)||this;return t.type="LineGeometry",t}return r.prototype.setPositions=function(t){for(var n=t.length-3,e=new Float32Array(2*n),i=0;i<n;i+=3)e[2*i]=t[i],e[2*i+1]=t[i+1],e[2*i+2]=t[i+2],e[2*i+3]=t[i+3],e[2*i+4]=t[i+4],e[2*i+5]=t[i+5];return a.prototype.setPositions.call(this,e),this},r.prototype.setColors=function(t){for(var n=t.length-3,e=new Float32Array(2*n),i=0;i<n;i+=3)e[2*i]=t[i],e[2*i+1]=t[i+1],e[2*i+2]=t[i+2],e[2*i+3]=t[i+3],e[2*i+4]=t[i+4],e[2*i+5]=t[i+5];return a.prototype.setColors.call(this,e),this},r.prototype.fromLine=function(t){var n=t.geometry;if(n instanceof o.Geometry){var e=new o.BufferGeometry().fromGeometry(n);this.setPositions(e.attributes.position.array)}else n instanceof o.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},r.prototype.copy=function(){return this},r})(A);Object.assign(P.prototype,{isLineGeometry:!0});var k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",F=14467195,Q=8,Z=2,X=20,I=null,_=(function(a){y(r,a);function r(t,n){t===void 0&&(t=new o.Vector3),n===void 0&&(n=new o.Vector3);var e=a.call(this)||this;e.type="FiveLine",e.needsRender=!0;var i=new P,s=new g({color:F,linewidth:Z,dashScale:X,dashed:!1});e.line=new C(i,s);var c=new o.BufferGeometry,p=new o.PointsMaterial({color:F,size:Q,map:I||(I=new o.TextureLoader().load(k)),sizeAttenuation:!1,transparent:!0});return e.points=new o.Points(c,p),e.points.renderOrder=11,e.points.frustumCulled=!1,e.setPoints(t,n),e.add(e.line,e.points),e}return Object.defineProperty(r,"version",{get:function(){return"6.7.0-alpha.9"},enumerable:!1,configurable:!0}),r.prototype.setPoints=function(t,n){var e=[].concat(t.toArray(),n.toArray());this.points.geometry.setAttribute("position",new o.BufferAttribute(new Float32Array(e),3)),this.line.geometry.setPositions(e),this.line.computeLineDistances(),this.needsRender=!0},r.prototype.getPoints=function(){var t=this.points.geometry.attributes.position.array;return[new o.Vector3(t[0],t[1],t[2]),new o.Vector3(t[3],t[4],t[5])]},r.prototype.setMaterial=function(t){var n=this.line.material;for(var e in t)if(t.hasOwnProperty(e)){var i=t[e];e==="dashed"?(n.dashed=i,i?n.defines.USE_DASH="":delete n.defines.USE_DASH,n.needsUpdate=!0):n[e]=t[e]}this.needsRender=!0},r.prototype.setResolution=function(t,n){var e=this.line.material.resolution;(e.x!==t||e.y!==n)&&(e.set(t,n),this.needsRender=!0)},r})(o.Object3D);Object.assign(_.prototype,{isFiveLine:!0});exports.Line=_;exports.LineGeometry=P;exports.LineMaterial=g;exports.LineSegmentsGeometry=A;exports.THREE_Line2=C;exports.THREE_LineSegments2=M;
454
+ `},g=(function(a){y(r,a);function r(t){var n=a.call(this,{uniforms:o.UniformsUtils.clone(B.uniforms),vertexShader:B.vertexShader,fragmentShader:B.fragmentShader,clipping:!0})||this;return n.type="LineMaterial",n.dashed=!1,Object.defineProperties(n,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}}),n.setValues(t),n}return r})(o.ShaderMaterial);Object.assign(g.prototype,{isLineMaterial:!0});var M=(function(a){y(r,a);function r(t,n){var e=a.call(this)||this;return e.type="LineSegments2",e.geometry=t!==void 0?t:new A,e.material=n!==void 0?n:new g({color:Math.random()*16777215}),e}return r.prototype.computeLineDistances=function(){for(var t=this.geometry,n=t.attributes.instanceStart,e=t.attributes.instanceEnd,i=new Float32Array(2*n.count),s=new o.Vector3,c=new o.Vector3,p=0,u=0,S=n.count;p<S;p++,u+=2)s.fromBufferAttribute(n,p),c.fromBufferAttribute(e,p),i[u]=u===0?0:i[u-1],i[u+1]=i[u]+s.distanceTo(c);var h=new o.InstancedInterleavedBuffer(i,2,1);return t.setAttribute("instanceDistanceStart",new o.InterleavedBufferAttribute(h,1,0)),t.setAttribute("instanceDistanceEnd",new o.InterleavedBufferAttribute(h,1,1)),this},r.prototype.raycast=function(t,n){t.camera===null&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var e=t.ray,i=t.camera,s=i.projectionMatrix,c=this.geometry,p=this.material,u=p.resolution,S=p.linewidth,h=c.attributes.instanceStart,U=c.attributes.instanceEnd,l=new o.Vector4,f=new o.Vector4,v=new o.Vector4,b=new o.Vector3,w=new o.Matrix4,d=new o.Line3,z=new o.Vector3;e.at(1,v),v.w=1,v.applyMatrix4(i.matrixWorldInverse),v.applyMatrix4(s),v.multiplyScalar(1/v.w),v.x*=u.x/2,v.y*=u.y/2,v.z=0,b.copy(v);var x=this.matrixWorld;w.multiplyMatrices(i.matrixWorldInverse,x);for(var m=0,N=h.count;m<N;m++){l.fromBufferAttribute(h,m),f.fromBufferAttribute(U,m),l.w=1,f.w=1,l.applyMatrix4(w),f.applyMatrix4(w),l.applyMatrix4(s),f.applyMatrix4(s),l.multiplyScalar(1/l.w),f.multiplyScalar(1/f.w);var j=l.z<-1&&f.z<-1,G=l.z>1&&f.z>1;if(!(j||G)){l.x*=u.x/2,l.y*=u.y/2,f.x*=u.x/2,f.y*=u.y/2,d.start.copy(l),d.start.z=0,d.end.copy(f),d.end.z=0;var D=d.closestPointToPointParameter(b,!0);d.at(D,z);var O=o.MathUtils.lerp(l.z,f.z,D),W=O>=-1&&O<=1,T=b.distanceTo(z)<S*.5;if(W&&T){d.start.fromBufferAttribute(h,m),d.end.fromBufferAttribute(U,m),d.start.applyMatrix4(x),d.end.applyMatrix4(x);var V=new o.Vector3,E=new o.Vector3;e.distanceSqToSegment(d.start,d.end,E,V),n.push({point:E,pointOnLine:V,distance:e.origin.distanceTo(E),object:this,faceIndex:m})}}}},r})(o.Mesh);Object.assign(M.prototype,{isLineSegments2:!0});var C=(function(a){y(r,a);function r(t,n){var e=a.call(this,t,n)||this;return e.type="Line2",e}return r})(M);Object.assign(C.prototype,{isLine2:!0});var P=(function(a){y(r,a);function r(){var t=a.call(this)||this;return t.type="LineGeometry",t}return r.prototype.setPositions=function(t){for(var n=t.length-3,e=new Float32Array(2*n),i=0;i<n;i+=3)e[2*i]=t[i],e[2*i+1]=t[i+1],e[2*i+2]=t[i+2],e[2*i+3]=t[i+3],e[2*i+4]=t[i+4],e[2*i+5]=t[i+5];return a.prototype.setPositions.call(this,e),this},r.prototype.setColors=function(t){for(var n=t.length-3,e=new Float32Array(2*n),i=0;i<n;i+=3)e[2*i]=t[i],e[2*i+1]=t[i+1],e[2*i+2]=t[i+2],e[2*i+3]=t[i+3],e[2*i+4]=t[i+4],e[2*i+5]=t[i+5];return a.prototype.setColors.call(this,e),this},r.prototype.fromLine=function(t){var n=t.geometry;if(n instanceof o.Geometry){var e=new o.BufferGeometry().fromGeometry(n);this.setPositions(e.attributes.position.array)}else n instanceof o.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},r.prototype.copy=function(){return this},r})(A);Object.assign(P.prototype,{isLineGeometry:!0});var k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",F=14467195,Q=8,Z=2,X=20,I=null,_=(function(a){y(r,a);function r(t,n){t===void 0&&(t=new o.Vector3),n===void 0&&(n=new o.Vector3);var e=a.call(this)||this;e.type="FiveLine",e.needsRender=!0;var i=new P,s=new g({color:F,linewidth:Z,dashScale:X,dashed:!1});e.line=new C(i,s);var c=new o.BufferGeometry,p=new o.PointsMaterial({color:F,size:Q,map:I||(I=new o.TextureLoader().load(k)),sizeAttenuation:!1,transparent:!0});return e.points=new o.Points(c,p),e.points.renderOrder=11,e.points.frustumCulled=!1,e.setPoints(t,n),e.add(e.line,e.points),e}return Object.defineProperty(r,"version",{get:function(){return"6.7.0"},enumerable:!1,configurable:!0}),r.prototype.setPoints=function(t,n){var e=[].concat(t.toArray(),n.toArray());this.points.geometry.setAttribute("position",new o.BufferAttribute(new Float32Array(e),3)),this.line.geometry.setPositions(e),this.line.computeLineDistances(),this.needsRender=!0},r.prototype.getPoints=function(){var t=this.points.geometry.attributes.position.array;return[new o.Vector3(t[0],t[1],t[2]),new o.Vector3(t[3],t[4],t[5])]},r.prototype.setMaterial=function(t){var n=this.line.material;for(var e in t)if(t.hasOwnProperty(e)){var i=t[e];e==="dashed"?(n.dashed=i,i?n.defines.USE_DASH="":delete n.defines.USE_DASH,n.needsUpdate=!0):n[e]=t[e]}this.needsRender=!0},r.prototype.setResolution=function(t,n){var e=this.line.material.resolution;(e.x!==t||e.y!==n)&&(e.set(t,n),this.needsRender=!0)},r})(o.Object3D);Object.assign(_.prototype,{isFiveLine:!0});exports.Line=_;exports.LineGeometry=P;exports.LineMaterial=g;exports.LineSegmentsGeometry=A;exports.THREE_Line2=C;exports.THREE_LineSegments2=M;
package/line/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 10/23/2025
5
- * Version: 6.7.0-alpha.9
4
+ * Generated: 12/29/2025
5
+ * Version: 6.7.0
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -635,16 +635,16 @@ var F = (
635
635
  return o.prototype.computeLineDistances = function() {
636
636
  for (var t = this.geometry, n = t.attributes.instanceStart, e = t.attributes.instanceEnd, r = new Float32Array(2 * n.count), s = new i.Vector3(), c = new i.Vector3(), p = 0, u = 0, y = n.count; p < y; p++, u += 2)
637
637
  s.fromBufferAttribute(n, p), c.fromBufferAttribute(e, p), r[u] = u === 0 ? 0 : r[u - 1], r[u + 1] = r[u] + s.distanceTo(c);
638
- var m = new i.InstancedInterleavedBuffer(r, 2, 1);
639
- return t.setAttribute("instanceDistanceStart", new i.InterleavedBufferAttribute(m, 1, 0)), t.setAttribute("instanceDistanceEnd", new i.InterleavedBufferAttribute(m, 1, 1)), this;
638
+ var h = new i.InstancedInterleavedBuffer(r, 2, 1);
639
+ return t.setAttribute("instanceDistanceStart", new i.InterleavedBufferAttribute(h, 1, 0)), t.setAttribute("instanceDistanceEnd", new i.InterleavedBufferAttribute(h, 1, 1)), this;
640
640
  }, o.prototype.raycast = function(t, n) {
641
641
  t.camera === null && console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');
642
- var e = t.ray, r = t.camera, s = r.projectionMatrix, c = this.geometry, p = this.material, u = p.resolution, y = p.linewidth, m = c.attributes.instanceStart, M = c.attributes.instanceEnd, l = new i.Vector4(), f = new i.Vector4(), v = new i.Vector4(), g = new i.Vector3(), S = new i.Matrix4(), d = new i.Line3(), C = new i.Vector3();
642
+ var e = t.ray, r = t.camera, s = r.projectionMatrix, c = this.geometry, p = this.material, u = p.resolution, y = p.linewidth, h = c.attributes.instanceStart, M = c.attributes.instanceEnd, l = new i.Vector4(), f = new i.Vector4(), v = new i.Vector4(), g = new i.Vector3(), S = new i.Matrix4(), d = new i.Line3(), C = new i.Vector3();
643
643
  e.at(1, v), v.w = 1, v.applyMatrix4(r.matrixWorldInverse), v.applyMatrix4(s), v.multiplyScalar(1 / v.w), v.x *= u.x / 2, v.y *= u.y / 2, v.z = 0, g.copy(v);
644
644
  var w = this.matrixWorld;
645
645
  S.multiplyMatrices(r.matrixWorldInverse, w);
646
- for (var h = 0, N = m.count; h < N; h++) {
647
- l.fromBufferAttribute(m, h), f.fromBufferAttribute(M, h), l.w = 1, f.w = 1, l.applyMatrix4(S), f.applyMatrix4(S), l.applyMatrix4(s), f.applyMatrix4(s), l.multiplyScalar(1 / l.w), f.multiplyScalar(1 / f.w);
646
+ for (var m = 0, N = h.count; m < N; m++) {
647
+ l.fromBufferAttribute(h, m), f.fromBufferAttribute(M, m), l.w = 1, f.w = 1, l.applyMatrix4(S), f.applyMatrix4(S), l.applyMatrix4(s), f.applyMatrix4(s), l.multiplyScalar(1 / l.w), f.multiplyScalar(1 / f.w);
648
648
  var _ = l.z < -1 && f.z < -1, G = l.z > 1 && f.z > 1;
649
649
  if (!(_ || G)) {
650
650
  l.x *= u.x / 2, l.y *= u.y / 2, f.x *= u.x / 2, f.y *= u.y / 2, d.start.copy(l), d.start.z = 0, d.end.copy(f), d.end.z = 0;
@@ -652,14 +652,14 @@ var F = (
652
652
  d.at(U, C);
653
653
  var z = i.MathUtils.lerp(l.z, f.z, U), W = z >= -1 && z <= 1, j = g.distanceTo(C) < y * 0.5;
654
654
  if (W && j) {
655
- d.start.fromBufferAttribute(m, h), d.end.fromBufferAttribute(M, h), d.start.applyMatrix4(w), d.end.applyMatrix4(w);
655
+ d.start.fromBufferAttribute(h, m), d.end.fromBufferAttribute(M, m), d.start.applyMatrix4(w), d.end.applyMatrix4(w);
656
656
  var P = new i.Vector3(), b = new i.Vector3();
657
657
  e.distanceSqToSegment(d.start, d.end, b, P), n.push({
658
658
  point: b,
659
659
  pointOnLine: P,
660
660
  distance: e.origin.distanceTo(b),
661
661
  object: this,
662
- faceIndex: h
662
+ faceIndex: m
663
663
  });
664
664
  }
665
665
  }
@@ -735,7 +735,7 @@ var T = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAA
735
735
  }
736
736
  return Object.defineProperty(o, "version", {
737
737
  get: function() {
738
- return "6.7.0-alpha.9";
738
+ return "6.7.0";
739
739
  },
740
740
  enumerable: !1,
741
741
  configurable: !0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@realsee/five",
3
- "version": "6.7.0-alpha.9",
3
+ "version": "6.7.0",
4
4
  "description": "Realsee Renderer SDK",
5
5
  "author": "BEIKE REALSEE TECHNOLOGY (HK) LIMITED",
6
6
  "license": "SEE LICENSE IN TERMS.txt",
@@ -187,6 +187,44 @@ declare interface Config_5 {
187
187
  maxOpacity: number;
188
188
  }
189
189
 
190
+ /** 插件配置 */
191
+ declare interface Config_6 {
192
+ /** 线条数量 */
193
+ lineCount?: number;
194
+ /** 线条间距 */
195
+ spacing?: number;
196
+ /** 线宽 */
197
+ lineWidth?: number;
198
+ /** 线条颜色 */
199
+ color?: number;
200
+ /** 流光速度(单位距离/秒,值越大速度越快) */
201
+ speed?: number;
202
+ /** 流光过渡范围(单位:米,默认 5.0) */
203
+ range?: number;
204
+ /** 波动幅度 */
205
+ waveAmp?: number;
206
+ /** 波动频率 */
207
+ waveFreq?: number;
208
+ /** 粒子数量 */
209
+ particleCount?: number;
210
+ /** 粒子最大飘散距离 */
211
+ maxDistance?: number;
212
+ /** pathline Y 轴偏移(相对于 subMesh 向上偏移) */
213
+ lineYOffset?: number;
214
+ /** 子网格宽度 */
215
+ subMeshWidth?: number;
216
+ /** 子网格底色 */
217
+ subMeshColor?: number;
218
+ /** 子网格基础透明度(最小透明度) */
219
+ subMeshOpacity?: number;
220
+ /** 子网格最大透明度(流光中心的透明度,默认 1.0) */
221
+ subMeshMaxOpacity?: number;
222
+ /** 子网格流光分段间隔(单位:米,默认 3.0) */
223
+ subMeshSegmentInterval?: number;
224
+ /** 子网格流光高亮带宽度(单位:米,默认 1.5) */
225
+ subMeshHighlightWidth?: number;
226
+ }
227
+
190
228
  declare interface ConfigChangeEvent {
191
229
  /** 变更前的 config */
192
230
  prevConfig: Config_5;
@@ -207,6 +245,186 @@ export declare class CSS3DRenderer {
207
245
 
208
246
  }
209
247
 
248
+ export declare const DynamicPathLinePlugin: (five: Five, params?: DynamicPathLinePluginType.Params) => DynamicPathLinePluginController;
249
+
250
+ export declare class DynamicPathLinePluginController extends BasePlugin_2.Controller<DynamicPathLinePluginType.State, DynamicPathLinePluginType.EventMap, DynamicPathLinePluginType.ServerData, DynamicPathLinePluginType.PluginData> {
251
+ /** 当前使用的数据 */
252
+ data?: DynamicPathLinePluginType.PluginData;
253
+ /** 插件当前状态 */
254
+ state: DynamicPathLinePluginType.State;
255
+ /** config 的原始值 */
256
+ private _config;
257
+ get config(): {
258
+ lineCount: number;
259
+ spacing: number;
260
+ lineWidth: number;
261
+ color: number;
262
+ speed: number;
263
+ range: number;
264
+ waveAmp: number;
265
+ waveFreq: number;
266
+ particleCount: number;
267
+ maxDistance: number;
268
+ lineYOffset: number;
269
+ subMeshWidth: number;
270
+ subMeshColor: number;
271
+ subMeshOpacity: number;
272
+ subMeshMaxOpacity: number;
273
+ subMeshSegmentInterval: number;
274
+ subMeshHighlightWidth: number;
275
+ };
276
+ private paths;
277
+ private up;
278
+ private updateState;
279
+ constructor(five: Five, params?: DynamicPathLinePluginType.Params);
280
+ /**
281
+ * 加载服务端数据
282
+ */
283
+ load(serverData: DynamicPathLinePluginType.ServerData, state?: DynamicPathLinePluginType.State): Promise<void>;
284
+ /**
285
+ * 添加路径
286
+ */
287
+ addPath(pathConfig: DynamicPathLinePluginType.PathConfig): boolean;
288
+ /**
289
+ * 移除路径
290
+ */
291
+ removePath(pathId: string): boolean;
292
+ /**
293
+ * 启用路径
294
+ */
295
+ enablePath(pathId: string): boolean;
296
+ /**
297
+ * 禁用路径
298
+ */
299
+ disablePath(pathId: string): boolean;
300
+ /**
301
+ * 显示路径
302
+ */
303
+ showPath(pathId: string): boolean;
304
+ /**
305
+ * 隐藏路径
306
+ */
307
+ hidePath(pathId: string): boolean;
308
+ /**
309
+ * 获取所有路径ID
310
+ */
311
+ getPathIds(): string[];
312
+ /**
313
+ * 获取路径配置
314
+ */
315
+ getPathConfig(pathId: string): DynamicPathLinePluginType.PathConfig | undefined;
316
+ /**
317
+ * 清空所有路径
318
+ */
319
+ clearAllPaths(): void;
320
+ private getPositions;
321
+ private createLines;
322
+ private createParticleMaterial;
323
+ private createParticles;
324
+ /**
325
+ * 创建子网格面片的几何体
326
+ */
327
+ private createSubMeshGeometry;
328
+ /**
329
+ * 创建流光的 alpha 贴图
330
+ * @param segmentCount - 分段数(流光数量)
331
+ * @param highlightWidthInMeters - 单个高亮带的物理宽度(单位:米)
332
+ * @param totalLength - 路径总长度(单位:米)
333
+ * @param baseOpacity - 基础透明度(0-1)
334
+ * @param maxOpacity - 最大透明度(0-1)
335
+ * @returns DataTexture
336
+ */
337
+ private createAlphaMapTexture;
338
+ /**
339
+ * 创建子网格面片的材质
340
+ */
341
+ private createSubMeshMaterial;
342
+ /**
343
+ * 将路径点投影到屏幕空间
344
+ */
345
+ private projectPointsToScreen;
346
+ /**
347
+ * 找到最近的屏幕外点
348
+ */
349
+ private findNearestOffscreenPoint;
350
+ /**
351
+ * 找到最远的屏幕外点(从终点反向搜索)
352
+ */
353
+ private findFarestOffscreenPoint;
354
+ private updatePathAnimation;
355
+ /**
356
+ * 启动指定路径的动画
357
+ * @param pathId - 路径ID
358
+ * @param options - 配置选项
359
+ */
360
+ startPathAnimation(pathId: string, options?: {
361
+ startPointIndex?: number;
362
+ fromStart?: boolean;
363
+ }): boolean;
364
+ /**
365
+ * 停止指定路径的动画
366
+ */
367
+ stopPathAnimation(pathId: string, saveProgress?: boolean): boolean;
368
+ private _enable;
369
+ private _disable;
370
+ /**
371
+ * 启用插件
372
+ */
373
+ enable(options?: BasePlugin_2.BaseOptions): void;
374
+ /**
375
+ * 禁用插件
376
+ */
377
+ disable(options?: BasePlugin_2.BaseOptions): void;
378
+ /**
379
+ * 显示插件
380
+ */
381
+ show(options?: BasePlugin_2.BaseOptions): void;
382
+ /**
383
+ * 隐藏插件
384
+ */
385
+ hide(options?: BasePlugin_2.BaseOptions): void;
386
+ /**
387
+ * 设置状态
388
+ */
389
+ setState(state: Partial<DynamicPathLinePluginType.State>, options?: BasePlugin_2.BaseOptions): void;
390
+ /**
391
+ * 播放动画
392
+ */
393
+ play(fromStart?: boolean): void;
394
+ /**
395
+ * 暂停动画
396
+ */
397
+ pause(): void;
398
+ /**
399
+ * 重置动画状态(不自动开始播放)
400
+ */
401
+ reset(): void;
402
+ highlightPath(pathId: string, highlight: boolean): void;
403
+ /**
404
+ * 更新指定路径的屏幕空间投影优化
405
+ * @param pathId - 路径ID,如果不提供则更新所有路径
406
+ */
407
+ updateScreenProjection(pathId?: string): void;
408
+ private disposePathResources;
409
+ /**
410
+ * 销毁插件
411
+ */
412
+ dispose(): void;
413
+ }
414
+
415
+ declare namespace DynamicPathLinePluginType {
416
+ export {
417
+ PathConfig,
418
+ PluginData_6 as PluginData,
419
+ ServerData_5 as ServerData,
420
+ Config_6 as Config,
421
+ Params_6 as Params,
422
+ State_6 as State,
423
+ EventMap_6 as EventMap
424
+ }
425
+ }
426
+ export { DynamicPathLinePluginType }
427
+
210
428
  /** 插件事件 */
211
429
  declare interface EventMap extends BasePlugin.EventMap<State, ServerData> {
212
430
  }
@@ -257,6 +475,26 @@ declare interface EventMap_5 extends BasePlugin_2.EventMap<State_5, PluginData_5
257
475
  }) => void;
258
476
  }
259
477
 
478
+ /** 插件事件 */
479
+ declare interface EventMap_6 extends BasePlugin.EventMap<State_6, PluginData_6> {
480
+ /** 动画开始播放 */
481
+ animationStart: () => void;
482
+ /** 动画停止播放 */
483
+ animationStop: () => void;
484
+ /** 路径添加 */
485
+ pathAdd: (pathId: string, config: PathConfig) => void;
486
+ /** 路径移除 */
487
+ pathRemove: (pathId: string) => void;
488
+ /** 路径启用 */
489
+ pathEnable: (pathId: string) => void;
490
+ /** 路径禁用 */
491
+ pathDisable: (pathId: string) => void;
492
+ /** 路径显示 */
493
+ pathShow: (pathId: string) => void;
494
+ /** 路径隐藏 */
495
+ pathHide: (pathId: string) => void;
496
+ }
497
+
260
498
  export declare class ItemMaskController extends BasePlugin.Controller<ItemMaskPluginType.State, ItemMaskPluginType.EventMap, ItemMaskPluginType.ServerData, ItemMaskPluginType.PluginData> {
261
499
  /** 当前使用的数据 */
262
500
  data?: ItemMaskPluginType.PluginData;
@@ -605,6 +843,44 @@ declare interface Params_5 {
605
843
  initialState?: Partial<State_5>;
606
844
  }
607
845
 
846
+ /** 插件初始化参数 */
847
+ declare interface Params_6 {
848
+ config?: Partial<Config_6>;
849
+ initialState?: Partial<State_6>;
850
+ /** 初始路径配置列表 */
851
+ paths?: PathConfig[];
852
+ }
853
+
854
+ /** 路径配置 */
855
+ declare interface PathConfig {
856
+ /** 路径唯一标识 */
857
+ id: string;
858
+ /** 路径点 */
859
+ points: THREE_2.Vector3[];
860
+ /** 是否启用 */
861
+ enabled?: boolean;
862
+ /** 是否可见 */
863
+ visible?: boolean;
864
+ /** 线条颜色(可选,覆盖全局配置) */
865
+ color?: number;
866
+ /** 线宽(可选,覆盖全局配置) */
867
+ lineWidth?: number;
868
+ /** 子网格颜色(可选,覆盖全局配置) */
869
+ subMeshColor?: number;
870
+ /** 子网格宽度(可选,覆盖全局配置) */
871
+ subMeshWidth?: number;
872
+ /** 子网格透明度(可选,覆盖全局配置) */
873
+ subMeshOpacity?: number;
874
+ /** 流光速度(可选,覆盖全局配置,单位:米/秒) */
875
+ speed?: number;
876
+ /** 流光范围(可选,覆盖全局配置,单位:米,默认 5.0) */
877
+ range?: number;
878
+ /** 是否启用子网格(可选,默认 true) */
879
+ enableSubMesh?: boolean;
880
+ /** 是否启用路径线和粒子效果(可选,默认 true) */
881
+ enablePathline?: boolean;
882
+ }
883
+
608
884
  export declare interface PlayingState {
609
885
  keyframeIndex: number | null;
610
886
  progress: number | null;
@@ -623,6 +899,11 @@ declare type PluginData_4 = any;
623
899
 
624
900
  declare type PluginData_5 = {};
625
901
 
902
+ /** 插件数据 */
903
+ declare type PluginData_6 = {
904
+ paths: Map<string, PathConfig>;
905
+ };
906
+
626
907
  declare interface PluginDataItem {
627
908
  }
628
909
 
@@ -662,6 +943,29 @@ declare type ServerData_3 = {
662
943
 
663
944
  declare type ServerData_4 = {};
664
945
 
946
+ /** 服务端数据 */
947
+ declare type ServerData_5 = {
948
+ paths: Array<{
949
+ id: string;
950
+ points: Array<{
951
+ x: number;
952
+ y: number;
953
+ z: number;
954
+ }>;
955
+ enabled?: boolean;
956
+ visible?: boolean;
957
+ color?: number;
958
+ lineWidth?: number;
959
+ subMeshColor?: number;
960
+ subMeshWidth?: number;
961
+ subMeshOpacity?: number;
962
+ speed?: number;
963
+ range?: number;
964
+ enableSubMesh?: boolean;
965
+ enablePathline?: boolean;
966
+ }>;
967
+ };
968
+
665
969
  /** 插件状态 */
666
970
  declare interface State extends BasePlugin.State {
667
971
  /** 插件是否启用 */
@@ -706,6 +1010,16 @@ declare interface State_5 extends BasePlugin_2.State {
706
1010
  visible: boolean;
707
1011
  }
708
1012
 
1013
+ /** 插件状态 */
1014
+ declare interface State_6 extends BasePlugin.State {
1015
+ /** 插件是否启用 */
1016
+ enabled: boolean;
1017
+ /** 插件整体是否可见 */
1018
+ visible: boolean;
1019
+ /** 动画是否正在播放 */
1020
+ playing: boolean;
1021
+ }
1022
+
709
1023
  export declare class TrajectoryController extends BasePlugin.Controller<PluginTemplateType.State, PluginTemplateType.EventMap, PluginTemplateType.ServerData, PluginTemplateType.PluginData> {
710
1024
  /** 当前使用的数据 */
711
1025
  data?: PluginTemplateType.PluginData;