@realsee/five 6.7.0-alpha.12 → 6.7.0-alpha.13

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 (118) hide show
  1. package/docs/assets/hierarchy.js +1 -1
  2. package/docs/assets/search.js +1 -1
  3. package/docs/classes/five.Model.html +1 -1
  4. package/docs/classes/five.ModelScene.html +1 -1
  5. package/docs/classes/five.PBMContainer.html +1 -1
  6. package/docs/classes/five.PBMGroup.html +1 -1
  7. package/docs/classes/five.PBMMesh.html +1 -1
  8. package/docs/classes/five.PBMMeshMaterial.html +1 -1
  9. package/docs/classes/five.PBMPointCloud.html +1 -1
  10. package/docs/classes/five.PBMPointCloudMaterial.html +1 -1
  11. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  12. package/docs/classes/five.PanoCircleMeshSolid.html +5 -5
  13. package/docs/classes/five.Parameter.html +1 -1
  14. package/docs/classes/five.Tile3D.html +1 -1
  15. package/docs/classes/five.TileNode.html +1 -1
  16. package/docs/classes/five.TrajectoryNode.html +1 -1
  17. package/docs/classes/five.Work.html +16 -16
  18. package/docs/classes/five.WorkResolvedObserver.html +17 -17
  19. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  20. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  21. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  22. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  23. package/docs/classes/line.LineGeometry.html +1 -1
  24. package/docs/classes/line.LineMaterial.html +1 -1
  25. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  26. package/docs/classes/line.THREE_Line2.html +1 -1
  27. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  28. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  29. package/docs/classes/vfx.Airflow.html +1 -1
  30. package/docs/classes/vfx.Flame.html +1 -1
  31. package/docs/classes/vfx.Particle.html +1 -1
  32. package/docs/classes/vfx.ParticleGPU.html +1 -1
  33. package/docs/classes/vfx.SpotLight.html +1 -1
  34. package/docs/functions/five.parseWork.html +1 -1
  35. package/docs/functions/vue.useFiveWorks.html +2 -2
  36. package/docs/hierarchy.html +1 -1
  37. package/docs/interfaces/five.LooseWorkPanorama.html +1 -1
  38. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +6 -6
  39. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +5 -3
  40. package/docs/interfaces/five.ModelLike.html +1 -1
  41. package/docs/interfaces/five.PBMMaterial.html +1 -1
  42. package/docs/interfaces/five.PBMMeshMaterialParameters.html +1 -1
  43. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
  44. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +2 -2
  45. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +12 -10
  46. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +5 -3
  47. package/docs/interfaces/five.ParameterMaterialValue.html +1 -1
  48. package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
  49. package/docs/interfaces/five.ParameterValue.html +1 -1
  50. package/docs/interfaces/five.ResolvedParameterValue.html +1 -1
  51. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  52. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +12 -10
  53. package/docs/interfaces/five.ViewLayer.html +1 -1
  54. package/docs/interfaces/five.WorkCubeImage.html +2 -2
  55. package/docs/interfaces/five.WorkImage.html +3 -3
  56. package/docs/interfaces/five.WorkInitial.html +8 -8
  57. package/docs/interfaces/five.WorkModel.html +8 -8
  58. package/docs/interfaces/five.WorkModelLayer.html +6 -6
  59. package/docs/interfaces/five.WorkObserver.html +18 -18
  60. package/docs/interfaces/five.WorkTile.html +4 -4
  61. package/docs/interfaces/five.WorkVideo.html +4 -4
  62. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +12 -10
  63. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  64. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  65. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +35 -24
  66. package/docs/interfaces/plugins.DynamicPathLinePluginType.Config.html +22 -12
  67. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +9 -9
  68. package/docs/interfaces/plugins.DynamicPathLinePluginType.Params.html +3 -3
  69. package/docs/interfaces/plugins.DynamicPathLinePluginType.PathConfig.html +12 -4
  70. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +4 -4
  71. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  72. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  73. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
  74. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  75. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  76. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  77. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  78. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  79. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  80. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  81. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  82. package/docs/interfaces/plugins.TrajectoryController.html +1 -1
  83. package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
  84. package/docs/types/five.ParseOptions.html +6 -6
  85. package/docs/types/plugins.DynamicPathLinePluginType.PluginData.html +2 -2
  86. package/docs/types/plugins.DynamicPathLinePluginType.ServerData.html +2 -2
  87. package/five/index.d.ts +6 -2
  88. package/five/index.js +66 -56
  89. package/five/index.mjs +2100 -2053
  90. package/gltf-loader/index.js +3 -3
  91. package/gltf-loader/index.mjs +3 -3
  92. package/line/index.js +3 -3
  93. package/line/index.mjs +3 -3
  94. package/package.json +1 -1
  95. package/plugins/index.d.ts +63 -7
  96. package/plugins/index.js +111 -26
  97. package/plugins/index.mjs +1182 -943
  98. package/react/index.js +2 -2
  99. package/react/index.mjs +2 -2
  100. package/shader-lib/index.js +2 -2
  101. package/shader-lib/index.mjs +2 -2
  102. package/sticker/index.js +3 -3
  103. package/sticker/index.mjs +3 -3
  104. package/umd/five-gltf-loader.js +3 -3
  105. package/umd/five-line.js +3 -3
  106. package/umd/five-plugins.js +111 -26
  107. package/umd/five-react.js +2 -2
  108. package/umd/five-shader-lib.js +2 -2
  109. package/umd/five-sticker.js +3 -3
  110. package/umd/five-vfx.js +2 -2
  111. package/umd/five-vue.js +2 -2
  112. package/umd/five.js +66 -56
  113. package/vfx/index.js +2 -2
  114. package/vfx/index.mjs +2 -2
  115. package/vue/index.js +2 -2
  116. package/vue/index.mjs +2 -2
  117. package/work-downloader/index.js +2 -2
  118. package/work-downloader/index.mjs +2 -2
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 2025/11/4
5
- * Version: 6.7.0-alpha.12
4
+ * Generated: 2025/11/10
5
+ * Version: 6.7.0-alpha.13
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -258,4 +258,4 @@
258
258
  `),a=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP"," vec4 texelGlossiness = texture2D( glossinessMap, vUv );"," // reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture"," glossinessFactor *= texelGlossiness.a;","#endif"].join(`
259
259
  `),i=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb;","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularColor = specularFactor.rgb;"].join(`
260
260
  `),s={specular:{value:new c.Color().setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=s,this.onBeforeCompile=function(o){for(var l in s)o.uniforms[l]=s[l];o.fragmentShader=o.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;"),o.fragmentShader=o.fragmentShader.replace("uniform float metalness;","uniform float glossiness;"),o.fragmentShader=o.fragmentShader.replace("#include <roughnessmap_pars_fragment>",r),o.fragmentShader=o.fragmentShader.replace("#include <metalnessmap_pars_fragment>",n),o.fragmentShader=o.fragmentShader.replace("#include <roughnessmap_fragment>",t),o.fragmentShader=o.fragmentShader.replace("#include <metalnessmap_fragment>",a),o.fragmentShader=o.fragmentShader.replace("#include <lights_physical_fragment>",i)},Object.defineProperties(this,{specular:{get:function(){return s.specular.value},set:function(o){s.specular.value=o}},specularMap:{get:function(){return s.specularMap.value},set:function(o){s.specularMap.value=o}},glossiness:{get:function(){return s.glossiness.value},set:function(o){s.glossiness.value=o}},glossinessMap:{get:function(){return s.glossinessMap.value},set:function(o){s.glossinessMap.value=o,o?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_ROUGHNESSMAP=""):(delete this.defines.USE_ROUGHNESSMAP,delete this.defines.USE_GLOSSINESSMAP)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}b.prototype=Object.create(c.MeshStandardMaterial.prototype),b.prototype.constructor=b,b.prototype.copy=function(e){return c.MeshStandardMaterial.prototype.copy.call(this,e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this};function j(){return{name:u.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"],getMaterialType:function(){return b},extendParams:function(e,r,n){var t=r.extensions[this.name];e.color=new c.Color(1,1,1),e.opacity=1;var a=[];if(Array.isArray(t.diffuseFactor)){var i=t.diffuseFactor;e.color.fromArray(i),e.opacity=i[3]}if(t.diffuseTexture!==void 0&&a.push(n.assignTexture(e,"map",t.diffuseTexture)),e.emissive=new c.Color(0,0,0),e.glossiness=t.glossinessFactor!==void 0?t.glossinessFactor:1,e.specular=new c.Color(1,1,1),Array.isArray(t.specularFactor)&&e.specular.fromArray(t.specularFactor),t.specularGlossinessTexture!==void 0){var s=t.specularGlossinessTexture;a.push(n.assignTexture(e,"glossinessMap",s)),a.push(n.assignTexture(e,"specularMap",s))}return Promise.all(a)},createMaterial:function(e){var r=new b(e);return r.fog=!0,r.color=e.color,r.map=e.map===void 0?null:e.map,r.lightMap=null,r.lightMapIntensity=1,r.aoMap=e.aoMap===void 0?null:e.aoMap,r.aoMapIntensity=1,r.emissive=e.emissive,r.emissiveIntensity=1,r.emissiveMap=e.emissiveMap===void 0?null:e.emissiveMap,r.bumpMap=e.bumpMap===void 0?null:e.bumpMap,r.bumpScale=1,r.normalMap=e.normalMap===void 0?null:e.normalMap,r.normalMapType=c.TangentSpaceNormalMap,e.normalScale&&(r.normalScale=e.normalScale),r.displacementMap=null,r.displacementScale=1,r.displacementBias=0,r.specularMap=e.specularMap===void 0?null:e.specularMap,r.specular=e.specular,r.glossinessMap=e.glossinessMap===void 0?null:e.glossinessMap,r.glossiness=e.glossiness,r.alphaMap=null,r.envMap=e.envMap===void 0?null:e.envMap,r.envMapIntensity=1,r.refractionRatio=.98,r}}}function te(){this.name=u.KHR_MESH_QUANTIZATION}function P(e,r,n,t){c.Interpolant.call(this,e,r,n,t)}P.prototype=Object.create(c.Interpolant.prototype),P.prototype.constructor=P,P.prototype.copySampleValue_=function(e){for(var r=this.resultBuffer,n=this.sampleValues,t=this.valueSize,a=e*t*3+t,i=0;i!==t;i++)r[i]=n[a+i];return r},P.prototype.beforeStart_=P.prototype.copySampleValue_,P.prototype.afterEnd_=P.prototype.copySampleValue_,P.prototype.interpolate_=function(e,r,n,t){for(var a=this.resultBuffer,i=this.sampleValues,s=this.valueSize,o=s*2,l=s*3,f=t-r,v=(n-r)/f,d=v*v,h=d*v,S=e*l,L=S-l,E=-2*h+3*d,y=h-d,R=1-E,F=y-d+v,H=0;H!==s;H++){var ne=i[L+H+s],ae=i[L+H+o]*f,ee=i[S+H+s],K=i[S+H]*f;a[H]=R*ne+F*ae+E*ee+y*K}return a};function Q(e){this.parser=e,this.name=u.REALSEE_MATERIALS_LIGHTMAP}Q.prototype.getMaterialType=function(e){return c.MeshPhongMaterial},Q.prototype.extendParams=function(e,r,n){if(!r.extensions||!r.extensions[this.name])return Promise.resolve();var t=[],a=r.extensions[this.name];return a.lightMapTexture!==void 0&&t.push(n.assignTexture(e,"lightMap",a.lightMapTexture)),a.lightMapIntensity!==void 0&&(e.lightMapIntensity=a.lightMapIntensity),Promise.all(t)};var B={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Z={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},$={9728:c.NearestFilter,9729:c.LinearFilter,9984:c.NearestMipmapNearestFilter,9985:c.LinearMipmapNearestFilter,9986:c.NearestMipmapLinearFilter,9987:c.LinearMipmapLinearFilter},z={33071:c.ClampToEdgeWrapping,33648:c.MirroredRepeatWrapping,10497:c.RepeatWrapping},W={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},le={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},V={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Ae={CUBICSPLINE:void 0,LINEAR:c.InterpolateLinear,STEP:c.InterpolateDiscrete},ce={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},pe={"image/png":c.RGBAFormat,"image/jpeg":c.RGBFormat};function he(e,r){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(r)&&/^\//.test(e)&&(r=r.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:r+e)}function Se(e){return e.DefaultMaterial===void 0&&(e.DefaultMaterial=new c.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:c.FrontSide})),e.DefaultMaterial}function oe(e,r,n){for(var t in n.extensions)e[t]===void 0&&(r.userData.gltfExtensions=r.userData.gltfExtensions||{},r.userData.gltfExtensions[t]=n.extensions[t])}function Y(e,r){r.extras!==void 0&&(typeof r.extras=="object"?Object.assign(e.userData,r.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+r.extras))}function ye(e,r,n){for(var t=!1,a=!1,i=0,s=r.length;i<s;i++){var o=r[i];if(o.POSITION!==void 0&&(t=!0),o.NORMAL!==void 0&&(a=!0),t&&a)break}if(!t&&!a)return Promise.resolve(e);for(var l=[],f=[],i=0,s=r.length;i<s;i++){var o=r[i];if(t){var v=o.POSITION!==void 0?n.getDependency("accessor",o.POSITION):e.attributes.position;l.push(v)}if(a){var v=o.NORMAL!==void 0?n.getDependency("accessor",o.NORMAL):e.attributes.normal;f.push(v)}}return Promise.all([Promise.all(l),Promise.all(f)]).then(function(d){var h=d[0],S=d[1];return t&&(e.morphAttributes.position=h),a&&(e.morphAttributes.normal=S),e.morphTargetsRelative=!0,e})}function Ee(e,r){if(e.updateMorphTargets(),r.weights!==void 0)for(var n=0,t=r.weights.length;n<t;n++)e.morphTargetInfluences[n]=r.weights[n];if(r.extras&&Array.isArray(r.extras.targetNames)){var a=r.extras.targetNames;if(e.morphTargetInfluences.length===a.length){e.morphTargetDictionary={};for(var n=0,t=a.length;n<t;n++)e.morphTargetDictionary[a[n]]=n}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function G(e){var r=e.extensions&&e.extensions[u.KHR_DRACO_MESH_COMPRESSION],n;return r?n="draco:"+r.bufferView+":"+r.indices+":"+q(r.attributes):n=e.indices+":"+q(e.attributes)+":"+e.mode,n}function q(e){for(var r="",n=Object.keys(e).sort(),t=0,a=n.length;t<a;t++)r+=n[t]+":"+e[n[t]]+";";return r}function O(e,r,n){this.json=e||{},this.extensions=r||{},this.options=n||{},this.cache=new g,this.associations=new Map,this.primitiveCache={},this.textureLoader=new c.TextureLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.fileLoader=new c.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}O.prototype.parse=function(e,r){var n=this,t=this.json,a=this.extensions;this.cache.removeAll(),this.markDefs(),Promise.all([this.getDependencies("scene"),this.getDependencies("animation"),this.getDependencies("camera")]).then(function(i){var s={scene:i[0][t.scene||0],scenes:i[0],animations:i[1],cameras:i[2],asset:t.asset,parser:n,userData:{}};oe(a,s,t),Y(s,t),e(s)}).catch(r)},O.prototype.markDefs=function(){for(var e=this.json.nodes||[],r=this.json.skins||[],n=this.json.meshes||[],t={},a={},i=0,s=r.length;i<s;i++)for(var o=r[i].joints,l=0,f=o.length;l<f;l++)e[o[l]].isBone=!0;for(var v=0,d=e.length;v<d;v++){var h=e[v];h.mesh!==void 0&&(t[h.mesh]===void 0&&(t[h.mesh]=a[h.mesh]=0),t[h.mesh]++,h.skin!==void 0&&(n[h.mesh].isSkinnedMesh=!0))}this.json.meshReferences=t,this.json.meshUses=a},O.prototype.getDependency=function(e,r){var n=e+":"+r,t=this.cache.get(n);if(!t){switch(e){case"scene":t=this.loadScene(r);break;case"node":t=this.loadNode(r);break;case"mesh":t=this.loadMesh(r);break;case"accessor":t=this.loadAccessor(r);break;case"bufferView":t=this.loadBufferView(r);break;case"buffer":t=this.loadBuffer(r);break;case"material":t=this.loadMaterial(r);break;case"texture":t=this.loadTexture(r);break;case"skin":t=this.loadSkin(r);break;case"animation":t=this.loadAnimation(r);break;case"camera":t=this.loadCamera(r);break;case"light":t=this.extensions[u.KHR_LIGHTS_PUNCTUAL].loadLight(r);break;default:throw new Error("Unknown type: "+e)}this.cache.add(n,t)}return t},O.prototype.getDependencies=function(e){var r=this.cache.get(e);if(!r){var n=this,t=this.json[e+(e==="mesh"?"es":"s")]||[];r=Promise.all(t.map(function(a,i){return n.getDependency(e,i)})),this.cache.add(e,r)}return r},O.prototype.loadBuffer=function(e){var r=this.json.buffers[e],n=this.fileLoader;if(r.type&&r.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+r.type+" buffer type is not supported.");if(r.uri===void 0&&e===0)return Promise.resolve(this.extensions[u.KHR_BINARY_GLTF].body);var t=this.options;return new Promise(function(a,i){n.load(he(r.uri,t.path),a,void 0,function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+r.uri+'".'))})})},O.prototype.loadBufferView=function(e){var r=this.json.bufferViews[e];return this.getDependency("buffer",r.buffer).then(function(n){var t=r.byteLength||0,a=r.byteOffset||0;return n.slice(a,a+t)})},O.prototype.loadAccessor=function(e){var r=this,n=this.json,t=this.json.accessors[e];if(t.bufferView===void 0&&t.sparse===void 0)return Promise.resolve(null);var a=[];return t.bufferView!==void 0?a.push(this.getDependency("bufferView",t.bufferView)):a.push(null),t.sparse!==void 0&&(a.push(this.getDependency("bufferView",t.sparse.indices.bufferView)),a.push(this.getDependency("bufferView",t.sparse.values.bufferView))),Promise.all(a).then(function(i){var s=i[0],o=W[t.type],l=Z[t.componentType],f=l.BYTES_PER_ELEMENT,v=f*o,d=t.byteOffset||0,h=t.bufferView!==void 0?n.bufferViews[t.bufferView].byteStride:void 0,S=t.normalized===!0,L,E;if(h&&h!==v){var y=Math.floor(d/h),R="InterleavedBuffer:"+t.bufferView+":"+t.componentType+":"+y+":"+t.count,F=r.cache.get(R);F||(L=new l(s,y*h,t.count*h/f),F=new c.InterleavedBuffer(L,h/f),r.cache.add(R,F)),E=new c.InterleavedBufferAttribute(F,o,d%h/f,S)}else s===null?L=new l(t.count*o):L=new l(s,d,t.count*o),E=new c.BufferAttribute(L,o,S);if(t.sparse!==void 0){var H=W.SCALAR,ne=Z[t.sparse.indices.componentType],ae=t.sparse.indices.byteOffset||0,ee=t.sparse.values.byteOffset||0,K=new ne(i[1],ae,t.sparse.count*H),ue=new l(i[2],ee,t.sparse.count*o);s!==null&&(E=new c.BufferAttribute(E.array.slice(),E.itemSize,E.normalized));for(var N=0,Le=K.length;N<Le;N++){var se=K[N];if(E.setX(se,ue[N*o]),o>=2&&E.setY(se,ue[N*o+1]),o>=3&&E.setZ(se,ue[N*o+2]),o>=4&&E.setW(se,ue[N*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return E})},O.prototype.loadTexture=function(e){var r=this,n=this.json,t=this.options,a=this.textureLoader,i=self.URL||self.webkitURL,s=n.textures[e],o=s.extensions||{},l;o[u.MSFT_TEXTURE_DDS]?l=n.images[o[u.MSFT_TEXTURE_DDS].source]:l=n.images[s.source];var f=l.uri,v=!1;return l.bufferView!==void 0&&(f=r.getDependency("bufferView",l.bufferView).then(function(d){v=!0;var h=new Blob([d],{type:l.mimeType});return f=i.createObjectURL(h),f})),Promise.resolve(f).then(function(d){var h=t.manager.getHandler(d);return h||(h=o[u.MSFT_TEXTURE_DDS]?r.extensions[u.MSFT_TEXTURE_DDS].ddsLoader:a),new Promise(function(S,L){h.load(he(d,t.path),S,void 0,L)})}).then(function(d){v===!0&&i.revokeObjectURL(f),d.flipY=!1,s.name&&(d.name=s.name),l.mimeType in pe&&(d.format=pe[l.mimeType]);var h=n.samplers||{},S=h[s.sampler]||{};return d.magFilter=$[S.magFilter]||c.LinearFilter,d.minFilter=$[S.minFilter]||c.LinearMipmapLinearFilter,d.wrapS=z[S.wrapS]||c.RepeatWrapping,d.wrapT=z[S.wrapT]||c.RepeatWrapping,r.associations.set(d,{type:"textures",index:e}),d})},O.prototype.assignTexture=function(e,r,n){var t=this;return this.getDependency("texture",n.index).then(function(a){if(!a.isCompressedTexture)switch(r){case"aoMap":case"emissiveMap":case"metalnessMap":case"normalMap":case"roughnessMap":a.format=c.RGBFormat;break}if(n.texCoord!==void 0&&n.texCoord!=0&&!(r==="aoMap"&&n.texCoord==1)&&console.warn("THREE.GLTFLoader: Custom UV set "+n.texCoord+" for texture "+r+" not yet supported."),t.extensions[u.KHR_TEXTURE_TRANSFORM]){var i=n.extensions!==void 0?n.extensions[u.KHR_TEXTURE_TRANSFORM]:void 0;if(i){var s=t.associations.get(a);a=t.extensions[u.KHR_TEXTURE_TRANSFORM].extendTexture(a,i),t.associations.set(a,s)}}e[r]=a})},O.prototype.assignFinalMaterial=function(e){var r=e.geometry,n=e.material,t=r.attributes.tangent!==void 0,a=r.attributes.color!==void 0,i=r.attributes.normal===void 0,s=e.isSkinnedMesh===!0,o=Object.keys(r.morphAttributes).length>0,l=o&&r.morphAttributes.normal!==void 0;if(e.isPoints){var f="PointsMaterial:"+n.uuid,v=this.cache.get(f);v||(v=new c.PointsMaterial,c.Material.prototype.copy.call(v,n),v.color.copy(n.color),v.map=n.map,v.sizeAttenuation=!1,this.cache.add(f,v)),n=v}else if(e.isLine){var f="LineBasicMaterial:"+n.uuid,d=this.cache.get(f);d||(d=new c.LineBasicMaterial,c.Material.prototype.copy.call(d,n),d.color.copy(n.color),this.cache.add(f,d)),n=d}if(t||a||i||s||o){var f="ClonedMaterial:"+n.uuid+":";n.isGLTFSpecularGlossinessMaterial&&(f+="specular-glossiness:"),s&&(f+="skinning:"),t&&(f+="vertex-tangents:"),a&&(f+="vertex-colors:"),i&&(f+="flat-shading:"),o&&(f+="morph-targets:"),l&&(f+="morph-normals:");var h=this.cache.get(f);h||(h=n.clone(),s&&(h.skinning=!0),t&&(h.vertexTangents=!0),a&&(h.vertexColors=!0),i&&(h.flatShading=!0),o&&(h.morphTargets=!0),l&&(h.morphNormals=!0),this.cache.add(f,h),this.associations.set(h,this.associations.get(n))),n=h}n.aoMap&&r.attributes.uv2===void 0&&r.attributes.uv!==void 0&&r.setAttribute("uv2",r.attributes.uv),n.normalScale&&!t&&(n.normalScale.y=-n.normalScale.y),n.clearcoatNormalScale&&!t&&(n.clearcoatNormalScale.y=-n.clearcoatNormalScale.y),e.material=n},O.prototype.loadMaterial=function(e){var r=this,n=this.json,t=this.extensions,a=n.materials[e],i,s={},o=a.extensions||{},l=[];if(o[u.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){var f=t[u.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];i=f.getMaterialType(),l.push(f.extendParams(s,a,r))}else if(o[u.KHR_MATERIALS_UNLIT]){var v=t[u.KHR_MATERIALS_UNLIT];i=v.getMaterialType(),l.push(v.extendParams(s,a,r))}else{i=c.MeshStandardMaterial;var d=a.pbrMetallicRoughness||{};if(s.color=new c.Color(1,1,1),s.opacity=1,Array.isArray(d.baseColorFactor)){var h=d.baseColorFactor;s.color.fromArray(h),s.opacity=h[3]}d.baseColorTexture!==void 0&&l.push(r.assignTexture(s,"map",d.baseColorTexture)),s.metalness=d.metallicFactor!==void 0?d.metallicFactor:1,s.roughness=d.roughnessFactor!==void 0?d.roughnessFactor:1,d.metallicRoughnessTexture!==void 0&&(l.push(r.assignTexture(s,"metalnessMap",d.metallicRoughnessTexture)),l.push(r.assignTexture(s,"roughnessMap",d.metallicRoughnessTexture)))}a.doubleSided===!0&&(s.side=c.DoubleSide);var S=a.alphaMode||ce.OPAQUE;if(S===ce.BLEND?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,S===ce.MASK&&(s.alphaTest=a.alphaCutoff!==void 0?a.alphaCutoff:.5)),a.normalTexture!==void 0&&i!==c.MeshBasicMaterial&&(l.push(r.assignTexture(s,"normalMap",a.normalTexture)),s.normalScale=new c.Vector2(1,1),a.normalTexture.scale!==void 0&&s.normalScale.set(a.normalTexture.scale,a.normalTexture.scale)),a.occlusionTexture!==void 0&&i!==c.MeshBasicMaterial&&(l.push(r.assignTexture(s,"aoMap",a.occlusionTexture)),a.occlusionTexture.strength!==void 0&&(s.aoMapIntensity=a.occlusionTexture.strength)),a.emissiveFactor!==void 0&&i!==c.MeshBasicMaterial&&(s.emissive=new c.Color().fromArray(a.emissiveFactor)),a.emissiveTexture!==void 0&&i!==c.MeshBasicMaterial&&l.push(r.assignTexture(s,"emissiveMap",a.emissiveTexture)),o[u.KHR_MATERIALS_CLEARCOAT]){var L=t[u.KHR_MATERIALS_CLEARCOAT];i=L.getMaterialType(),l.push(L.extendParams(s,{extensions:o},r))}if(o[u.KHR_MATERIALS_TRANSMISSION]){var L=t[u.KHR_MATERIALS_TRANSMISSION];i=L.getMaterialType(),l.push(L.extendParams(s,{extensions:o},r))}if(o[u.REALSEE_MATERIALS_LIGHTMAP]){var E=t[u.REALSEE_MATERIALS_LIGHTMAP];i=E.getMaterialType(),l.push(E.extendParams(s,{extensions:o},r))}return Promise.all(l).then(function(){var y;return i===b?y=t[u.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(s):y=new i(s),a.name&&(y.name=a.name),y.map&&(y.map.encoding=c.sRGBEncoding),y.emissiveMap&&(y.emissiveMap.encoding=c.sRGBEncoding),Y(y,a),r.associations.set(y,{type:"materials",index:e}),a.extensions&&oe(t,y,a),y})};function ve(e,r,n){var t=r.attributes,a=new c.Box3;if(t.POSITION!==void 0){var i=n.json.accessors[t.POSITION],s=i.min,o=i.max;if(s!==void 0&&o!==void 0)a.set(new c.Vector3(s[0],s[1],s[2]),new c.Vector3(o[0],o[1],o[2]));else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;var l=r.targets;if(l!==void 0){for(var f=new c.Vector3,v=new c.Vector3,d=0,h=l.length;d<h;d++){var S=l[d];if(S.POSITION!==void 0){var i=n.json.accessors[S.POSITION],s=i.min,o=i.max;s!==void 0&&o!==void 0?(v.setX(Math.max(Math.abs(s[0]),Math.abs(o[0]))),v.setY(Math.max(Math.abs(s[1]),Math.abs(o[1]))),v.setZ(Math.max(Math.abs(s[2]),Math.abs(o[2]))),f.max(v)):console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}a.expandByVector(f)}e.boundingBox=a;var L=new c.Sphere;a.getCenter(L.center),L.radius=a.min.distanceTo(a.max)/2,e.boundingSphere=L}function X(e,r,n){var t=r.attributes,a=[];function i(f,v){return n.getDependency("accessor",f).then(function(d){e.setAttribute(v,d)})}for(var s in t){var o=le[s]||s.toLowerCase();o in e.attributes||a.push(i(t[s],o))}if(r.indices!==void 0&&!e.index){var l=n.getDependency("accessor",r.indices).then(function(f){e.setIndex(f)});a.push(l)}return Y(e,r),ve(e,r,n),Promise.all(a).then(function(){return r.targets!==void 0?ye(e,r.targets,n):e})}function ie(e,r){var n=e.getIndex();if(n===null){var t=[],a=e.getAttribute("position");if(a!==void 0){for(var i=0;i<a.count;i++)t.push(i);e.setIndex(t),n=e.getIndex()}else return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e}var s=n.count-2,o=[];if(r===c.TriangleFanDrawMode)for(var i=1;i<=s;i++)o.push(n.getX(0)),o.push(n.getX(i)),o.push(n.getX(i+1));else for(var i=0;i<s;i++)i%2===0?(o.push(n.getX(i)),o.push(n.getX(i+1)),o.push(n.getX(i+2))):(o.push(n.getX(i+2)),o.push(n.getX(i+1)),o.push(n.getX(i)));o.length/3!==s&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var l=e.clone();return l.setIndex(o),l}return O.prototype.loadGeometries=function(e){var r=this,n=this.extensions,t=this.primitiveCache;function a(h){return n[u.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(h,r).then(function(S){return X(S,h,r)})}for(var i=[],s=0,o=e.length;s<o;s++){var l=e[s],f=G(l),v=t[f];if(v)i.push(v.promise);else{var d;l.extensions&&l.extensions[u.KHR_DRACO_MESH_COMPRESSION]?d=a(l):d=X(new c.BufferGeometry,l,r),t[f]={primitive:l,promise:d},i.push(d)}}return Promise.all(i)},O.prototype.loadMesh=function(e){for(var r=this,n=this.json,t=n.meshes[e],a=t.primitives,i=[],s=0,o=a.length;s<o;s++){var l=a[s].material===void 0?Se(this.cache):this.getDependency("material",a[s].material);i.push(l)}return i.push(r.loadGeometries(a)),Promise.all(i).then(function(f){for(var v=f.slice(0,f.length-1),d=f[f.length-1],h=[],S=0,L=d.length;S<L;S++){var E=d[S],y=a[S],R,F=v[S];if(y.mode===B.TRIANGLES||y.mode===B.TRIANGLE_STRIP||y.mode===B.TRIANGLE_FAN||y.mode===void 0)R=t.isSkinnedMesh===!0?new c.SkinnedMesh(E,F):new c.Mesh(E,F),R.isSkinnedMesh===!0&&!R.geometry.attributes.skinWeight.normalized&&R.normalizeSkinWeights(),y.mode===B.TRIANGLE_STRIP?R.geometry=ie(R.geometry,c.TriangleStripDrawMode):y.mode===B.TRIANGLE_FAN&&(R.geometry=ie(R.geometry,c.TriangleFanDrawMode));else if(y.mode===B.LINES)R=new c.LineSegments(E,F);else if(y.mode===B.LINE_STRIP)R=new c.Line(E,F);else if(y.mode===B.LINE_LOOP)R=new c.LineLoop(E,F);else if(y.mode===B.POINTS)R=new c.Points(E,F);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+y.mode);Object.keys(R.geometry.morphAttributes).length>0&&Ee(R,t),R.name=t.name||"mesh_"+e,d.length>1&&(R.name+="_"+S),Y(R,t),r.assignFinalMaterial(R),h.push(R)}if(h.length===1)return h[0];for(var H=new c.Group,S=0,L=h.length;S<L;S++)H.add(h[S]);return H})},O.prototype.loadCamera=function(e){var r,n=this.json.cameras[e],t=n[n.type];if(!t){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return n.type==="perspective"?r=new c.PerspectiveCamera(c.MathUtils.radToDeg(t.yfov),t.aspectRatio||1,t.znear||1,t.zfar||2e6):n.type==="orthographic"&&(r=new c.OrthographicCamera(-t.xmag,t.xmag,t.ymag,-t.ymag,t.znear,t.zfar)),n.name&&(r.name=n.name),Y(r,n),Promise.resolve(r)},O.prototype.loadSkin=function(e){var r=this.json.skins[e],n={joints:r.joints};return r.inverseBindMatrices===void 0?Promise.resolve(n):this.getDependency("accessor",r.inverseBindMatrices).then(function(t){return n.inverseBindMatrices=t,n})},O.prototype.loadAnimation=function(e){for(var r=this.json,n=r.animations[e],t=[],a=[],i=[],s=[],o=[],l=0,f=n.channels.length;l<f;l++){var v=n.channels[l],d=n.samplers[v.sampler],h=v.target,S=h.node!==void 0?h.node:h.id,L=n.parameters!==void 0?n.parameters[d.input]:d.input,E=n.parameters!==void 0?n.parameters[d.output]:d.output;t.push(this.getDependency("node",S)),a.push(this.getDependency("accessor",L)),i.push(this.getDependency("accessor",E)),s.push(d),o.push(h)}return Promise.all([Promise.all(t),Promise.all(a),Promise.all(i),Promise.all(s),Promise.all(o)]).then(function(y){for(var R=y[0],F=y[1],H=y[2],ne=y[3],ae=y[4],ee=[],K=0,ue=R.length;K<ue;K++){var N=R[K],Le=F[K],se=H[K],Me=ne[K],_e=ae[K];if(N!==void 0){N.updateMatrix(),N.matrixAutoUpdate=!0;var ge;switch(V[_e.path]){case V.weights:ge=c.NumberKeyframeTrack;break;case V.rotation:ge=c.QuaternionKeyframeTrack;break;case V.position:case V.scale:default:ge=c.VectorKeyframeTrack;break}var De=N.name?N.name:N.uuid,Pe=Me.interpolation!==void 0?Ae[Me.interpolation]:c.InterpolateLinear,Te=[];V[_e.path]===V.weights?N.traverse(function(de){de.isMesh===!0&&de.morphTargetInfluences&&Te.push(de.name?de.name:de.uuid)}):Te.push(De);var J=se.array;if(se.normalized){var fe;if(J.constructor===Int8Array)fe=1/127;else if(J.constructor===Uint8Array)fe=1/255;else if(J.constructor==Int16Array)fe=1/32767;else if(J.constructor===Uint16Array)fe=1/65535;else throw new Error("THREE.GLTFLoader: Unsupported output accessor component type.");for(var Ce=new Float32Array(J.length),re=0,Re=J.length;re<Re;re++)Ce[re]=J[re]*fe;J=Ce}for(var re=0,Re=Te.length;re<Re;re++){var we=new ge(Te[re]+"."+V[_e.path],Le.array,J,Pe);Me.interpolation==="CUBICSPLINE"&&(we.createInterpolant=function(Ge){return new P(this.times,this.values,this.getValueSize()/3,Ge)},we.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),ee.push(we)}}}var Ue=n.name?n.name:"animation_"+e;return new c.AnimationClip(Ue,void 0,ee)})},O.prototype.loadNode=function(e){var r=this.json,n=this.extensions,t=this,a=r.meshReferences,i=r.meshUses,s=r.nodes[e];return(function(){var o=[];return s.mesh!==void 0&&o.push(t.getDependency("mesh",s.mesh).then(function(l){var f;if(a[s.mesh]>1){var v=i[s.mesh]++;f=l.clone(),f.name+="_instance_"+v}else f=l;return s.weights!==void 0&&f.traverse(function(d){if(d.isMesh)for(var h=0,S=s.weights.length;h<S;h++)d.morphTargetInfluences[h]=s.weights[h]}),f})),s.camera!==void 0&&o.push(t.getDependency("camera",s.camera)),s.extensions&&s.extensions[u.KHR_LIGHTS_PUNCTUAL]&&s.extensions[u.KHR_LIGHTS_PUNCTUAL].light!==void 0&&o.push(t.getDependency("light",s.extensions[u.KHR_LIGHTS_PUNCTUAL].light)),Promise.all(o)})().then(function(o){var l;if(s.isBone===!0?l=new c.Bone:o.length>1?l=new c.Group:o.length===1?l=o[0]:l=new c.Object3D,l!==o[0])for(var f=0,v=o.length;f<v;f++)l.add(o[f]);if(s.name&&(l.userData.name=s.name,l.name=c.PropertyBinding.sanitizeNodeName(s.name)),Y(l,s),s.extensions&&oe(n,l,s),s.matrix!==void 0){var d=new c.Matrix4;d.fromArray(s.matrix),l.applyMatrix4(d)}else s.translation!==void 0&&l.position.fromArray(s.translation),s.rotation!==void 0&&l.quaternion.fromArray(s.rotation),s.scale!==void 0&&l.scale.fromArray(s.scale);return t.associations.set(l,{type:"nodes",index:e}),l})},O.prototype.loadScene=(function(){function e(r,n,t,a){var i=t.nodes[r];return a.getDependency("node",r).then(function(s){if(i.skin===void 0)return s;var o;return a.getDependency("skin",i.skin).then(function(l){o=l;for(var f=[],v=0,d=o.joints.length;v<d;v++)f.push(a.getDependency("node",o.joints[v]));return Promise.all(f)}).then(function(l){return s.traverse(function(f){if(f.isMesh){for(var v=[],d=[],h=0,S=l.length;h<S;h++){var L=l[h];if(L){v.push(L);var E=new c.Matrix4;o.inverseBindMatrices!==void 0&&E.fromArray(o.inverseBindMatrices.array,h*16),d.push(E)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',o.joints[h])}f.bind(new c.Skeleton(v,d),f.matrixWorld)}}),s})}).then(function(s){n.add(s);var o=[];if(i.children)for(var l=i.children,f=0,v=l.length;f<v;f++){var d=l[f];o.push(e(d,s,t,a))}return Promise.all(o)})}return function(n){var t=this.json,a=this.extensions,i=this.json.scenes[n],s=this,o=new c.Group;i.name&&(o.name=i.name),Y(o,i),i.extensions&&oe(a,o,i);for(var l=i.nodes||[],f=[],v=0,d=l.length;v<d;v++)f.push(e(l[v],o,t,s));return Promise.all(f).then(function(){return o})}})(),p})(),k=function(p){c.Loader.call(this,p),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}};k.prototype=Object.assign(Object.create(c.Loader.prototype),{constructor:k,setDecoderPath:function(p){return this.decoderPath=p,this},setDecoderConfig:function(p){return this.decoderConfig=p,this},setWorkerLimit:function(p){return this.workerLimit=p,this},setVerbosity:function(){console.warn("THREE.DRACOLoader: The .setVerbosity() method has been removed.")},setDrawMode:function(){console.warn("THREE.DRACOLoader: The .setDrawMode() method has been removed.")},setSkipDequantization:function(){console.warn("THREE.DRACOLoader: The .setSkipDequantization() method has been removed.")},load:function(p,g,u,m){var T=new c.FileLoader(this.manager);T.setPath(this.path),T.setResponseType("arraybuffer"),this.crossOrigin==="use-credentials"&&T.setWithCredentials(!0),T.load(p,A=>{var M={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(A,M).then(g).catch(m)},u,m)},decodeDracoFile:function(p,g,u,m){var T={attributeIDs:u||this.defaultAttributeIDs,attributeTypes:m||this.defaultAttributeTypes,useUniqueIDs:!!u};this.decodeGeometry(p,T).then(g)},decodeGeometry:function(p,g){for(var u in g.attributeTypes){var m=g.attributeTypes[u];m.BYTES_PER_ELEMENT!==void 0&&(g.attributeTypes[u]=m.name)}var T=JSON.stringify(g);if(k.taskCache.has(p)){var A=k.taskCache.get(p);if(A.key===T)return A.promise;if(p.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}var M,C=this.workerNextTaskID++,D=p.byteLength,_=this._getWorker(C,D).then(I=>(M=I,new Promise((U,x)=>{M._callbacks[C]={resolve:U,reject:x},M.postMessage({type:"decode",id:C,taskConfig:g,buffer:p},[p])}))).then(I=>this._createGeometry(I.geometry));return _.catch(()=>!0).then(()=>{M&&C&&this._releaseTask(M,C)}),k.taskCache.set(p,{key:T,promise:_}),_},_createGeometry:function(p){var g=new c.BufferGeometry;p.index&&g.setIndex(new c.BufferAttribute(p.index.array,1));for(var u=0;u<p.attributes.length;u++){var m=p.attributes[u],T=m.name,A=m.array,M=m.itemSize;g.setAttribute(T,new c.BufferAttribute(A,M))}return g},_loadLibrary:function(p,g){var u=new c.FileLoader(this.manager);return u.setPath(this.decoderPath),u.setResponseType(g),new Promise((m,T)=>{u.load(p,m,void 0,T)})},preload:function(){return this._initDecoder(),this},_initDecoder:function(){if(this.decoderPending)return this.decoderPending;var p=typeof WebAssembly!="object"||this.decoderConfig.type==="js",g=[];return p?g.push(this._loadLibrary("draco_decoder.js","text")):(g.push(this._loadLibrary("draco_wasm_wrapper.js","text")),g.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(g).then(u=>{var m=u[0];p||(this.decoderConfig.wasmBinary=u[1]);var T=k.DRACOWorker.toString(),A=["/* draco decoder */",m,"","/* worker */",T.substring(T.indexOf("{")+1,T.lastIndexOf("}"))].join(`
261
- `);this.workerSourceURL=URL.createObjectURL(new Blob([A]))}),this.decoderPending},_getWorker:function(p,g){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){var u=new Worker(this.workerSourceURL);u._callbacks={},u._taskCosts={},u._taskLoad=0,u.postMessage({type:"init",decoderConfig:this.decoderConfig}),u.onmessage=function(T){var A=T.data;switch(A.type){case"decode":u._callbacks[A.id].resolve(A);break;case"error":u._callbacks[A.id].reject(A);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+A.type+'"')}},this.workerPool.push(u)}else this.workerPool.sort(function(m,T){return m._taskLoad>T._taskLoad?-1:1});var u=this.workerPool[this.workerPool.length-1];return u._taskCosts[p]=g,u._taskLoad+=g,u})},_releaseTask:function(p,g){p._taskLoad-=p._taskCosts[g],delete p._callbacks[g],delete p._taskCosts[g]},debug:function(){console.log("Task load: ",this.workerPool.map(p=>p._taskLoad))},dispose:function(){for(var p=0;p<this.workerPool.length;++p)this.workerPool[p].terminate();return this.workerPool.length=0,this}});k.DRACOWorker=function(){var p,g;onmessage=function(T){var A=T.data;switch(A.type){case"init":p=A.decoderConfig,g=new Promise(function(D){p.onModuleLoaded=function(_){D({draco:_})},DracoDecoderModule(p)});break;case"decode":var M=A.buffer,C=A.taskConfig;g.then(D=>{var _=D.draco,I=new _.Decoder,U=new _.DecoderBuffer;U.Init(new Int8Array(M),M.byteLength);try{var x=u(_,I,U,C),w=x.attributes.map(b=>b.array.buffer);x.index&&w.push(x.index.array.buffer),self.postMessage({type:"decode",id:A.id,geometry:x},w)}catch(b){console.error(b),self.postMessage({type:"error",id:A.id,error:b.message})}finally{_.destroy(U),_.destroy(I)}});break}};function u(T,A,M,C){var D=C.attributeIDs,_=C.attributeTypes,I,U,x=A.GetEncodedGeometryType(M);if(x===T.TRIANGULAR_MESH)I=new T.Mesh,U=A.DecodeBufferToMesh(M,I);else if(x===T.POINT_CLOUD)I=new T.PointCloud,U=A.DecodeBufferToPointCloud(M,I);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!U.ok()||I.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+U.error_msg());var w={index:null,attributes:[]};for(var b in D){var j=self[_[b]],te,P;if(C.useUniqueIDs)P=D[b],te=A.GetAttributeByUniqueId(I,P);else{if(P=A.GetAttributeId(I,T[D[b]]),P===-1)continue;te=A.GetAttribute(I,P)}w.attributes.push(m(T,A,I,b,j,te))}if(x===T.TRIANGULAR_MESH){for(var Q=I.num_faces(),B=Q*3,Z=new Uint32Array(B),$=new T.DracoInt32Array,z=0;z<Q;++z){A.GetFaceFromMesh(I,z,$);for(var W=0;W<3;++W)Z[z*3+W]=$.GetValue(W)}w.index={array:Z,itemSize:1},T.destroy($)}return T.destroy(I),w}function m(T,A,M,C,D,_){var I=_.num_components(),U=M.num_points(),x=U*I,w,b;switch(D){case Float32Array:w=new T.DracoFloat32Array,A.GetAttributeFloatForAllPoints(M,_,w),b=new Float32Array(x);break;case Int8Array:w=new T.DracoInt8Array,A.GetAttributeInt8ForAllPoints(M,_,w),b=new Int8Array(x);break;case Int16Array:w=new T.DracoInt16Array,A.GetAttributeInt16ForAllPoints(M,_,w),b=new Int16Array(x);break;case Int32Array:w=new T.DracoInt32Array,A.GetAttributeInt32ForAllPoints(M,_,w),b=new Int32Array(x);break;case Uint8Array:w=new T.DracoUInt8Array,A.GetAttributeUInt8ForAllPoints(M,_,w),b=new Uint8Array(x);break;case Uint16Array:w=new T.DracoUInt16Array,A.GetAttributeUInt16ForAllPoints(M,_,w),b=new Uint16Array(x);break;case Uint32Array:w=new T.DracoUInt32Array,A.GetAttributeUInt32ForAllPoints(M,_,w),b=new Uint32Array(x);break;default:throw new Error("THREE.DRACOLoader: Unexpected attribute type.")}for(var j=0;j<x;j++)b[j]=w.GetValue(j);return T.destroy(w),{name:C,array:b,itemSize:I}}};k.taskCache=new WeakMap;k.setDecoderPath=function(){console.warn("THREE.DRACOLoader: The .setDecoderPath() method has been removed. Use instance methods.")};k.setDecoderConfig=function(){console.warn("THREE.DRACOLoader: The .setDecoderConfig() method has been removed. Use instance methods.")};k.releaseDecoderModule=function(){console.warn("THREE.DRACOLoader: The .releaseDecoderModule() method has been removed. Use instance methods.")};k.getDecoderModule=function(){console.warn("THREE.DRACOLoader: The .getDecoderModule() method has been removed. Use instance methods.")};var me=function(p){c.CompressedTextureLoader.call(this,p)};me.prototype=Object.assign(Object.create(c.CompressedTextureLoader.prototype),{constructor:me,parse:function(p,g){var u={mipmaps:[],width:0,height:0,format:null,mipmapCount:1},m=542327876,T=131072,A=512,M=1024,C=2048,D=4096,_=8192,I=16384,U=32768,x=4;function w(l){return l.charCodeAt(0)+(l.charCodeAt(1)<<8)+(l.charCodeAt(2)<<16)+(l.charCodeAt(3)<<24)}function b(l){return String.fromCharCode(l&255,l>>8&255,l>>16&255,l>>24&255)}function j(l,f,v,d){for(var h=v*d*4,S=new Uint8Array(l,f,h),L=new Uint8Array(h),E=0,y=0,R=0;R<d;R++)for(var F=0;F<v;F++){var H=S[y];y++;var ne=S[y];y++;var ae=S[y];y++;var ee=S[y];y++,L[E]=ae,E++,L[E]=ne,E++,L[E]=H,E++,L[E]=ee,E++}return L}var te=w("DXT1"),P=w("DXT3"),Q=w("DXT5"),B=w("ETC1"),Z=31,$=0,z=1,W=2,le=3,V=4,Ae=7,ce=20,pe=21,he=22,Se=23,oe=24,Y=25,ye=26,Ee=28,G=new Int32Array(p,0,Z);if(G[$]!==m)return console.error("THREE.DDSLoader.parse: Invalid magic number in DDS header."),u;if(!G[ce]&x)return console.error("THREE.DDSLoader.parse: Unsupported format, must contain a FourCC code."),u;var q,O=G[pe],ve=!1;switch(O){case te:q=8,u.format=c.RGB_S3TC_DXT1_Format;break;case P:q=16,u.format=c.RGBA_S3TC_DXT3_Format;break;case Q:q=16,u.format=c.RGBA_S3TC_DXT5_Format;break;case B:q=8,u.format=c.RGB_ETC1_Format;break;default:if(G[he]===32&&G[Se]&16711680&&G[oe]&65280&&G[Y]&255&&G[ye]&4278190080)ve=!0,q=64,u.format=c.RGBAFormat;else return console.error("THREE.DDSLoader.parse: Unsupported FourCC code ",b(O)),u}u.mipmapCount=1,G[W]&T&&g!==!1&&(u.mipmapCount=Math.max(1,G[Ae]));var X=G[Ee];if(u.isCubemap=!!(X&A),u.isCubemap&&(!(X&M)||!(X&C)||!(X&D)||!(X&_)||!(X&I)||!(X&U)))return console.error("THREE.DDSLoader.parse: Incomplete cubemap faces"),u;u.width=G[V],u.height=G[le];for(var ie=G[z]+4,e=u.isCubemap?6:1,r=0;r<e;r++)for(var n=u.width,t=u.height,a=0;a<u.mipmapCount;a++){if(ve)var i=j(p,ie,n,t),s=i.length;else var s=Math.max(4,n)/4*Math.max(4,t)/4*q,i=new Uint8Array(p,ie,s);var o={data:i,width:n,height:t};u.mipmaps.push(o),ie+=s,n=Math.max(n>>1,1),t=Math.max(t>>1,1)}return u}});var xe=(function(p){Oe(g,p);function g(u){var m=p.call(this)||this;return m.needsRender=!0,u&&u.children.length&&m.add.apply(m,u.children),m.mixer=new be.AnimationMixer(m),m}return g.prototype.clone=function(){var u=p.prototype.clone.call(this,!0),m=new be.AnimationMixer(u);return u.mixer=m,u.needsRender=!0,u},g})(be.Group),Ne="https://vr-public.realsee-cdn.cn/release/static/image/release/five/resource/draco/1.5.6/",ke=(function(p){Oe(g,p);function g(u){var m=p.call(this,u)||this;return m.ddsLoader=new me(u),m.dracoLoader=new k(u),m.dracoLoader.setDecoderPath(Ne),m}return Object.defineProperty(g,"version",{get:function(){return"6.7.0-alpha.12"},enumerable:!1,configurable:!0}),g.prototype.load=function(u,m,T,A){return p.prototype.load.call(this,u,m,T,A)},g.prototype.parse=function(u,m,T,A){return p.prototype.parse.call(this,u,m,function(M){var C=new xe(M.scene),D=M.scenes.map(function(_){return _===M.scene?C:new xe(_)});T(Object.assign(M,{scene:C,scenes:D}))},A)},g})(Fe);exports.DDSLoader=me;exports.DRACOLoader=k;exports.GLTFLoader=ke;exports.GLTFObject=xe;exports.THREEGLTFLoader=Fe;
261
+ `);this.workerSourceURL=URL.createObjectURL(new Blob([A]))}),this.decoderPending},_getWorker:function(p,g){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){var u=new Worker(this.workerSourceURL);u._callbacks={},u._taskCosts={},u._taskLoad=0,u.postMessage({type:"init",decoderConfig:this.decoderConfig}),u.onmessage=function(T){var A=T.data;switch(A.type){case"decode":u._callbacks[A.id].resolve(A);break;case"error":u._callbacks[A.id].reject(A);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+A.type+'"')}},this.workerPool.push(u)}else this.workerPool.sort(function(m,T){return m._taskLoad>T._taskLoad?-1:1});var u=this.workerPool[this.workerPool.length-1];return u._taskCosts[p]=g,u._taskLoad+=g,u})},_releaseTask:function(p,g){p._taskLoad-=p._taskCosts[g],delete p._callbacks[g],delete p._taskCosts[g]},debug:function(){console.log("Task load: ",this.workerPool.map(p=>p._taskLoad))},dispose:function(){for(var p=0;p<this.workerPool.length;++p)this.workerPool[p].terminate();return this.workerPool.length=0,this}});k.DRACOWorker=function(){var p,g;onmessage=function(T){var A=T.data;switch(A.type){case"init":p=A.decoderConfig,g=new Promise(function(D){p.onModuleLoaded=function(_){D({draco:_})},DracoDecoderModule(p)});break;case"decode":var M=A.buffer,C=A.taskConfig;g.then(D=>{var _=D.draco,I=new _.Decoder,U=new _.DecoderBuffer;U.Init(new Int8Array(M),M.byteLength);try{var x=u(_,I,U,C),w=x.attributes.map(b=>b.array.buffer);x.index&&w.push(x.index.array.buffer),self.postMessage({type:"decode",id:A.id,geometry:x},w)}catch(b){console.error(b),self.postMessage({type:"error",id:A.id,error:b.message})}finally{_.destroy(U),_.destroy(I)}});break}};function u(T,A,M,C){var D=C.attributeIDs,_=C.attributeTypes,I,U,x=A.GetEncodedGeometryType(M);if(x===T.TRIANGULAR_MESH)I=new T.Mesh,U=A.DecodeBufferToMesh(M,I);else if(x===T.POINT_CLOUD)I=new T.PointCloud,U=A.DecodeBufferToPointCloud(M,I);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!U.ok()||I.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+U.error_msg());var w={index:null,attributes:[]};for(var b in D){var j=self[_[b]],te,P;if(C.useUniqueIDs)P=D[b],te=A.GetAttributeByUniqueId(I,P);else{if(P=A.GetAttributeId(I,T[D[b]]),P===-1)continue;te=A.GetAttribute(I,P)}w.attributes.push(m(T,A,I,b,j,te))}if(x===T.TRIANGULAR_MESH){for(var Q=I.num_faces(),B=Q*3,Z=new Uint32Array(B),$=new T.DracoInt32Array,z=0;z<Q;++z){A.GetFaceFromMesh(I,z,$);for(var W=0;W<3;++W)Z[z*3+W]=$.GetValue(W)}w.index={array:Z,itemSize:1},T.destroy($)}return T.destroy(I),w}function m(T,A,M,C,D,_){var I=_.num_components(),U=M.num_points(),x=U*I,w,b;switch(D){case Float32Array:w=new T.DracoFloat32Array,A.GetAttributeFloatForAllPoints(M,_,w),b=new Float32Array(x);break;case Int8Array:w=new T.DracoInt8Array,A.GetAttributeInt8ForAllPoints(M,_,w),b=new Int8Array(x);break;case Int16Array:w=new T.DracoInt16Array,A.GetAttributeInt16ForAllPoints(M,_,w),b=new Int16Array(x);break;case Int32Array:w=new T.DracoInt32Array,A.GetAttributeInt32ForAllPoints(M,_,w),b=new Int32Array(x);break;case Uint8Array:w=new T.DracoUInt8Array,A.GetAttributeUInt8ForAllPoints(M,_,w),b=new Uint8Array(x);break;case Uint16Array:w=new T.DracoUInt16Array,A.GetAttributeUInt16ForAllPoints(M,_,w),b=new Uint16Array(x);break;case Uint32Array:w=new T.DracoUInt32Array,A.GetAttributeUInt32ForAllPoints(M,_,w),b=new Uint32Array(x);break;default:throw new Error("THREE.DRACOLoader: Unexpected attribute type.")}for(var j=0;j<x;j++)b[j]=w.GetValue(j);return T.destroy(w),{name:C,array:b,itemSize:I}}};k.taskCache=new WeakMap;k.setDecoderPath=function(){console.warn("THREE.DRACOLoader: The .setDecoderPath() method has been removed. Use instance methods.")};k.setDecoderConfig=function(){console.warn("THREE.DRACOLoader: The .setDecoderConfig() method has been removed. Use instance methods.")};k.releaseDecoderModule=function(){console.warn("THREE.DRACOLoader: The .releaseDecoderModule() method has been removed. Use instance methods.")};k.getDecoderModule=function(){console.warn("THREE.DRACOLoader: The .getDecoderModule() method has been removed. Use instance methods.")};var me=function(p){c.CompressedTextureLoader.call(this,p)};me.prototype=Object.assign(Object.create(c.CompressedTextureLoader.prototype),{constructor:me,parse:function(p,g){var u={mipmaps:[],width:0,height:0,format:null,mipmapCount:1},m=542327876,T=131072,A=512,M=1024,C=2048,D=4096,_=8192,I=16384,U=32768,x=4;function w(l){return l.charCodeAt(0)+(l.charCodeAt(1)<<8)+(l.charCodeAt(2)<<16)+(l.charCodeAt(3)<<24)}function b(l){return String.fromCharCode(l&255,l>>8&255,l>>16&255,l>>24&255)}function j(l,f,v,d){for(var h=v*d*4,S=new Uint8Array(l,f,h),L=new Uint8Array(h),E=0,y=0,R=0;R<d;R++)for(var F=0;F<v;F++){var H=S[y];y++;var ne=S[y];y++;var ae=S[y];y++;var ee=S[y];y++,L[E]=ae,E++,L[E]=ne,E++,L[E]=H,E++,L[E]=ee,E++}return L}var te=w("DXT1"),P=w("DXT3"),Q=w("DXT5"),B=w("ETC1"),Z=31,$=0,z=1,W=2,le=3,V=4,Ae=7,ce=20,pe=21,he=22,Se=23,oe=24,Y=25,ye=26,Ee=28,G=new Int32Array(p,0,Z);if(G[$]!==m)return console.error("THREE.DDSLoader.parse: Invalid magic number in DDS header."),u;if(!G[ce]&x)return console.error("THREE.DDSLoader.parse: Unsupported format, must contain a FourCC code."),u;var q,O=G[pe],ve=!1;switch(O){case te:q=8,u.format=c.RGB_S3TC_DXT1_Format;break;case P:q=16,u.format=c.RGBA_S3TC_DXT3_Format;break;case Q:q=16,u.format=c.RGBA_S3TC_DXT5_Format;break;case B:q=8,u.format=c.RGB_ETC1_Format;break;default:if(G[he]===32&&G[Se]&16711680&&G[oe]&65280&&G[Y]&255&&G[ye]&4278190080)ve=!0,q=64,u.format=c.RGBAFormat;else return console.error("THREE.DDSLoader.parse: Unsupported FourCC code ",b(O)),u}u.mipmapCount=1,G[W]&T&&g!==!1&&(u.mipmapCount=Math.max(1,G[Ae]));var X=G[Ee];if(u.isCubemap=!!(X&A),u.isCubemap&&(!(X&M)||!(X&C)||!(X&D)||!(X&_)||!(X&I)||!(X&U)))return console.error("THREE.DDSLoader.parse: Incomplete cubemap faces"),u;u.width=G[V],u.height=G[le];for(var ie=G[z]+4,e=u.isCubemap?6:1,r=0;r<e;r++)for(var n=u.width,t=u.height,a=0;a<u.mipmapCount;a++){if(ve)var i=j(p,ie,n,t),s=i.length;else var s=Math.max(4,n)/4*Math.max(4,t)/4*q,i=new Uint8Array(p,ie,s);var o={data:i,width:n,height:t};u.mipmaps.push(o),ie+=s,n=Math.max(n>>1,1),t=Math.max(t>>1,1)}return u}});var xe=(function(p){Oe(g,p);function g(u){var m=p.call(this)||this;return m.needsRender=!0,u&&u.children.length&&m.add.apply(m,u.children),m.mixer=new be.AnimationMixer(m),m}return g.prototype.clone=function(){var u=p.prototype.clone.call(this,!0),m=new be.AnimationMixer(u);return u.mixer=m,u.needsRender=!0,u},g})(be.Group),Ne="https://vr-public.realsee-cdn.cn/release/static/image/release/five/resource/draco/1.5.6/",ke=(function(p){Oe(g,p);function g(u){var m=p.call(this,u)||this;return m.ddsLoader=new me(u),m.dracoLoader=new k(u),m.dracoLoader.setDecoderPath(Ne),m}return Object.defineProperty(g,"version",{get:function(){return"6.7.0-alpha.13"},enumerable:!1,configurable:!0}),g.prototype.load=function(u,m,T,A){return p.prototype.load.call(this,u,m,T,A)},g.prototype.parse=function(u,m,T,A){return p.prototype.parse.call(this,u,m,function(M){var C=new xe(M.scene),D=M.scenes.map(function(_){return _===M.scene?C:new xe(_)});T(Object.assign(M,{scene:C,scenes:D}))},A)},g})(Fe);exports.DDSLoader=me;exports.DRACOLoader=k;exports.GLTFLoader=ke;exports.GLTFObject=xe;exports.THREEGLTFLoader=Fe;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 2025/11/4
5
- * Version: 6.7.0-alpha.12
4
+ * Generated: 2025/11/10
5
+ * Version: 6.7.0-alpha.13
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -1683,7 +1683,7 @@ var Qe = (
1683
1683
  }
1684
1684
  return Object.defineProperty(T, "version", {
1685
1685
  get: function() {
1686
- return "6.7.0-alpha.12";
1686
+ return "6.7.0-alpha.13";
1687
1687
  },
1688
1688
  enumerable: !1,
1689
1689
  configurable: !0
package/line/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 2025/11/4
5
- * Version: 6.7.0-alpha.12
4
+ * Generated: 2025/11/10
5
+ * Version: 6.7.0-alpha.13
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.12"},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-alpha.13"},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: 2025/11/4
5
- * Version: 6.7.0-alpha.12
4
+ * Generated: 2025/11/10
5
+ * Version: 6.7.0-alpha.13
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -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.12";
738
+ return "6.7.0-alpha.13";
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.12",
3
+ "version": "6.7.0-alpha.13",
4
4
  "description": "Realsee Renderer SDK",
5
5
  "author": "BEIKE REALSEE TECHNOLOGY (HK) LIMITED",
6
6
  "license": "SEE LICENSE IN TERMS.txt",
@@ -199,8 +199,10 @@ declare interface Config_6 {
199
199
  lineWidth?: number;
200
200
  /** 线条颜色 */
201
201
  color?: number;
202
- /** 流光持续时间(秒) */
203
- duration?: number;
202
+ /** 流光速度(单位距离/秒,值越大速度越快) */
203
+ speed?: number;
204
+ /** 流光过渡范围 */
205
+ range?: number;
204
206
  /** 波动幅度 */
205
207
  waveAmp?: number;
206
208
  /** 波动频率 */
@@ -209,6 +211,14 @@ declare interface Config_6 {
209
211
  particleCount?: number;
210
212
  /** 粒子最大飘散距离 */
211
213
  maxDistance?: number;
214
+ /** pathline Y 轴偏移(相对于 subMesh 向上偏移) */
215
+ lineYOffset?: number;
216
+ /** 子网格宽度 */
217
+ subMeshWidth?: number;
218
+ /** 子网格底色 */
219
+ subMeshColor?: number;
220
+ /** 子网格基础透明度 */
221
+ subMeshOpacity?: number;
212
222
  }
213
223
 
214
224
  declare interface ConfigChangeEvent {
@@ -246,14 +256,18 @@ export declare class DynamicPathLinePluginController extends BasePlugin_2.Contro
246
256
  divisions: number;
247
257
  lineWidth: number;
248
258
  color: number;
249
- duration: number;
259
+ speed: number;
260
+ range: number;
250
261
  waveAmp: number;
251
262
  waveFreq: number;
252
263
  particleCount: number;
253
264
  maxDistance: number;
265
+ lineYOffset: number;
266
+ subMeshWidth: number;
267
+ subMeshColor: number;
268
+ subMeshOpacity: number;
254
269
  };
255
270
  private paths;
256
- private animationId;
257
271
  private up;
258
272
  private updateState;
259
273
  constructor(five: Five, params?: DynamicPathLinePluginType.Params);
@@ -301,6 +315,22 @@ export declare class DynamicPathLinePluginController extends BasePlugin_2.Contro
301
315
  private createLines;
302
316
  private createParticleMaterial;
303
317
  private createParticles;
318
+ /**
319
+ * 创建子网格面片的几何体
320
+ */
321
+ private createSubMeshGeometry;
322
+ /**
323
+ * 创建流光的 alpha 贴图
324
+ * @param segmentCount 分段数(流光数量)
325
+ * @param highlightWidth 单个高亮带的百分比宽度(0-1)
326
+ * @param baseOpacity 基础透明度(0-1)
327
+ * @returns DataTexture
328
+ */
329
+ private createAlphaMapTexture;
330
+ /**
331
+ * 创建子网格面片的材质
332
+ */
333
+ private createSubMeshMaterial;
304
334
  /**
305
335
  * 将路径点投影到屏幕空间
306
336
  */
@@ -309,9 +339,19 @@ export declare class DynamicPathLinePluginController extends BasePlugin_2.Contro
309
339
  * 找到最近的屏幕外点
310
340
  */
311
341
  private findNearestOffscreenPoint;
312
- private updateAnimation;
313
- private startAnimation;
314
- private stopAnimation;
342
+ /**
343
+ * 找到最远的屏幕外点(从终点反向搜索)
344
+ */
345
+ private findFarestOffscreenPoint;
346
+ private updatePathAnimation;
347
+ /**
348
+ * 启动指定路径的动画
349
+ */
350
+ startPathAnimation(pathId: string): boolean;
351
+ /**
352
+ * 停止指定路径的动画
353
+ */
354
+ stopPathAnimation(pathId: string): boolean;
315
355
  private _enable;
316
356
  private _disable;
317
357
  /**
@@ -342,6 +382,10 @@ export declare class DynamicPathLinePluginController extends BasePlugin_2.Contro
342
382
  * 暂停动画
343
383
  */
344
384
  pause(): void;
385
+ /**
386
+ * 重置动画状态(不自动开始播放)
387
+ */
388
+ reset(): void;
345
389
  /**
346
390
  * 更新指定路径的屏幕空间投影优化
347
391
  * @param pathId 路径ID,如果不提供则更新所有路径
@@ -807,6 +851,14 @@ declare interface PathConfig {
807
851
  color?: number;
808
852
  /** 线宽(可选,覆盖全局配置) */
809
853
  lineWidth?: number;
854
+ /** 子网格颜色(可选,覆盖全局配置) */
855
+ subMeshColor?: number;
856
+ /** 子网格宽度(可选,覆盖全局配置) */
857
+ subMeshWidth?: number;
858
+ /** 子网格透明度(可选,覆盖全局配置) */
859
+ subMeshOpacity?: number;
860
+ /** 是否启用子网格(可选,默认 true) */
861
+ enableSubMesh?: boolean;
810
862
  }
811
863
 
812
864
  export declare interface PlayingState {
@@ -884,6 +936,10 @@ declare type ServerData_5 = {
884
936
  visible?: boolean;
885
937
  color?: number;
886
938
  lineWidth?: number;
939
+ subMeshColor?: number;
940
+ subMeshWidth?: number;
941
+ subMeshOpacity?: number;
942
+ enableSubMesh?: boolean;
887
943
  }>;
888
944
  };
889
945