@anov/3d-ability 0.0.168 → 0.0.170

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 (243) hide show
  1. package/dist/business/Animation/motion/index.d.ts +3 -2
  2. package/dist/business/Animation/motion/index.js +6 -1
  3. package/dist/business/Animation/motion/index.js.map +1 -1
  4. package/dist/business/Area/Fence/FenceBase.d.ts +2 -2
  5. package/dist/business/Area/Fence/FenceBase.js +1 -1
  6. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  7. package/dist/business/Area/Fence/fence_base_01.js +1 -1
  8. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  9. package/dist/business/Area/Fence/fence_feeting_01.js +1 -1
  10. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  11. package/dist/business/Area/Fence/fence_roll_01.js +1 -1
  12. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  13. package/dist/business/Area/FillArea/FillAreaBase.d.ts +2 -2
  14. package/dist/business/Area/FillArea/FillAreaBase.js +1 -1
  15. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  16. package/dist/business/Area/index.d.ts +2 -1
  17. package/dist/business/Area/index.js +2 -2
  18. package/dist/business/Area/index.js.map +1 -1
  19. package/dist/business/Base/ObjectLayer.d.ts +4 -2
  20. package/dist/business/Base/ObjectLayer.js +7 -11
  21. package/dist/business/Base/ObjectLayer.js.map +1 -1
  22. package/dist/business/Batch/index.d.ts +1 -1
  23. package/dist/business/Batch/index.js +2 -2
  24. package/dist/business/Batch/index.js.map +1 -1
  25. package/dist/business/Box/index.d.ts +1 -1
  26. package/dist/business/Box/index.js +2 -2
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Box/interface.js.map +1 -1
  29. package/dist/business/Box/types.js.map +1 -1
  30. package/dist/business/Cylinder/index.d.ts +1 -1
  31. package/dist/business/Cylinder/index.js +2 -2
  32. package/dist/business/Cylinder/index.js.map +1 -1
  33. package/dist/business/Cylinder/interface.d.ts +1 -1
  34. package/dist/business/Cylinder/interface.js.map +1 -1
  35. package/dist/business/Cylinder/types.js.map +1 -1
  36. package/dist/business/Flyline/index.d.ts +2 -2
  37. package/dist/business/Flyline/index.js +8 -8
  38. package/dist/business/Flyline/index.js.map +1 -1
  39. package/dist/business/Flyline/line/ArcLine.d.ts +1 -1
  40. package/dist/business/Flyline/line/ArcLine.js +3 -3
  41. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  42. package/dist/business/HeatMap/HeatMap.d.ts +3 -59
  43. package/dist/business/HeatMap/HeatMap.js +7 -95
  44. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  45. package/dist/business/InfoPanel/index.d.ts +3 -4
  46. package/dist/business/InfoPanel/index.js +13 -19
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/InfoPanel/type.js.map +1 -1
  49. package/dist/business/Line/index.d.ts +3 -3
  50. package/dist/business/Line/index.js +8 -7
  51. package/dist/business/Line/index.js.map +1 -1
  52. package/dist/business/Line/interface.d.ts +4 -4
  53. package/dist/business/Line/interface.js.map +1 -1
  54. package/dist/business/Line/types.js.map +1 -1
  55. package/dist/business/Mark/index.d.ts +2 -1
  56. package/dist/business/Mark/index.js +3 -3
  57. package/dist/business/Mark/index.js.map +1 -1
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.d.ts +5 -3
  59. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +14 -10
  60. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  61. package/dist/business/MaterialSwitch/index.js.map +1 -1
  62. package/dist/business/Plane/index.d.ts +3 -2
  63. package/dist/business/Plane/index.js +2 -2
  64. package/dist/business/Plane/index.js.map +1 -1
  65. package/dist/business/Plane/interface.d.ts +5 -5
  66. package/dist/business/Plane/interface.js.map +1 -1
  67. package/dist/business/Plane/types.js.map +1 -1
  68. package/dist/business/Poi/index.d.ts +2 -3
  69. package/dist/business/Poi/index.js +25 -54
  70. package/dist/business/Poi/index.js.map +1 -1
  71. package/dist/business/Poi/link/Cylinder.d.ts +2 -1
  72. package/dist/business/Poi/link/Cylinder.js +3 -3
  73. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  74. package/dist/business/Poi/link/Pyramid.d.ts +2 -1
  75. package/dist/business/Poi/link/Pyramid.js +2 -2
  76. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  77. package/dist/business/Poi/link/index.d.ts +3 -3
  78. package/dist/business/Poi/link/index.js +2 -2
  79. package/dist/business/Poi/link/index.js.map +1 -1
  80. package/dist/business/Poi/panel/index.d.ts +3 -3
  81. package/dist/business/Poi/panel/index.js +7 -6
  82. package/dist/business/Poi/panel/index.js.map +1 -1
  83. package/dist/business/Poi/panel/interfaces.js.map +1 -1
  84. package/dist/business/Poi/panel/utils.d.ts +1 -1
  85. package/dist/business/Poi/panel/utils.js +3 -3
  86. package/dist/business/Poi/panel/utils.js.map +1 -1
  87. package/dist/business/Poi/particle/DoubleCircle.d.ts +2 -1
  88. package/dist/business/Poi/particle/DoubleCircle.js +3 -2
  89. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  90. package/dist/business/Poi/particle/DynamicCircle.d.ts +2 -1
  91. package/dist/business/Poi/particle/DynamicCircle.js +3 -2
  92. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  93. package/dist/business/Poi/particle/SingleCircle.d.ts +2 -1
  94. package/dist/business/Poi/particle/SingleCircle.js +3 -2
  95. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  96. package/dist/business/Poi/particle/index.d.ts +2 -2
  97. package/dist/business/Poi/particle/index.js +2 -2
  98. package/dist/business/Poi/particle/index.js.map +1 -1
  99. package/dist/business/Poi/title/Border.d.ts +2 -1
  100. package/dist/business/Poi/title/Border.js +2 -2
  101. package/dist/business/Poi/title/Border.js.map +1 -1
  102. package/dist/business/Poi/title/Ellipse.d.ts +2 -1
  103. package/dist/business/Poi/title/Ellipse.js +2 -2
  104. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  105. package/dist/business/Poi/title/index.d.ts +3 -2
  106. package/dist/business/Poi/title/index.js +2 -2
  107. package/dist/business/Poi/title/index.js.map +1 -1
  108. package/dist/business/Sphere/index.d.ts +2 -2
  109. package/dist/business/Sphere/index.js +2 -2
  110. package/dist/business/Sphere/index.js.map +1 -1
  111. package/dist/business/Sphere/interface.js.map +1 -1
  112. package/dist/business/Sphere/types.js.map +1 -1
  113. package/dist/business/Spline/index.d.ts +2 -1
  114. package/dist/business/Spline/index.js +14 -28
  115. package/dist/business/Spline/index.js.map +1 -1
  116. package/dist/business/SplitBuilding/index.d.ts +2 -2
  117. package/dist/business/SplitBuilding/index.js +2 -2
  118. package/dist/business/SplitBuilding/index.js.map +1 -1
  119. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.d.ts +2 -2
  120. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +6 -5
  121. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  122. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.d.ts +2 -2
  123. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +3 -3
  124. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  125. package/dist/business/TrafficComponents/base.d.ts +4 -4
  126. package/dist/business/TrafficComponents/base.js +6 -6
  127. package/dist/business/TrafficComponents/base.js.map +1 -1
  128. package/dist/business/TrafficComponents/index.d.ts +4 -2
  129. package/dist/business/TrafficComponents/index.js +2 -2
  130. package/dist/business/TrafficComponents/index.js.map +1 -1
  131. package/dist/business/Utils/defineProps.js +3 -3
  132. package/dist/business/Utils/defineProps.js.map +1 -1
  133. package/dist/business/VideoPanel/index.d.ts +4 -4
  134. package/dist/business/VideoPanel/index.js +11 -13
  135. package/dist/business/VideoPanel/index.js.map +1 -1
  136. package/dist/business/VideoPanel/type.d.ts +8 -8
  137. package/dist/business/VideoPanel/type.js.map +1 -1
  138. package/dist/business/Water/index.d.ts +3 -1
  139. package/dist/business/Water/index.js +5 -5
  140. package/dist/business/Water/index.js.map +1 -1
  141. package/dist/business/index.d.ts +21 -18
  142. package/dist/business/index.js +18 -18
  143. package/dist/business/index.js.map +1 -1
  144. package/dist/core/Camera/PerspectiveCamera/CameraExpand.d.ts +1 -1
  145. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +4 -4
  146. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  147. package/dist/core/Camera/index.d.ts +2 -1
  148. package/dist/core/Camera/index.js +1 -1
  149. package/dist/core/Camera/index.js.map +1 -1
  150. package/dist/core/Controls/FirstViewControl/index.d.ts +3 -2
  151. package/dist/core/Controls/FirstViewControl/index.js +4 -2
  152. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  153. package/dist/core/Controls/ThirdViewControl/index.d.ts +3 -2
  154. package/dist/core/Controls/ThirdViewControl/index.js +6 -3
  155. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  156. package/dist/core/Controls/ThirdViewControl/player/camera.d.ts +4 -2
  157. package/dist/core/Controls/ThirdViewControl/player/camera.js +5 -2
  158. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  159. package/dist/core/Controls/ThirdViewControl/player.d.ts +4 -2
  160. package/dist/core/Controls/ThirdViewControl/player.js +6 -2
  161. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  162. package/dist/core/Controls/base.d.ts +4 -3
  163. package/dist/core/Controls/base.js +5 -3
  164. package/dist/core/Controls/base.js.map +1 -1
  165. package/dist/core/Curve/index.d.ts +2 -1
  166. package/dist/core/Curve/index.js +1 -1
  167. package/dist/core/Curve/index.js.map +1 -1
  168. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  169. package/dist/core/Material/index.d.ts +5 -3
  170. package/dist/core/Material/index.js +3 -3
  171. package/dist/core/Material/index.js.map +1 -1
  172. package/dist/core/PostEffects/addACESFilmicToneMappingPass.d.ts +2 -1
  173. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +4 -4
  174. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  175. package/dist/core/PostEffects/addBrightnessContrastPass.d.ts +2 -1
  176. package/dist/core/PostEffects/addBrightnessContrastPass.js +4 -4
  177. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  178. package/dist/core/PostEffects/bloomPass.d.ts +2 -1
  179. package/dist/core/PostEffects/bloomPass.js +6 -5
  180. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  181. package/dist/core/PostEffects/bloomSelect.d.ts +2 -2
  182. package/dist/core/PostEffects/bloomSelect.js +7 -6
  183. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  184. package/dist/core/PostEffects/colorifyPass.d.ts +2 -2
  185. package/dist/core/PostEffects/colorifyPass.js +4 -4
  186. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  187. package/dist/core/PostEffects/index.d.ts +4 -13
  188. package/dist/core/PostEffects/index.js +14 -20
  189. package/dist/core/PostEffects/index.js.map +1 -1
  190. package/dist/core/PostEffects/outlinePass.d.ts +2 -2
  191. package/dist/core/PostEffects/outlinePass.js +4 -5
  192. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  193. package/dist/core/PostEffects/postprocessing.d.ts +2 -2
  194. package/dist/core/PostEffects/postprocessing.js +2 -2
  195. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  196. package/dist/core/PostEffects/saoPass.d.ts +2 -1
  197. package/dist/core/PostEffects/saoPass.js +4 -5
  198. package/dist/core/PostEffects/saoPass.js.map +1 -1
  199. package/dist/core/SceneEffect/grow/grow.d.ts +3 -1
  200. package/dist/core/SceneEffect/grow/grow.js +5 -3
  201. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  202. package/dist/core/WeatherSystem/DynamicWeatherSystem.d.ts +3 -1
  203. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +6 -4
  204. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  205. package/dist/core/WeatherSystem/color/index.d.ts +3 -0
  206. package/dist/core/WeatherSystem/color/index.js +9 -14
  207. package/dist/core/WeatherSystem/color/index.js.map +1 -1
  208. package/dist/core/WeatherSystem/controller/ColorController.d.ts +3 -1
  209. package/dist/core/WeatherSystem/controller/ColorController.js +5 -3
  210. package/dist/core/WeatherSystem/controller/ColorController.js.map +1 -1
  211. package/dist/core/WeatherSystem/controller/HDRController.d.ts +3 -1
  212. package/dist/core/WeatherSystem/controller/HDRController.js +5 -3
  213. package/dist/core/WeatherSystem/controller/HDRController.js.map +1 -1
  214. package/dist/core/WeatherSystem/controller/SkyController.d.ts +3 -1
  215. package/dist/core/WeatherSystem/controller/SkyController.js +4 -2
  216. package/dist/core/WeatherSystem/controller/SkyController.js.map +1 -1
  217. package/dist/core/WeatherSystem/hdr/index.d.ts +4 -2
  218. package/dist/core/WeatherSystem/hdr/index.js +12 -11
  219. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  220. package/dist/core/WeatherSystem/index.d.ts +3 -2
  221. package/dist/core/WeatherSystem/index.js +7 -4
  222. package/dist/core/WeatherSystem/index.js.map +1 -1
  223. package/dist/core/WeatherSystem/objects/rain/index.d.ts +2 -1
  224. package/dist/core/WeatherSystem/objects/rain/index.js +3 -3
  225. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  226. package/dist/core/WeatherSystem/objects/rain/lineRain.d.ts +3 -1
  227. package/dist/core/WeatherSystem/objects/rain/lineRain.js +7 -5
  228. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  229. package/dist/core/WeatherSystem/objects/rain/plane.d.ts +3 -1
  230. package/dist/core/WeatherSystem/objects/rain/plane.js +6 -4
  231. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  232. package/dist/core/WeatherSystem/objects/rain/point.d.ts +3 -1
  233. package/dist/core/WeatherSystem/objects/rain/point.js +3 -0
  234. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  235. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  236. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  237. package/dist/core/WeatherSystem/weather/index.d.ts +3 -2
  238. package/dist/core/WeatherSystem/weather/index.js +7 -5
  239. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  240. package/dist/index.d.ts +13 -8
  241. package/dist/index.js +8 -8
  242. package/dist/index.js.map +1 -1
  243. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","AmbientLight","Box3","Color","Mesh","MeshBasicMaterial","Object3D","PlaneGeometry","Vector3","gsap","use","SurfaceMaterial","finirheightTransitionEffect","finirlowEffect","inject","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToGround","injectToRealFade","SwitchType","DEFAULT_CENTER","GROUND_Y_OFFSET","SIZE_SCALE_FACTOR","GROUND_MATCHING","MaterialSwitchSystem","_Object3D","_super","options","_this","Real","Map","Frame","Pure","Fresnel","matchSize","rule","handleSizeMatching","matchName","handleNameMatching","_ref","duration","_ref$center","center","_ref$isApi","isApi","initializeUniforms","progress","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","time","height","initializeBuiltInShader","getMaterialAll","hideAllObjects","objectsMap","objectMap","object","visible","showObjectsByType","switchType","option","_option$rules","light","useScene","scene","getObjectByName","removeFromParent","add","intensity","rules","material","limit","handleApiOption","handleMatch","cleanupAnimations","prepareForSwitch","startSwitchAnimation","_ref2","_ref2$mode","mode","_ref2$duration","_ref2$center","_ref2$genPlane","genPlane","uniforms","fromArray","isGenPlane","_this$frame","_this$gsap","frame","kill","newType","groundObject","get","lastGroundObject","userData","isVisible","concat","_this2","lastType","onComplete","dispatchEvent","style","requestAnimationFrame","animateWithGSAP","animateWithFrame","to","ease","_beginBySpeed","_callee","distance","onFinish","_this3","currDistance","speed","acc","_callee$","_context","useframe","deltaTime","Math","min","_this3$frame","beginBySpeed","_x","_x2","getMaxSize","addObject","uuid","getObjectUuid","objects","set","handleNormalObject","updateVisibility","tag","entityId","handleGroundObject","has","updateGroundMesh","groundMesh","createGroundMesh","handleGroundMatching","_this4","isMatch","traverse","child","some","matching","includes","_getMaterialByName","_callee2","_callee2$","_context2","getMaterial","getMaterialByName","_x3","_replaceMaterial","_callee3","materialName","_callee3$","_context3","isMatched","originalMaterial","replaceMaterial","_x4","_x5","_x6","_x7","resetMaterial","_this5","_rule$material","keysArray","mesh","_mesh$parent","parent","_this6","matchingStrategy","realObject","generateRealObject","fresnelObject","clone","generateFresnelObject","pureObject","generatePureObject","frameObject","generateFrameObject","removeObject","delete","box","box3","size","getSize","getCenter","plane","x","z","color","rotation","PI","position","geometry","dispose","expandByObject","vertices","getBoxVertices","maxDistance","calculateMaxDistance","max","_this7","reduce","vertex","distanceTo"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import type { Material, MeshPhysicalMaterial } from '@anov/3d-core'\nimport { AmbientLight, Box3, Color, Mesh, MeshBasicMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core'\nimport { SurfaceMaterial } from '../../'\nimport { finirheightTransitionEffect, finirlowEffect, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\nexport enum SwitchType {\n Real = 'Real',\n Fresnel = 'Fresnel',\n Frame = 'Frame',\n Pure = 'Pure',\n}\n\ninterface MaterialSwitchOption {\n duration?: number\n center?: Vector3\n isApi?: boolean\n}\n\ninterface MaterialSwitchUniforms {\n progress: { value: number }\n isFresnelFadeIn: { value: boolean }\n isRealFadeIn: { value: boolean }\n isPureFadeIn: { value: boolean }\n isFrameFadeIn: { value: boolean }\n maxSize: { value: number }\n center: { value: Vector3 }\n time: { value: number }\n isApi: { value: boolean }\n height: { value: number }\n}\n\ntype RuleItem = {\n type: string\n keys: string[] | string\n material: string\n limit?: SwitchType\n}\n\nconst DEFAULT_CENTER = new Vector3()\nconst GROUND_Y_OFFSET = -0.1\nconst SIZE_SCALE_FACTOR = 1.2\nconst GROUND_MATCHING = ['Ground', 'Road', 'Yard']\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends Object3D implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = SwitchType.Real\n public originalMaterial = new Map()\n public uniforms: MaterialSwitchUniforms\n\n private objects = new Map<string, Object3D>()\n private objectsMap: Record<MaterialSwitchType, Map<string, Object3D>> = {\n Real: new Map(),\n Frame: new Map(),\n Pure: new Map(),\n Fresnel: new Map(),\n }\n\n private frame: ReturnType<typeof use.useframe> | null = null\n private gsap: gsap.core.Tween | null = null\n private duration: number | undefined\n private center: Vector3\n private isGenPlane = false\n private rules: RuleItem[] = []\n\n constructor(options?: MaterialSwitchOption) {\n super()\n const { duration, center = DEFAULT_CENTER, isApi = false } = options ?? {}\n\n this.duration = duration\n this.center = center\n\n // 暂时注释:材质切换逻辑(2026.03.09)\n // this.uniforms = this.initializeUniforms()\n // this.uniforms.isApi.value = isApi\n // this.initializeBuiltInShader()\n\n // 暂时注释:材质切换逻辑(2026.03.09)\n // use.useframe(() => {\n // this.uniforms.time.value += 0.00018\n // this.uniforms.height.value -= 1\n // })\n }\n\n private initializeUniforms(): MaterialSwitchUniforms {\n return {\n progress: { value: 1.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: true },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n center: { value: this.center },\n time: { value: 0 },\n height: { value: 0 },\n isApi: { value: false },\n }\n }\n\n private initializeBuiltInShader() {\n SurfaceMaterial.getMaterialAll()\n }\n\n private hideAllObjects(): void {\n Object.values(this.objectsMap).forEach((objectMap) => {\n objectMap.forEach((object) => {\n object.visible = false\n })\n })\n }\n\n private showObjectsByType(type: MaterialSwitchType): void {\n this.objectsMap[type].forEach((object) => {\n object.visible = true\n })\n }\n\n public switchType(type: MaterialSwitchType,\n option?:\n {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n rules?: RuleItem[]\n }): void {\n if (this.type === type)\n return\n\n const light = use.useScene().scene.getObjectByName('FresnelLight')\n\n if (light)\n light.removeFromParent()\n\n if (type !== SwitchType.Real) {\n const light = new AmbientLight(0xFFFFFF, 1.5)\n light.name = 'FresnelLight'\n use.useScene().scene.add(light)\n\n if (type === SwitchType.Pure)\n light.intensity = 0.5\n }\n\n if (option?.rules?.length > 0) {\n this.rules = option.rules\n }\n else {\n this.rules = [{\n type: 'matchName',\n keys: [\n 'Tall',\n ],\n material: 'MfresnelGlow',\n },\n {\n type: 'matchName',\n keys: [\n 'Fence',\n ],\n material: 'Moriginal',\n },\n {\n type: 'matchName',\n keys: [\n 'Low',\n ],\n material: 'MlowFinir',\n },\n {\n type: 'matchName',\n keys: [\n 'Window',\n ],\n material: 'Fresnel_Transparent',\n limit: SwitchType.Fresnel,\n }]\n }\n\n this.handleApiOption(option)\n this.handleMatch(type)\n this.cleanupAnimations()\n this.prepareForSwitch(type)\n this.startSwitchAnimation(type)\n\n this.type = type\n }\n\n private handleApiOption(option: {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n }): void {\n const { mode = 'auto', duration = 2, center = [0, 0, 0], genPlane = true } = option ?? {}\n if (mode === 'auto')\n this.duration = undefined\n else\n this.duration = duration\n\n this.uniforms.center.value = new Vector3().fromArray(center)\n this.isGenPlane = genPlane\n }\n\n private cleanupAnimations(): void {\n this.frame?.()\n this.gsap?.kill()\n }\n\n private prepareForSwitch(newType: MaterialSwitchType): void {\n this.hideAllObjects()\n this.showObjectsByType(newType)\n this.showObjectsByType(this.type)\n\n const groundObject = this.objectsMap[newType].get('ground')\n const lastGroundObject = this.objectsMap[this.type].get('ground')\n\n if (groundObject)\n groundObject.visible = this.isGenPlane\n if (lastGroundObject)\n lastGroundObject.visible = lastGroundObject.userData.isVisible\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${newType}FadeIn`].value = true\n }\n\n private startSwitchAnimation(newType: MaterialSwitchType): void {\n const lastType = this.type\n\n const onComplete = () => {\n this.objectsMap[lastType].forEach((object) => {\n object.visible = false\n })\n this.dispatchEvent({ type: 'onStyleChanged', style: newType } as any)\n }\n\n requestAnimationFrame(() => {\n if (this.duration)\n this.animateWithGSAP(onComplete)\n else\n this.animateWithFrame(onComplete)\n })\n }\n\n private animateWithGSAP(onComplete: () => void): void {\n this.gsap = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: this.duration,\n ease: 'linear',\n onComplete,\n })\n }\n\n private async beginBySpeed(distance: number, onFinish?: () => void): Promise<void> {\n if (distance === 0)\n distance = 0.01\n\n let currDistance = 0\n let speed = 0\n let acc = 0\n\n this.frame = use.useframe((deltaTime) => {\n acc += distance * deltaTime\n speed += acc * deltaTime\n currDistance += speed * deltaTime\n\n this.uniforms.progress.value = Math.min(1, currDistance / distance)\n\n if (currDistance >= distance) {\n this.frame?.()\n onFinish?.()\n }\n })\n }\n\n private animateWithFrame(onComplete: () => void): void {\n this.beginBySpeed(this.getMaxSize(), onComplete)\n }\n\n public addObject(object: Object3D): void {\n return\n // 暂时注释:材质切换逻辑(2026.03.09)\n this.switchType(SwitchType.Real)\n const uuid = this.getObjectUuid(object)\n this.objects.set(uuid, object)\n\n this.handleNormalObject(object, uuid)\n this.updateVisibility()\n }\n\n private getObjectUuid(object: Object3D): string {\n // @ts-ignore\n return object.tag === 'entity' ? object.entityId : object.uuid\n }\n\n private handleGroundObject(type: MaterialSwitchType): void {\n if (this.objectsMap[type].has('ground')) {\n this.updateGroundMesh(type)\n }\n else {\n const groundMesh = this.createGroundMesh()\n injectToGround(groundMesh, type, this.uniforms)\n this.objectsMap[type].set('ground', groundMesh)\n this.add(groundMesh)\n }\n\n const groundObject = this.objectsMap[type].get('ground')\n\n if (groundObject)\n this.isGenPlane ? groundObject.userData.isVisible = true : groundObject.userData.isVisible = false\n }\n\n private handleGroundMatching(type: MaterialSwitchType) {\n if (type === SwitchType.Real)\n return\n\n let isMatch = false\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (GROUND_MATCHING.some(matching => child.name.includes(matching))) {\n if (this.isGenPlane)\n child.visible = false\n else\n child.visible = true\n\n isMatch = true\n }\n })\n })\n\n if (isMatch)\n this.handleGroundObject(type)\n }\n\n private async getMaterialByName(name: string) {\n const material = await SurfaceMaterial.getMaterial(name)\n\n return material\n }\n\n private async replaceMaterial(object: Mesh, materialName: string, type: string, limit?: SwitchType) {\n if (object.userData.isMatched)\n return\n\n if (materialName === 'MfresnelGlow') {\n if (type === SwitchType.Fresnel)\n object.material = finirheightTransitionEffect(object.material as Material, this.uniforms)\n }\n else if (materialName === 'Moriginal' || !materialName) {\n object.material = object.userData.originalMaterial\n }\n else if (materialName === 'MlowFinir') {\n if (type === SwitchType.Fresnel)\n object.material = finirlowEffect(object.material as Material, this.uniforms)\n }\n else {\n if (limit && limit !== type)\n return\n\n const material = await this.getMaterialByName(materialName)\n object.material = inject(material, type as 'Fresnel' | 'Frame' | 'Pure', this.uniforms) as MeshPhysicalMaterial\n }\n\n object.userData.isMatched = true\n }\n\n private resetMaterial(object: Mesh, type: MaterialSwitchType) {\n this[`generate${type}Object`](object)\n }\n\n private handleNameMatching(rule: RuleItem, type: MaterialSwitchType) {\n const { keys, material = 'Moriginal' } = rule\n let keysArray = []\n\n if (typeof keys === 'string')\n keysArray = [keys]\n else\n keysArray = keys\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n const mesh = child as Mesh\n\n if (keysArray.some(matching => mesh.name.includes(matching) || mesh?.parent?.name.includes(matching)))\n this.replaceMaterial(mesh, material, type, rule.limit)\n }\n })\n })\n }\n\n private handleSizeMatching(rule: RuleItem, type: MaterialSwitchType) {}\n\n private matchingStrategy = {\n matchSize: (rule: RuleItem, type: MaterialSwitchType) => this.handleSizeMatching(rule, type),\n matchName: (rule: RuleItem, type: MaterialSwitchType) => this.handleNameMatching(rule, type),\n }\n\n private handleMatch(type: MaterialSwitchType) {\n this.handleGroundMatching(type)\n\n if (type === SwitchType.Real)\n return\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n if (child.userData.isMatched)\n this.resetMaterial(child as Mesh, type)\n }\n\n child.userData.isMatched = false\n })\n })\n\n if (this.rules.length > 0) {\n this.rules.forEach((rule) => {\n this.matchingStrategy[rule.type](rule, type)\n })\n }\n }\n\n private handleNormalObject(object: Object3D, uuid: string): void {\n const realObject = object\n this.generateRealObject(realObject)\n this.objectsMap.Real.set(uuid, realObject)\n this.add(realObject)\n\n const fresnelObject = object.clone()\n this.generateFresnelObject(fresnelObject)\n this.objectsMap.Fresnel.set(uuid, fresnelObject)\n this.add(fresnelObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.objectsMap.Pure.set(uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.objectsMap.Frame.set(uuid, frameObject)\n this.add(frameObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n public removeObject(object: Object3D): void {\n return\n // 暂时注释:材质切换逻辑(2026.03.09)\n const uuid = this.getObjectUuid(object)\n this.objects.delete(uuid)\n\n Object.values(this.objectsMap).forEach((objectMap) => {\n const obj = objectMap.get(uuid)\n if (obj) {\n obj.removeFromParent()\n objectMap.delete(uuid)\n }\n })\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n private createGroundMesh(): Mesh {\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3())\n\n const plane = new PlaneGeometry(size.x, size.z)\n const material = new MeshBasicMaterial({ color: new Color('#fff') })\n const mesh = new Mesh(plane, material)\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(center.x, GROUND_Y_OFFSET, center.z)\n\n return mesh\n }\n\n private updateGroundMesh(type: MaterialSwitchType): void {\n if (!this.objectsMap[type].has('ground'))\n return\n\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3());\n\n (this.objectsMap[type].get('ground') as Mesh).geometry.dispose();\n (this.objectsMap[type].get('ground') as Mesh).geometry = new PlaneGeometry(size.x, size.z);\n (this.objectsMap[type].get('ground') as Mesh).position.set(center.x, GROUND_Y_OFFSET, center.z)\n }\n\n private get box3(): Box3 {\n const box3 = new Box3()\n this.objectsMap.Real.forEach((object) => {\n box3.expandByObject(object)\n })\n return box3\n }\n\n private getMaxSize(): number {\n const box3 = this.box3\n const vertices = this.getBoxVertices(box3)\n const maxDistance = this.calculateMaxDistance(vertices)\n return maxDistance * SIZE_SCALE_FACTOR\n }\n\n private getBoxVertices(box3: Box3): Vector3[] {\n return [\n new Vector3(box3.min.x, box3.min.y, box3.min.z),\n new Vector3(box3.min.x, box3.min.y, box3.max.z),\n new Vector3(box3.min.x, box3.max.y, box3.min.z),\n new Vector3(box3.min.x, box3.max.y, box3.max.z),\n new Vector3(box3.max.x, box3.min.y, box3.min.z),\n new Vector3(box3.max.x, box3.min.y, box3.max.z),\n new Vector3(box3.max.x, box3.max.y, box3.min.z),\n new Vector3(box3.max.x, box3.max.y, box3.max.z),\n ]\n }\n\n private calculateMaxDistance(vertices: Vector3[]): number {\n return vertices.reduce((max, vertex) => {\n const distance = this.center.distanceTo(vertex)\n return Math.max(max, distance)\n }, 0)\n }\n\n private generateFresnelObject(object: Object3D): void {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n private generateRealObject(object: Object3D): void {\n injectToRealFade(object, this.uniforms)\n }\n\n private generatePureObject(object: Object3D): void {\n injectToBaseWrite(object, this.uniforms)\n }\n\n private generateFrameObject(object: Object3D): void {\n injectToFrameFade(object, this.uniforms)\n }\n\n private updateVisibility(): void {\n this.hideAllObjects()\n this.showObjectsByType(SwitchType.Real)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","AmbientLight","Box3","Color","Mesh","MeshBasicMaterial","PlaneGeometry","Vector3","gsap","use","SurfaceMaterial","ObjectLayer","finirheightTransitionEffect","finirlowEffect","inject","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToGround","injectToRealFade","SwitchType","DEFAULT_CENTER","GROUND_Y_OFFSET","SIZE_SCALE_FACTOR","GROUND_MATCHING","MaterialSwitchSystem","_ObjectLayer","_super","options","sceneControl","_this","Real","Map","Frame","Pure","Fresnel","matchSize","rule","handleSizeMatching","matchName","handleNameMatching","_ref","duration","_ref$center","center","_ref$isApi","isApi","initializeUniforms","progress","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","time","height","initializeBuiltInShader","getMaterialAll","hideAllObjects","objectsMap","objectMap","object","visible","showObjectsByType","switchType","option","_option$rules","light","useScene","scene","getObjectByName","removeFromParent","add","intensity","rules","material","limit","handleApiOption","handleMatch","cleanupAnimations","prepareForSwitch","startSwitchAnimation","_ref2","_ref2$mode","mode","_ref2$duration","_ref2$center","_ref2$genPlane","genPlane","uniforms","fromArray","isGenPlane","_this$frame","_this$gsap","frame","kill","newType","groundObject","get","lastGroundObject","userData","isVisible","concat","_this2","lastType","onComplete","dispatchEvent","style","requestAnimationFrame","animateWithGSAP","animateWithFrame","to","ease","_beginBySpeed","_callee","distance","onFinish","_this3","currDistance","speed","acc","_callee$","_context","useframe","deltaTime","Math","min","_this3$frame","beginBySpeed","_x","_x2","getMaxSize","addObject","uuid","getObjectUuid","objects","set","handleNormalObject","updateVisibility","tag","entityId","handleGroundObject","has","updateGroundMesh","groundMesh","createGroundMesh","handleGroundMatching","_this4","isMatch","traverse","child","some","matching","includes","_getMaterialByName","_callee2","_callee2$","_context2","getMaterial","getMaterialByName","_x3","_replaceMaterial","_callee3","materialName","_callee3$","_context3","isMatched","originalMaterial","replaceMaterial","_x4","_x5","_x6","_x7","resetMaterial","_this5","_rule$material","keysArray","mesh","_mesh$parent","parent","_this6","matchingStrategy","realObject","generateRealObject","fresnelObject","clone","generateFresnelObject","pureObject","generatePureObject","frameObject","generateFrameObject","removeObject","delete","box","box3","size","getSize","getCenter","plane","x","z","color","rotation","PI","position","geometry","dispose","expandByObject","vertices","getBoxVertices","maxDistance","calculateMaxDistance","max","_this7","reduce","vertex","distanceTo"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import type { Material, MeshPhysicalMaterial, Object3D } from '@anov/3d-core'\nimport { AmbientLight, Box3, Color, Mesh, MeshBasicMaterial, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core'\nimport { SurfaceMaterial } from '../../'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport { finirheightTransitionEffect, finirlowEffect, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\nexport enum SwitchType {\n Real = 'Real',\n Fresnel = 'Fresnel',\n Frame = 'Frame',\n Pure = 'Pure',\n}\n\ninterface MaterialSwitchOption {\n duration?: number\n center?: Vector3\n isApi?: boolean\n}\n\ninterface MaterialSwitchUniforms {\n progress: { value: number }\n isFresnelFadeIn: { value: boolean }\n isRealFadeIn: { value: boolean }\n isPureFadeIn: { value: boolean }\n isFrameFadeIn: { value: boolean }\n maxSize: { value: number }\n center: { value: Vector3 }\n time: { value: number }\n isApi: { value: boolean }\n height: { value: number }\n}\n\ntype RuleItem = {\n type: string\n keys: string[] | string\n material: string\n limit?: SwitchType\n}\n\nconst DEFAULT_CENTER = new Vector3()\nconst GROUND_Y_OFFSET = -0.1\nconst SIZE_SCALE_FACTOR = 1.2\nconst GROUND_MATCHING = ['Ground', 'Road', 'Yard']\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends ObjectLayer implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = SwitchType.Real\n public originalMaterial = new Map()\n public uniforms: MaterialSwitchUniforms\n\n private objects = new Map<string, Object3D>()\n private objectsMap: Record<MaterialSwitchType, Map<string, Object3D>> = {\n Real: new Map(),\n Frame: new Map(),\n Pure: new Map(),\n Fresnel: new Map(),\n }\n\n private frame: ReturnType<typeof use.useframe> | null = null\n private gsap: gsap.core.Tween | null = null\n private duration: number | undefined\n private center: Vector3\n private isGenPlane = false\n private rules: RuleItem[] = []\n\n constructor(options?: MaterialSwitchOption, sceneControl?: any) {\n super(sceneControl)\n const { duration, center = DEFAULT_CENTER, isApi = false } = options ?? {}\n\n this.duration = duration\n this.center = center\n\n // 暂时注释:材质切换逻辑(2026.03.09)\n // this.uniforms = this.initializeUniforms()\n // this.uniforms.isApi.value = isApi\n // this.initializeBuiltInShader()\n\n // 暂时注释:材质切换逻辑(2026.03.09)\n // use.useframe(this.sceneControl, () => {\n // this.uniforms.time.value += 0.00018\n // this.uniforms.height.value -= 1\n // })\n }\n\n private initializeUniforms(): MaterialSwitchUniforms {\n return {\n progress: { value: 1.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: true },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n center: { value: this.center },\n time: { value: 0 },\n height: { value: 0 },\n isApi: { value: false },\n }\n }\n\n private initializeBuiltInShader() {\n SurfaceMaterial.getMaterialAll()\n }\n\n private hideAllObjects(): void {\n Object.values(this.objectsMap).forEach((objectMap) => {\n objectMap.forEach((object) => {\n object.visible = false\n })\n })\n }\n\n private showObjectsByType(type: MaterialSwitchType): void {\n this.objectsMap[type].forEach((object) => {\n object.visible = true\n })\n }\n\n public switchType(type: MaterialSwitchType,\n option?:\n {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n rules?: RuleItem[]\n }): void {\n if (this.type === type)\n return\n\n const light = use.useScene(this.sceneControl).scene.getObjectByName('FresnelLight')\n\n if (light)\n light.removeFromParent()\n\n if (type !== SwitchType.Real) {\n const light = new AmbientLight(0xFFFFFF, 1.5)\n light.name = 'FresnelLight'\n use.useScene(this.sceneControl).scene.add(light)\n\n if (type === SwitchType.Pure)\n light.intensity = 0.5\n }\n\n if (option?.rules?.length > 0) {\n this.rules = option.rules\n }\n else {\n this.rules = [{\n type: 'matchName',\n keys: [\n 'Tall',\n ],\n material: 'MfresnelGlow',\n },\n {\n type: 'matchName',\n keys: [\n 'Fence',\n ],\n material: 'Moriginal',\n },\n {\n type: 'matchName',\n keys: [\n 'Low',\n ],\n material: 'MlowFinir',\n },\n {\n type: 'matchName',\n keys: [\n 'Window',\n ],\n material: 'Fresnel_Transparent',\n limit: SwitchType.Fresnel,\n }]\n }\n\n this.handleApiOption(option)\n this.handleMatch(type)\n this.cleanupAnimations()\n this.prepareForSwitch(type)\n this.startSwitchAnimation(type)\n\n this.type = type\n }\n\n private handleApiOption(option: {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n }): void {\n const { mode = 'auto', duration = 2, center = [0, 0, 0], genPlane = true } = option ?? {}\n if (mode === 'auto')\n this.duration = undefined\n else\n this.duration = duration\n\n this.uniforms.center.value = new Vector3().fromArray(center)\n this.isGenPlane = genPlane\n }\n\n private cleanupAnimations(): void {\n this.frame?.()\n this.gsap?.kill()\n }\n\n private prepareForSwitch(newType: MaterialSwitchType): void {\n this.hideAllObjects()\n this.showObjectsByType(newType)\n this.showObjectsByType(this.type)\n\n const groundObject = this.objectsMap[newType].get('ground')\n const lastGroundObject = this.objectsMap[this.type].get('ground')\n\n if (groundObject)\n groundObject.visible = this.isGenPlane\n if (lastGroundObject)\n lastGroundObject.visible = lastGroundObject.userData.isVisible\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${newType}FadeIn`].value = true\n }\n\n private startSwitchAnimation(newType: MaterialSwitchType): void {\n const lastType = this.type\n\n const onComplete = () => {\n this.objectsMap[lastType].forEach((object) => {\n object.visible = false\n })\n this.dispatchEvent({ type: 'onStyleChanged', style: newType } as any)\n }\n\n requestAnimationFrame(() => {\n if (this.duration)\n this.animateWithGSAP(onComplete)\n else\n this.animateWithFrame(onComplete)\n })\n }\n\n private animateWithGSAP(onComplete: () => void): void {\n this.gsap = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: this.duration,\n ease: 'linear',\n onComplete,\n })\n }\n\n private async beginBySpeed(distance: number, onFinish?: () => void): Promise<void> {\n if (distance === 0)\n distance = 0.01\n\n let currDistance = 0\n let speed = 0\n let acc = 0\n\n this.frame = use.useframe(this.sceneControl, (deltaTime) => {\n acc += distance * deltaTime\n speed += acc * deltaTime\n currDistance += speed * deltaTime\n\n this.uniforms.progress.value = Math.min(1, currDistance / distance)\n\n if (currDistance >= distance) {\n this.frame?.()\n onFinish?.()\n }\n })\n }\n\n private animateWithFrame(onComplete: () => void): void {\n this.beginBySpeed(this.getMaxSize(), onComplete)\n }\n\n public addObject(object: Object3D): void {\n return\n // 暂时注释:材质切换逻辑(2026.03.09)\n this.switchType(SwitchType.Real)\n const uuid = this.getObjectUuid(object)\n this.objects.set(uuid, object)\n\n this.handleNormalObject(object, uuid)\n this.updateVisibility()\n }\n\n private getObjectUuid(object: Object3D): string {\n // @ts-ignore\n return object.tag === 'entity' ? object.entityId : object.uuid\n }\n\n private handleGroundObject(type: MaterialSwitchType): void {\n if (this.objectsMap[type].has('ground')) {\n this.updateGroundMesh(type)\n }\n else {\n const groundMesh = this.createGroundMesh()\n injectToGround(groundMesh, type, this.uniforms)\n this.objectsMap[type].set('ground', groundMesh)\n this.add(groundMesh)\n }\n\n const groundObject = this.objectsMap[type].get('ground')\n\n if (groundObject)\n this.isGenPlane ? groundObject.userData.isVisible = true : groundObject.userData.isVisible = false\n }\n\n private handleGroundMatching(type: MaterialSwitchType) {\n if (type === SwitchType.Real)\n return\n\n let isMatch = false\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (GROUND_MATCHING.some(matching => child.name.includes(matching))) {\n if (this.isGenPlane)\n child.visible = false\n else\n child.visible = true\n\n isMatch = true\n }\n })\n })\n\n if (isMatch)\n this.handleGroundObject(type)\n }\n\n private async getMaterialByName(name: string) {\n const material = await SurfaceMaterial.getMaterial(name)\n\n return material\n }\n\n private async replaceMaterial(object: Mesh, materialName: string, type: string, limit?: SwitchType) {\n if (object.userData.isMatched)\n return\n\n if (materialName === 'MfresnelGlow') {\n if (type === SwitchType.Fresnel)\n object.material = finirheightTransitionEffect(object.material as Material, this.uniforms)\n }\n else if (materialName === 'Moriginal' || !materialName) {\n object.material = object.userData.originalMaterial\n }\n else if (materialName === 'MlowFinir') {\n if (type === SwitchType.Fresnel)\n object.material = finirlowEffect(object.material as Material, this.uniforms)\n }\n else {\n if (limit && limit !== type)\n return\n\n const material = await this.getMaterialByName(materialName)\n object.material = inject(material, type as 'Fresnel' | 'Frame' | 'Pure', this.uniforms) as MeshPhysicalMaterial\n }\n\n object.userData.isMatched = true\n }\n\n private resetMaterial(object: Mesh, type: MaterialSwitchType) {\n this[`generate${type}Object`](object)\n }\n\n private handleNameMatching(rule: RuleItem, type: MaterialSwitchType) {\n const { keys, material = 'Moriginal' } = rule\n let keysArray = []\n\n if (typeof keys === 'string')\n keysArray = [keys]\n else\n keysArray = keys\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n const mesh = child as Mesh\n\n if (keysArray.some(matching => mesh.name.includes(matching) || mesh?.parent?.name.includes(matching)))\n this.replaceMaterial(mesh, material, type, rule.limit)\n }\n })\n })\n }\n\n private handleSizeMatching(rule: RuleItem, type: MaterialSwitchType) {}\n\n private matchingStrategy = {\n matchSize: (rule: RuleItem, type: MaterialSwitchType) => this.handleSizeMatching(rule, type),\n matchName: (rule: RuleItem, type: MaterialSwitchType) => this.handleNameMatching(rule, type),\n }\n\n private handleMatch(type: MaterialSwitchType) {\n this.handleGroundMatching(type)\n\n if (type === SwitchType.Real)\n return\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n if (child.userData.isMatched)\n this.resetMaterial(child as Mesh, type)\n }\n\n child.userData.isMatched = false\n })\n })\n\n if (this.rules.length > 0) {\n this.rules.forEach((rule) => {\n this.matchingStrategy[rule.type](rule, type)\n })\n }\n }\n\n // fixme: 如果是 model 会触发一次多余的删除,因为 gltf 加载的时候已经添加在场景中了,\n // 此处,再一次添加进入了场景,thrrejs 在 add 之前会删除原来的模型\n private handleNormalObject(object: Object3D, uuid: string): void {\n const realObject = object\n this.generateRealObject(realObject)\n this.objectsMap.Real.set(uuid, realObject)\n this.add(realObject)\n\n const fresnelObject = object.clone()\n this.generateFresnelObject(fresnelObject)\n this.objectsMap.Fresnel.set(uuid, fresnelObject)\n this.add(fresnelObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.objectsMap.Pure.set(uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.objectsMap.Frame.set(uuid, frameObject)\n this.add(frameObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n public removeObject(object: Object3D): void {\n return\n // 暂时注释:材质切换逻辑(2026.03.09)\n const uuid = this.getObjectUuid(object)\n this.objects.delete(uuid)\n\n Object.values(this.objectsMap).forEach((objectMap) => {\n const obj = objectMap.get(uuid)\n if (obj) {\n obj.removeFromParent()\n objectMap.delete(uuid)\n }\n })\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n private createGroundMesh(): Mesh {\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3())\n\n const plane = new PlaneGeometry(size.x, size.z)\n const material = new MeshBasicMaterial({ color: new Color('#fff') })\n const mesh = new Mesh(plane, material)\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(center.x, GROUND_Y_OFFSET, center.z)\n\n return mesh\n }\n\n private updateGroundMesh(type: MaterialSwitchType): void {\n if (!this.objectsMap[type].has('ground'))\n return\n\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3());\n\n (this.objectsMap[type].get('ground') as Mesh).geometry.dispose();\n (this.objectsMap[type].get('ground') as Mesh).geometry = new PlaneGeometry(size.x, size.z);\n (this.objectsMap[type].get('ground') as Mesh).position.set(center.x, GROUND_Y_OFFSET, center.z)\n }\n\n private get box3(): Box3 {\n const box3 = new Box3()\n this.objectsMap.Real.forEach((object) => {\n box3.expandByObject(object)\n })\n return box3\n }\n\n private getMaxSize(): number {\n const box3 = this.box3\n const vertices = this.getBoxVertices(box3)\n const maxDistance = this.calculateMaxDistance(vertices)\n return maxDistance * SIZE_SCALE_FACTOR\n }\n\n private getBoxVertices(box3: Box3): Vector3[] {\n return [\n new Vector3(box3.min.x, box3.min.y, box3.min.z),\n new Vector3(box3.min.x, box3.min.y, box3.max.z),\n new Vector3(box3.min.x, box3.max.y, box3.min.z),\n new Vector3(box3.min.x, box3.max.y, box3.max.z),\n new Vector3(box3.max.x, box3.min.y, box3.min.z),\n new Vector3(box3.max.x, box3.min.y, box3.max.z),\n new Vector3(box3.max.x, box3.max.y, box3.min.z),\n new Vector3(box3.max.x, box3.max.y, box3.max.z),\n ]\n }\n\n private calculateMaxDistance(vertices: Vector3[]): number {\n return vertices.reduce((max, vertex) => {\n const distance = this.center.distanceTo(vertex)\n return Math.max(max, distance)\n }, 0)\n }\n\n private generateFresnelObject(object: Object3D): void {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n private generateRealObject(object: Object3D): void {\n injectToRealFade(object, this.uniforms)\n }\n\n private generatePureObject(object: Object3D): void {\n injectToBaseWrite(object, this.uniforms)\n }\n\n private generateFrameObject(object: Object3D): void {\n injectToFrameFade(object, this.uniforms)\n }\n\n private updateVisibility(): void {\n this.hideAllObjects()\n this.showObjectsByType(SwitchType.Real)\n }\n}\n"],"mappings":";+CACA,qJAAAA,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,EAAAC,CAAA,GAAAH,CAAA,CAAAI,cAAA,EAAAC,CAAA,GAAAJ,MAAA,CAAAK,cAAA,cAAAP,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAO,KAAA,KAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,kBAAAC,CAAA,GAAAJ,CAAA,CAAAK,aAAA,uBAAAC,CAAA,GAAAN,CAAA,CAAAO,WAAA,8BAAAC,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAC,MAAA,CAAAK,cAAA,CAAAP,CAAA,EAAAD,CAAA,IAAAS,KAAA,EAAAP,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAApB,CAAA,CAAAD,CAAA,WAAAkB,MAAA,mBAAAjB,CAAA,IAAAiB,MAAA,YAAAA,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAoB,KAAArB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAK,CAAA,GAAAV,CAAA,IAAAA,CAAA,CAAAI,SAAA,YAAAmB,SAAA,GAAAvB,CAAA,GAAAuB,SAAA,EAAAX,CAAA,GAAAT,MAAA,CAAAqB,MAAA,CAAAd,CAAA,CAAAN,SAAA,GAAAU,CAAA,OAAAW,OAAA,CAAApB,CAAA,gBAAAE,CAAA,CAAAK,CAAA,eAAAH,KAAA,EAAAiB,gBAAA,CAAAzB,CAAA,EAAAC,CAAA,EAAAY,CAAA,MAAAF,CAAA,aAAAe,SAAA1B,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAA0B,IAAA,YAAAC,GAAA,EAAA5B,CAAA,CAAA6B,IAAA,CAAA9B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAA2B,IAAA,WAAAC,GAAA,EAAA5B,CAAA,QAAAD,CAAA,CAAAsB,IAAA,GAAAA,IAAA,MAAAS,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAZ,UAAA,cAAAa,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAApB,MAAA,CAAAoB,CAAA,EAAA1B,CAAA,qCAAA2B,CAAA,GAAApC,MAAA,CAAAqC,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAvC,CAAA,IAAAG,CAAA,CAAAyB,IAAA,CAAAW,CAAA,EAAA7B,CAAA,MAAA0B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAjC,SAAA,GAAAmB,SAAA,CAAAnB,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAc,CAAA,YAAAM,sBAAA3C,CAAA,gCAAA4C,OAAA,WAAA7C,CAAA,IAAAkB,MAAA,CAAAjB,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAA6C,OAAA,CAAA9C,CAAA,EAAAC,CAAA,sBAAA8C,cAAA9C,CAAA,EAAAD,CAAA,aAAAgD,OAAA9C,CAAA,EAAAK,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAA1B,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAM,CAAA,mBAAAO,CAAA,CAAAc,IAAA,QAAAZ,CAAA,GAAAF,CAAA,CAAAe,GAAA,EAAAE,CAAA,GAAAf,CAAA,CAAAP,KAAA,SAAAsB,CAAA,gBAAAkB,OAAA,CAAAlB,CAAA,KAAA1B,CAAA,CAAAyB,IAAA,CAAAC,CAAA,eAAA/B,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,CAAAoB,OAAA,EAAAC,IAAA,WAAAnD,CAAA,IAAA+C,MAAA,SAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,gBAAAX,CAAA,IAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,QAAAZ,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,EAAAqB,IAAA,WAAAnD,CAAA,IAAAe,CAAA,CAAAP,KAAA,GAAAR,CAAA,EAAAS,CAAA,CAAAM,CAAA,gBAAAf,CAAA,WAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAe,GAAA,SAAA3B,CAAA,EAAAK,CAAA,oBAAAE,KAAA,WAAAA,MAAAR,CAAA,EAAAI,CAAA,aAAAgD,2BAAA,eAAArD,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAA8C,MAAA,CAAA/C,CAAA,EAAAI,CAAA,EAAAL,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAAkD,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAA3B,iBAAA1B,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAE,CAAA,GAAAwB,CAAA,mBAAArB,CAAA,EAAAE,CAAA,QAAAL,CAAA,KAAA0B,CAAA,YAAAqB,KAAA,sCAAA/C,CAAA,KAAA2B,CAAA,oBAAAxB,CAAA,QAAAE,CAAA,WAAAH,KAAA,EAAAR,CAAA,EAAAsD,IAAA,eAAAlD,CAAA,CAAAmD,MAAA,GAAA9C,CAAA,EAAAL,CAAA,CAAAwB,GAAA,GAAAjB,CAAA,UAAAE,CAAA,GAAAT,CAAA,CAAAoD,QAAA,MAAA3C,CAAA,QAAAE,CAAA,GAAA0C,mBAAA,CAAA5C,CAAA,EAAAT,CAAA,OAAAW,CAAA,QAAAA,CAAA,KAAAmB,CAAA,mBAAAnB,CAAA,qBAAAX,CAAA,CAAAmD,MAAA,EAAAnD,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAuD,KAAA,GAAAvD,CAAA,CAAAwB,GAAA,sBAAAxB,CAAA,CAAAmD,MAAA,QAAAjD,CAAA,KAAAwB,CAAA,QAAAxB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAwB,GAAA,EAAAxB,CAAA,CAAAwD,iBAAA,CAAAxD,CAAA,CAAAwB,GAAA,uBAAAxB,CAAA,CAAAmD,MAAA,IAAAnD,CAAA,CAAAyD,MAAA,WAAAzD,CAAA,CAAAwB,GAAA,GAAAtB,CAAA,GAAA0B,CAAA,MAAAK,CAAA,GAAAX,QAAA,CAAA3B,CAAA,EAAAE,CAAA,EAAAG,CAAA,oBAAAiC,CAAA,CAAAV,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAkD,IAAA,GAAArB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA1B,KAAA,EAAA6B,CAAA,CAAAT,GAAA,EAAA0B,IAAA,EAAAlD,CAAA,CAAAkD,IAAA,kBAAAjB,CAAA,CAAAV,IAAA,KAAArB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAmD,MAAA,YAAAnD,CAAA,CAAAwB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA6B,oBAAA1D,CAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAH,CAAA,CAAAsD,MAAA,EAAAjD,CAAA,GAAAP,CAAA,CAAAa,QAAA,CAAAR,CAAA,OAAAE,CAAA,KAAAN,CAAA,SAAAC,CAAA,CAAAuD,QAAA,qBAAApD,CAAA,IAAAL,CAAA,CAAAa,QAAA,CAAAkD,MAAA,KAAA7D,CAAA,CAAAsD,MAAA,aAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,EAAAyD,mBAAA,CAAA1D,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAsD,MAAA,kBAAAnD,CAAA,KAAAH,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,uCAAA3D,CAAA,iBAAA8B,CAAA,MAAAzB,CAAA,GAAAiB,QAAA,CAAApB,CAAA,EAAAP,CAAA,CAAAa,QAAA,EAAAX,CAAA,CAAA2B,GAAA,mBAAAnB,CAAA,CAAAkB,IAAA,SAAA1B,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,GAAAnB,CAAA,CAAAmB,GAAA,EAAA3B,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,MAAAvB,CAAA,GAAAF,CAAA,CAAAmB,GAAA,SAAAjB,CAAA,GAAAA,CAAA,CAAA2C,IAAA,IAAArD,CAAA,CAAAF,CAAA,CAAAiE,UAAA,IAAArD,CAAA,CAAAH,KAAA,EAAAP,CAAA,CAAAgE,IAAA,GAAAlE,CAAA,CAAAmE,OAAA,eAAAjE,CAAA,CAAAsD,MAAA,KAAAtD,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,GAAAC,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,IAAAvB,CAAA,IAAAV,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,sCAAA9D,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,cAAAiC,aAAAnE,CAAA,QAAAD,CAAA,KAAAqE,MAAA,EAAApE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAAsE,QAAA,GAAArE,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAuE,UAAA,GAAAtE,CAAA,KAAAD,CAAA,CAAAwE,QAAA,GAAAvE,CAAA,WAAAwE,UAAA,CAAAC,IAAA,CAAA1E,CAAA,cAAA2E,cAAA1E,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAA2E,UAAA,QAAA5E,CAAA,CAAA4B,IAAA,oBAAA5B,CAAA,CAAA6B,GAAA,EAAA5B,CAAA,CAAA2E,UAAA,GAAA5E,CAAA,aAAAyB,QAAAxB,CAAA,SAAAwE,UAAA,MAAAJ,MAAA,aAAApE,CAAA,CAAA4C,OAAA,CAAAuB,YAAA,cAAAS,KAAA,iBAAAnC,OAAA1C,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAY,CAAA,OAAAV,CAAA,SAAAA,CAAA,CAAA4B,IAAA,CAAA9B,CAAA,4BAAAA,CAAA,CAAAkE,IAAA,SAAAlE,CAAA,OAAA8E,KAAA,CAAA9E,CAAA,CAAA+E,MAAA,SAAAxE,CAAA,OAAAG,CAAA,YAAAwD,KAAA,aAAA3D,CAAA,GAAAP,CAAA,CAAA+E,MAAA,OAAA1E,CAAA,CAAAyB,IAAA,CAAA9B,CAAA,EAAAO,CAAA,UAAA2D,IAAA,CAAAzD,KAAA,GAAAT,CAAA,CAAAO,CAAA,GAAA2D,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAxD,CAAA,CAAAwD,IAAA,GAAAxD,CAAA,gBAAAsD,SAAA,CAAAf,OAAA,CAAAjD,CAAA,kCAAAoC,iBAAA,CAAAhC,SAAA,GAAAiC,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAlC,KAAA,EAAA4B,0BAAA,EAAAjB,YAAA,SAAAb,CAAA,CAAA8B,0BAAA,mBAAA5B,KAAA,EAAA2B,iBAAA,EAAAhB,YAAA,SAAAgB,iBAAA,CAAA4C,WAAA,GAAA9D,MAAA,CAAAmB,0BAAA,EAAArB,CAAA,wBAAAhB,CAAA,CAAAiF,mBAAA,aAAAhF,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAiF,WAAA,WAAAlF,CAAA,KAAAA,CAAA,KAAAoC,iBAAA,6BAAApC,CAAA,CAAAgF,WAAA,IAAAhF,CAAA,CAAAmF,IAAA,OAAAnF,CAAA,CAAAoF,IAAA,aAAAnF,CAAA,WAAAE,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAkF,cAAA,CAAApF,CAAA,EAAAoC,0BAAA,KAAApC,CAAA,CAAAqF,SAAA,GAAAjD,0BAAA,EAAAnB,MAAA,CAAAjB,CAAA,EAAAe,CAAA,yBAAAf,CAAA,CAAAG,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAmB,CAAA,GAAA1C,CAAA,KAAAD,CAAA,CAAAuF,KAAA,aAAAtF,CAAA,aAAAkD,OAAA,EAAAlD,CAAA,OAAA2C,qBAAA,CAAAG,aAAA,CAAA3C,SAAA,GAAAc,MAAA,CAAA6B,aAAA,CAAA3C,SAAA,EAAAU,CAAA,iCAAAd,CAAA,CAAA+C,aAAA,GAAAA,aAAA,EAAA/C,CAAA,CAAAwF,KAAA,aAAAvF,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,EAAAG,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAA+E,OAAA,OAAA7E,CAAA,OAAAmC,aAAA,CAAAzB,IAAA,CAAArB,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,GAAAG,CAAA,UAAAV,CAAA,CAAAiF,mBAAA,CAAA/E,CAAA,IAAAU,CAAA,GAAAA,CAAA,CAAAsD,IAAA,GAAAd,IAAA,WAAAnD,CAAA,WAAAA,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAQ,KAAA,GAAAG,CAAA,CAAAsD,IAAA,WAAAtB,qBAAA,CAAAD,CAAA,GAAAzB,MAAA,CAAAyB,CAAA,EAAA3B,CAAA,gBAAAE,MAAA,CAAAyB,CAAA,EAAA/B,CAAA,iCAAAM,MAAA,CAAAyB,CAAA,6DAAA3C,CAAA,CAAA0F,IAAA,aAAAzF,CAAA,QAAAD,CAAA,GAAAG,MAAA,CAAAF,CAAA,GAAAC,CAAA,gBAAAG,CAAA,IAAAL,CAAA,EAAAE,CAAA,CAAAwE,IAAA,CAAArE,CAAA,UAAAH,CAAA,CAAAyF,OAAA,aAAAzB,KAAA,WAAAhE,CAAA,CAAA6E,MAAA,SAAA9E,CAAA,GAAAC,CAAA,CAAA0F,GAAA,QAAA3F,CAAA,IAAAD,CAAA,SAAAkE,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAlE,CAAA,CAAA0C,MAAA,GAAAA,MAAA,EAAAjB,OAAA,CAAArB,SAAA,KAAA8E,WAAA,EAAAzD,OAAA,EAAAoD,KAAA,WAAAA,MAAA7E,CAAA,aAAA6F,IAAA,WAAA3B,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAA3D,CAAA,OAAAsD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAA3B,GAAA,GAAA5B,CAAA,OAAAwE,UAAA,CAAA5B,OAAA,CAAA8B,aAAA,IAAA3E,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA4F,MAAA,OAAAzF,CAAA,CAAAyB,IAAA,OAAA5B,CAAA,MAAA4E,KAAA,EAAA5E,CAAA,CAAA6F,KAAA,cAAA7F,CAAA,IAAAD,CAAA,MAAA+F,IAAA,WAAAA,KAAA,SAAAzC,IAAA,WAAAtD,CAAA,QAAAwE,UAAA,IAAAG,UAAA,kBAAA3E,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,cAAAoE,IAAA,KAAApC,iBAAA,WAAAA,kBAAA7D,CAAA,aAAAuD,IAAA,QAAAvD,CAAA,MAAAE,CAAA,kBAAAgG,OAAA7F,CAAA,EAAAE,CAAA,WAAAK,CAAA,CAAAgB,IAAA,YAAAhB,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAE,CAAA,CAAAgE,IAAA,GAAA7D,CAAA,EAAAE,CAAA,KAAAL,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,KAAAM,CAAA,aAAAA,CAAA,QAAAkE,UAAA,CAAAM,MAAA,MAAAxE,CAAA,SAAAA,CAAA,QAAAG,CAAA,QAAA+D,UAAA,CAAAlE,CAAA,GAAAK,CAAA,GAAAF,CAAA,CAAAkE,UAAA,iBAAAlE,CAAA,CAAA2D,MAAA,SAAA6B,MAAA,aAAAxF,CAAA,CAAA2D,MAAA,SAAAwB,IAAA,QAAA/E,CAAA,GAAAT,CAAA,CAAAyB,IAAA,CAAApB,CAAA,eAAAM,CAAA,GAAAX,CAAA,CAAAyB,IAAA,CAAApB,CAAA,qBAAAI,CAAA,IAAAE,CAAA,aAAA6E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,gBAAAuB,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,cAAAzD,CAAA,aAAA+E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,qBAAAtD,CAAA,YAAAsC,KAAA,qDAAAuC,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,YAAAT,MAAA,WAAAA,OAAA7D,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAuE,UAAA,CAAAM,MAAA,MAAA7E,CAAA,SAAAA,CAAA,QAAAK,CAAA,QAAAkE,UAAA,CAAAvE,CAAA,OAAAK,CAAA,CAAA8D,MAAA,SAAAwB,IAAA,IAAAxF,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,wBAAAsF,IAAA,GAAAtF,CAAA,CAAAgE,UAAA,QAAA7D,CAAA,GAAAH,CAAA,aAAAG,CAAA,iBAAAT,CAAA,mBAAAA,CAAA,KAAAS,CAAA,CAAA2D,MAAA,IAAArE,CAAA,IAAAA,CAAA,IAAAU,CAAA,CAAA6D,UAAA,KAAA7D,CAAA,cAAAE,CAAA,GAAAF,CAAA,GAAAA,CAAA,CAAAkE,UAAA,cAAAhE,CAAA,CAAAgB,IAAA,GAAA3B,CAAA,EAAAW,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAU,CAAA,SAAA8C,MAAA,gBAAAU,IAAA,GAAAxD,CAAA,CAAA6D,UAAA,EAAApC,CAAA,SAAAgE,QAAA,CAAAvF,CAAA,MAAAuF,QAAA,WAAAA,SAAAlG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,qBAAA5B,CAAA,CAAA2B,IAAA,mBAAA3B,CAAA,CAAA2B,IAAA,QAAAsC,IAAA,GAAAjE,CAAA,CAAA4B,GAAA,gBAAA5B,CAAA,CAAA2B,IAAA,SAAAqE,IAAA,QAAApE,GAAA,GAAA5B,CAAA,CAAA4B,GAAA,OAAA2B,MAAA,kBAAAU,IAAA,yBAAAjE,CAAA,CAAA2B,IAAA,IAAA5B,CAAA,UAAAkE,IAAA,GAAAlE,CAAA,GAAAmC,CAAA,KAAAiE,MAAA,WAAAA,OAAAnG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAqE,UAAA,KAAAtE,CAAA,cAAAkG,QAAA,CAAAjG,CAAA,CAAA0E,UAAA,EAAA1E,CAAA,CAAAsE,QAAA,GAAAG,aAAA,CAAAzE,CAAA,GAAAiC,CAAA,OAAAkE,KAAA,WAAAC,OAAArG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAmE,MAAA,KAAApE,CAAA,QAAAI,CAAA,GAAAH,CAAA,CAAA0E,UAAA,kBAAAvE,CAAA,CAAAuB,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAwB,GAAA,EAAA8C,aAAA,CAAAzE,CAAA,YAAAK,CAAA,gBAAA+C,KAAA,8BAAAiD,aAAA,WAAAA,cAAAvG,CAAA,EAAAE,CAAA,EAAAG,CAAA,gBAAAoD,QAAA,KAAA5C,QAAA,EAAA6B,MAAA,CAAA1C,CAAA,GAAAiE,UAAA,EAAA/D,CAAA,EAAAiE,OAAA,EAAA9D,CAAA,oBAAAmD,MAAA,UAAA3B,GAAA,GAAA5B,CAAA,GAAAkC,CAAA,OAAAnC,CAAA;AAAA,SAAAwG,mBAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAhF,GAAA,cAAAiF,IAAA,GAAAL,GAAA,CAAAI,GAAA,EAAAhF,GAAA,OAAApB,KAAA,GAAAqG,IAAA,CAAArG,KAAA,WAAAsG,KAAA,IAAAL,MAAA,CAAAK,KAAA,iBAAAD,IAAA,CAAAvD,IAAA,IAAAL,OAAA,CAAAzC,KAAA,YAAAgF,OAAA,CAAAvC,OAAA,CAAAzC,KAAA,EAAA2C,IAAA,CAAAuD,KAAA,EAAAC,MAAA;AAAA,SAAAI,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAA3B,OAAA,WAAAvC,OAAA,EAAAwD,MAAA,QAAAD,GAAA,GAAAQ,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAR,MAAAlG,KAAA,IAAA+F,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAnG,KAAA,cAAAmG,OAAAU,GAAA,IAAAd,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAU,GAAA,KAAAX,KAAA,CAAAY,SAAA;AAAA,SAAAC,gBAAAC,QAAA,EAAAC,WAAA,UAAAD,QAAA,YAAAC,WAAA,eAAA1D,SAAA;AAAA,SAAA2D,kBAAAC,MAAA,EAAAC,KAAA,aAAAnH,CAAA,MAAAA,CAAA,GAAAmH,KAAA,CAAA9C,MAAA,EAAArE,CAAA,UAAAoH,UAAA,GAAAD,KAAA,CAAAnH,CAAA,GAAAoH,UAAA,CAAA3G,UAAA,GAAA2G,UAAA,CAAA3G,UAAA,WAAA2G,UAAA,CAAA1G,YAAA,wBAAA0G,UAAA,EAAAA,UAAA,CAAAzG,QAAA,SAAAlB,MAAA,CAAAK,cAAA,CAAAoH,MAAA,EAAAG,cAAA,CAAAD,UAAA,CAAAjB,GAAA,GAAAiB,UAAA;AAAA,SAAAE,aAAAN,WAAA,EAAAO,UAAA,EAAAC,WAAA,QAAAD,UAAA,EAAAN,iBAAA,CAAAD,WAAA,CAAAtH,SAAA,EAAA6H,UAAA,OAAAC,WAAA,EAAAP,iBAAA,CAAAD,WAAA,EAAAQ,WAAA,GAAA/H,MAAA,CAAAK,cAAA,CAAAkH,WAAA,iBAAArG,QAAA,mBAAAqG,WAAA;AAAA,SAAAS,UAAAC,QAAA,EAAAC,UAAA,eAAAA,UAAA,mBAAAA,UAAA,uBAAArE,SAAA,0DAAAoE,QAAA,CAAAhI,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAA6G,UAAA,IAAAA,UAAA,CAAAjI,SAAA,IAAA8E,WAAA,IAAAzE,KAAA,EAAA2H,QAAA,EAAA/G,QAAA,QAAAD,YAAA,aAAAjB,MAAA,CAAAK,cAAA,CAAA4H,QAAA,iBAAA/G,QAAA,gBAAAgH,UAAA,EAAAC,eAAA,CAAAF,QAAA,EAAAC,UAAA;AAAA,SAAAC,gBAAA/H,CAAA,EAAA+B,CAAA,IAAAgG,eAAA,GAAAnI,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAkF,cAAA,CAAAkD,IAAA,cAAAD,gBAAA/H,CAAA,EAAA+B,CAAA,IAAA/B,CAAA,CAAA+E,SAAA,GAAAhD,CAAA,SAAA/B,CAAA,YAAA+H,eAAA,CAAA/H,CAAA,EAAA+B,CAAA;AAAA,SAAAkG,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,GAAAC,eAAA,CAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,GAAAF,eAAA,OAAA5D,WAAA,EAAA6D,MAAA,GAAAE,OAAA,CAAAC,SAAA,CAAAL,KAAA,EAAAzB,SAAA,EAAA4B,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAxB,KAAA,OAAAD,SAAA,YAAA+B,0BAAA,OAAAJ,MAAA;AAAA,SAAAI,2BAAAjC,IAAA,EAAApF,IAAA,QAAAA,IAAA,KAAAmB,OAAA,CAAAnB,IAAA,yBAAAA,IAAA,2BAAAA,IAAA,aAAAA,IAAA,yBAAAkC,SAAA,uEAAAoF,sBAAA,CAAAlC,IAAA;AAAA,SAAAkC,uBAAAlC,IAAA,QAAAA,IAAA,yBAAAmC,cAAA,wEAAAnC,IAAA;AAAA,SAAAyB,0BAAA,eAAAM,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAApJ,SAAA,CAAAqJ,OAAA,CAAA3H,IAAA,CAAAmH,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAxJ,CAAA;AAAA,SAAA8I,gBAAAvI,CAAA,IAAAuI,eAAA,GAAA3I,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAqC,cAAA,CAAA+F,IAAA,cAAAO,gBAAAvI,CAAA,WAAAA,CAAA,CAAA+E,SAAA,IAAAnF,MAAA,CAAAqC,cAAA,CAAAjC,CAAA,aAAAuI,eAAA,CAAAvI,CAAA;AAAA,SAAAmJ,gBAAAC,GAAA,EAAA9C,GAAA,EAAApG,KAAA,IAAAoG,GAAA,GAAAkB,cAAA,CAAAlB,GAAA,OAAAA,GAAA,IAAA8C,GAAA,IAAAxJ,MAAA,CAAAK,cAAA,CAAAmJ,GAAA,EAAA9C,GAAA,IAAApG,KAAA,EAAAA,KAAA,EAAAU,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAsI,GAAA,CAAA9C,GAAA,IAAApG,KAAA,WAAAkJ,GAAA;AAAA,SAAA5B,eAAA9H,CAAA,QAAAS,CAAA,GAAAkJ,YAAA,CAAA3J,CAAA,gCAAAgD,OAAA,CAAAvC,CAAA,IAAAA,CAAA,GAAAmJ,MAAA,CAAAnJ,CAAA;AAAA,SAAAkJ,aAAA3J,CAAA,EAAAC,CAAA,oBAAA+C,OAAA,CAAAhD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAU,MAAA,CAAAmJ,WAAA,kBAAA9J,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAA8B,IAAA,CAAA7B,CAAA,EAAAC,CAAA,gCAAA+C,OAAA,CAAAvC,CAAA,UAAAA,CAAA,YAAAsD,SAAA,yEAAA9D,CAAA,GAAA2J,MAAA,GAAAE,MAAA,EAAA9J,CAAA;AAAA,SAAS+J,YAAY,EAAEC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,OAAO,EAAEC,IAAI,EAAEC,GAAG,QAAQ,eAAe;AACrH,SAASC,eAAe;AACxB,OAAOC,WAAW;AAClB,SAASC,2BAA2B,EAAEC,cAAc,EAAEC,MAAM,EAAEC,iBAAiB,EAAEC,qBAAqB,EAAEC,iBAAiB,EAAEC,cAAc,EAAEC,gBAAgB;AAK3J,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAiCtB,IAAMC,cAAc,GAAG,IAAId,OAAO,CAAC,CAAC;AACpC,IAAMe,eAAe,GAAG,CAAC,GAAG;AAC5B,IAAMC,iBAAiB,GAAG,GAAG;AAC7B,IAAMC,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;;AAElD;AACA;AACA;AACA,WAAaC,oBAAoB,0BAAAC,YAAA;EAAAtD,SAAA,CAAAqD,oBAAA,EAAAC,YAAA;EAAA,IAAAC,MAAA,GAAAlD,YAAA,CAAAgD,oBAAA;EAoB/B,SAAAA,qBAAYG,OAA8B,EAAEC,YAAkB,EAAE;IAAA,IAAAC,KAAA;IAAArE,eAAA,OAAAgE,oBAAA;IAC9DK,KAAA,GAAAH,MAAA,CAAA5J,IAAA,OAAM8J,YAAY;IAAClC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,WApBaV,UAAU,CAACW,IAAI;IAAApC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,uBACvB,IAAIE,GAAG,CAAC,CAAC;IAAArC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA;IAAAnC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,cAGjB,IAAIE,GAAG,CAAmB,CAAC;IAAArC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,iBAC2B;MACtEC,IAAI,EAAE,IAAIC,GAAG,CAAC,CAAC;MACfC,KAAK,EAAE,IAAID,GAAG,CAAC,CAAC;MAChBE,IAAI,EAAE,IAAIF,GAAG,CAAC,CAAC;MACfG,OAAO,EAAE,IAAIH,GAAG,CAAC;IACnB,CAAC;IAAArC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,YAEuD,IAAI;IAAAnC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,WACrB,IAAI;IAAAnC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA;IAAAnC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA;IAAAnC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,iBAGtB,KAAK;IAAAnC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,YACE,EAAE;IAAAnC,eAAA,CAAAN,sBAAA,CAAAyC,KAAA,uBA2UH;MACzBM,SAAS,EAAE,SAAAA,UAACC,IAAc,EAAExK,IAAwB;QAAA,OAAKiK,KAAA,CAAKQ,kBAAkB,CAACD,IAAI,EAAExK,IAAI,CAAC;MAAA;MAC5F0K,SAAS,EAAE,SAAAA,UAACF,IAAc,EAAExK,IAAwB;QAAA,OAAKiK,KAAA,CAAKU,kBAAkB,CAACH,IAAI,EAAExK,IAAI,CAAC;MAAA;IAC9F,CAAC;IA1UC,IAAA4K,IAAA,GAA6Db,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,CAAC,CAAC;MAAlEc,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAAC,WAAA,GAAAF,IAAA,CAAEG,MAAM;MAANA,MAAM,GAAAD,WAAA,cAAGtB,cAAc,GAAAsB,WAAA;MAAAE,UAAA,GAAAJ,IAAA,CAAEK,KAAK;MAALA,KAAK,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IAExDf,KAAA,CAAKY,QAAQ,GAAGA,QAAQ;IACxBZ,KAAA,CAAKc,MAAM,GAAGA,MAAM;;IAEpB;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;IAAA,OAAAd,KAAA;EACF;EAAC7D,YAAA,CAAAwD,oBAAA;IAAA3E,GAAA;IAAApG,KAAA,EAED,SAAAqM,mBAAA,EAAqD;MACnD,OAAO;QACLC,QAAQ,EAAE;UAAEtM,KAAK,EAAE;QAAI,CAAC;QACxBuM,eAAe,EAAE;UAAEvM,KAAK,EAAE;QAAM,CAAC;QACjCwM,YAAY,EAAE;UAAExM,KAAK,EAAE;QAAK,CAAC;QAC7ByM,YAAY,EAAE;UAAEzM,KAAK,EAAE;QAAM,CAAC;QAC9B0M,aAAa,EAAE;UAAE1M,KAAK,EAAE;QAAM,CAAC;QAC/B2M,OAAO,EAAE;UAAE3M,KAAK,EAAE;QAAE,CAAC;QACrBkM,MAAM,EAAE;UAAElM,KAAK,EAAE,IAAI,CAACkM;QAAO,CAAC;QAC9BU,IAAI,EAAE;UAAE5M,KAAK,EAAE;QAAE,CAAC;QAClB6M,MAAM,EAAE;UAAE7M,KAAK,EAAE;QAAE,CAAC;QACpBoM,KAAK,EAAE;UAAEpM,KAAK,EAAE;QAAM;MACxB,CAAC;IACH;EAAC;IAAAoG,GAAA;IAAApG,KAAA,EAED,SAAA8M,wBAAA,EAAkC;MAChC9C,eAAe,CAAC+C,cAAc,CAAC,CAAC;IAClC;EAAC;IAAA3G,GAAA;IAAApG,KAAA,EAED,SAAAgN,eAAA,EAA+B;MAC7BtN,MAAM,CAACuC,MAAM,CAAC,IAAI,CAACgL,UAAU,CAAC,CAAC7K,OAAO,CAAC,UAAC8K,SAAS,EAAK;QACpDA,SAAS,CAAC9K,OAAO,CAAC,UAAC+K,MAAM,EAAK;UAC5BA,MAAM,CAACC,OAAO,GAAG,KAAK;QACxB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAhH,GAAA;IAAApG,KAAA,EAED,SAAAqN,kBAA0BlM,IAAwB,EAAQ;MACxD,IAAI,CAAC8L,UAAU,CAAC9L,IAAI,CAAC,CAACiB,OAAO,CAAC,UAAC+K,MAAM,EAAK;QACxCA,MAAM,CAACC,OAAO,GAAG,IAAI;MACvB,CAAC,CAAC;IACJ;EAAC;IAAAhH,GAAA;IAAApG,KAAA,EAED,SAAAsN,WAAkBnM,IAAwB,EACxCoM,MAOC,EAAQ;MAAA,IAAAC,aAAA;MACT,IAAI,IAAI,CAACrM,IAAI,KAAKA,IAAI,EACpB;MAEF,IAAMsM,KAAK,GAAG1D,GAAG,CAAC2D,QAAQ,CAAC,IAAI,CAACvC,YAAY,CAAC,CAACwC,KAAK,CAACC,eAAe,CAAC,cAAc,CAAC;MAEnF,IAAIH,KAAK,EACPA,KAAK,CAACI,gBAAgB,CAAC,CAAC;MAE1B,IAAI1M,IAAI,KAAKuJ,UAAU,CAACW,IAAI,EAAE;QAC5B,IAAMoC,MAAK,GAAG,IAAIlE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;QAC7CkE,MAAK,CAAC/I,IAAI,GAAG,cAAc;QAC3BqF,GAAG,CAAC2D,QAAQ,CAAC,IAAI,CAACvC,YAAY,CAAC,CAACwC,KAAK,CAACG,GAAG,CAACL,MAAK,CAAC;QAEhD,IAAItM,IAAI,KAAKuJ,UAAU,CAACc,IAAI,EAC1BiC,MAAK,CAACM,SAAS,GAAG,GAAG;MACzB;MAEA,IAAI,CAAAR,MAAM,aAANA,MAAM,gBAAAC,aAAA,GAAND,MAAM,CAAES,KAAK,cAAAR,aAAA,uBAAbA,aAAA,CAAelJ,MAAM,IAAG,CAAC,EAAE;QAC7B,IAAI,CAAC0J,KAAK,GAAGT,MAAM,CAACS,KAAK;MAC3B,CAAC,MACI;QACH,IAAI,CAACA,KAAK,GAAG,CAAC;UACZ7M,IAAI,EAAE,WAAW;UACjB8D,IAAI,EAAE,CACJ,MAAM,CACP;UACDgJ,QAAQ,EAAE;QACZ,CAAC,EACD;UACE9M,IAAI,EAAE,WAAW;UACjB8D,IAAI,EAAE,CACJ,OAAO,CACR;UACDgJ,QAAQ,EAAE;QACZ,CAAC,EACD;UACE9M,IAAI,EAAE,WAAW;UACjB8D,IAAI,EAAE,CACJ,KAAK,CACN;UACDgJ,QAAQ,EAAE;QACZ,CAAC,EACD;UACE9M,IAAI,EAAE,WAAW;UACjB8D,IAAI,EAAE,CACJ,QAAQ,CACT;UACDgJ,QAAQ,EAAE,qBAAqB;UAC/BC,KAAK,EAAExD,UAAU,CAACe;QACpB,CAAC,CAAC;MACJ;MAEA,IAAI,CAAC0C,eAAe,CAACZ,MAAM,CAAC;MAC5B,IAAI,CAACa,WAAW,CAACjN,IAAI,CAAC;MACtB,IAAI,CAACkN,iBAAiB,CAAC,CAAC;MACxB,IAAI,CAACC,gBAAgB,CAACnN,IAAI,CAAC;MAC3B,IAAI,CAACoN,oBAAoB,CAACpN,IAAI,CAAC;MAE/B,IAAI,CAACA,IAAI,GAAGA,IAAI;IAClB;EAAC;IAAAiF,GAAA;IAAApG,KAAA,EAED,SAAAmO,gBAAwBZ,MAKvB,EAAQ;MACP,IAAAiB,KAAA,GAA6EjB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,CAAC,CAAC;QAAAkB,UAAA,GAAAD,KAAA,CAAjFE,IAAI;QAAJA,IAAI,GAAAD,UAAA,cAAG,MAAM,GAAAA,UAAA;QAAAE,cAAA,GAAAH,KAAA,CAAExC,QAAQ;QAARA,QAAQ,GAAA2C,cAAA,cAAG,CAAC,GAAAA,cAAA;QAAAC,YAAA,GAAAJ,KAAA,CAAEtC,MAAM;QAANA,MAAM,GAAA0C,YAAA,cAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAAA,YAAA;QAAAC,cAAA,GAAAL,KAAA,CAAEM,QAAQ;QAARA,QAAQ,GAAAD,cAAA,cAAG,IAAI,GAAAA,cAAA;MACxE,IAAIH,IAAI,KAAK,MAAM,EACjB,IAAI,CAAC1C,QAAQ,GAAGlF,SAAS,MAEzB,IAAI,CAACkF,QAAQ,GAAGA,QAAQ;MAE1B,IAAI,CAAC+C,QAAQ,CAAC7C,MAAM,CAAClM,KAAK,GAAG,IAAI6J,OAAO,CAAC,CAAC,CAACmF,SAAS,CAAC9C,MAAM,CAAC;MAC5D,IAAI,CAAC+C,UAAU,GAAGH,QAAQ;IAC5B;EAAC;IAAA1I,GAAA;IAAApG,KAAA,EAED,SAAAqO,kBAAA,EAAkC;MAAA,IAAAa,WAAA,EAAAC,UAAA;MAChC,CAAAD,WAAA,OAAI,CAACE,KAAK,cAAAF,WAAA,eAAVA,WAAA,CAAA7N,IAAA,KAAa,CAAC;MACd,CAAA8N,UAAA,OAAI,CAACrF,IAAI,cAAAqF,UAAA,eAATA,UAAA,CAAWE,IAAI,CAAC,CAAC;IACnB;EAAC;IAAAjJ,GAAA;IAAApG,KAAA,EAED,SAAAsO,iBAAyBgB,OAA2B,EAAQ;MAC1D,IAAI,CAACtC,cAAc,CAAC,CAAC;MACrB,IAAI,CAACK,iBAAiB,CAACiC,OAAO,CAAC;MAC/B,IAAI,CAACjC,iBAAiB,CAAC,IAAI,CAAClM,IAAI,CAAC;MAEjC,IAAMoO,YAAY,GAAG,IAAI,CAACtC,UAAU,CAACqC,OAAO,CAAC,CAACE,GAAG,CAAC,QAAQ,CAAC;MAC3D,IAAMC,gBAAgB,GAAG,IAAI,CAACxC,UAAU,CAAC,IAAI,CAAC9L,IAAI,CAAC,CAACqO,GAAG,CAAC,QAAQ,CAAC;MAEjE,IAAID,YAAY,EACdA,YAAY,CAACnC,OAAO,GAAG,IAAI,CAAC6B,UAAU;MACxC,IAAIQ,gBAAgB,EAClBA,gBAAgB,CAACrC,OAAO,GAAGqC,gBAAgB,CAACC,QAAQ,CAACC,SAAS;MAEhE,IAAI,CAACZ,QAAQ,CAACzC,QAAQ,CAACtM,KAAK,GAAG,GAAG;MAClC,IAAI,CAAC+O,QAAQ,MAAAa,MAAA,CAAM,IAAI,CAACzO,IAAI,YAAS,CAACnB,KAAK,GAAG,KAAK;MACnD,IAAI,CAAC+O,QAAQ,MAAAa,MAAA,CAAMN,OAAO,YAAS,CAACtP,KAAK,GAAG,IAAI;IAClD;EAAC;IAAAoG,GAAA;IAAApG,KAAA,EAED,SAAAuO,qBAA6Be,OAA2B,EAAQ;MAAA,IAAAO,MAAA;MAC9D,IAAMC,QAAQ,GAAG,IAAI,CAAC3O,IAAI;MAE1B,IAAM4O,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;QACvBF,MAAI,CAAC5C,UAAU,CAAC6C,QAAQ,CAAC,CAAC1N,OAAO,CAAC,UAAC+K,MAAM,EAAK;UAC5CA,MAAM,CAACC,OAAO,GAAG,KAAK;QACxB,CAAC,CAAC;QACFyC,MAAI,CAACG,aAAa,CAAC;UAAE7O,IAAI,EAAE,gBAAgB;UAAE8O,KAAK,EAAEX;QAAQ,CAAQ,CAAC;MACvE,CAAC;MAEDY,qBAAqB,CAAC,YAAM;QAC1B,IAAIL,MAAI,CAAC7D,QAAQ,EACf6D,MAAI,CAACM,eAAe,CAACJ,UAAU,CAAC,MAEhCF,MAAI,CAACO,gBAAgB,CAACL,UAAU,CAAC;MACrC,CAAC,CAAC;IACJ;EAAC;IAAA3J,GAAA;IAAApG,KAAA,EAED,SAAAmQ,gBAAwBJ,UAAsB,EAAQ;MACpD,IAAI,CAACjG,IAAI,GAAGA,IAAI,CAACuG,EAAE,CAAC,IAAI,CAACtB,QAAQ,CAACzC,QAAQ,EAAE;QAC1CtM,KAAK,EAAE,GAAG;QACVgM,QAAQ,EAAE,IAAI,CAACA,QAAQ;QACvBsE,IAAI,EAAE,QAAQ;QACdP,UAAU,EAAVA;MACF,CAAC,CAAC;IACJ;EAAC;IAAA3J,GAAA;IAAApG,KAAA;MAAA,IAAAuQ,aAAA,GAAAhK,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAA6L,QAA2BC,QAAgB,EAAEC,QAAqB;QAAA,IAAAC,MAAA;QAAA,IAAAC,YAAA,EAAAC,KAAA,EAAAC,GAAA;QAAA,OAAAxR,mBAAA,GAAAuB,IAAA,UAAAkQ,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAA5L,IAAA,GAAA4L,QAAA,CAAAvN,IAAA;YAAA;cAChE,IAAIgN,QAAQ,KAAK,CAAC,EAChBA,QAAQ,GAAG,IAAI;cAEbG,YAAY,GAAG,CAAC;cAChBC,KAAK,GAAG,CAAC;cACTC,GAAG,GAAG,CAAC;cAEX,IAAI,CAAC1B,KAAK,GAAGrF,GAAG,CAACkH,QAAQ,CAAC,IAAI,CAAC9F,YAAY,EAAE,UAAC+F,SAAS,EAAK;gBAC1DJ,GAAG,IAAIL,QAAQ,GAAGS,SAAS;gBAC3BL,KAAK,IAAIC,GAAG,GAAGI,SAAS;gBACxBN,YAAY,IAAIC,KAAK,GAAGK,SAAS;gBAEjCP,MAAI,CAAC5B,QAAQ,CAACzC,QAAQ,CAACtM,KAAK,GAAGmR,IAAI,CAACC,GAAG,CAAC,CAAC,EAAER,YAAY,GAAGH,QAAQ,CAAC;gBAEnE,IAAIG,YAAY,IAAIH,QAAQ,EAAE;kBAAA,IAAAY,YAAA;kBAC5B,CAAAA,YAAA,GAAAV,MAAI,CAACvB,KAAK,cAAAiC,YAAA,eAAVA,YAAA,CAAAhQ,IAAA,CAAAsP,MAAa,CAAC;kBACdD,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAG,CAAC;gBACd;cACF,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAM,QAAA,CAAAzL,IAAA;UAAA;QAAA,GAAAiL,OAAA;MAAA,CACH;MAAA,SAAAc,aAAAC,EAAA,EAAAC,GAAA;QAAA,OAAAjB,aAAA,CAAA3J,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA2K,YAAA;IAAA;EAAA;IAAAlL,GAAA;IAAApG,KAAA,EAED,SAAAoQ,iBAAyBL,UAAsB,EAAQ;MACrD,IAAI,CAACuB,YAAY,CAAC,IAAI,CAACG,UAAU,CAAC,CAAC,EAAE1B,UAAU,CAAC;IAClD;EAAC;IAAA3J,GAAA;IAAApG,KAAA,EAED,SAAA0R,UAAiBvE,MAAgB,EAAQ;MACvC;MACA;MACA,IAAI,CAACG,UAAU,CAAC5C,UAAU,CAACW,IAAI,CAAC;MAChC,IAAMsG,IAAI,GAAG,IAAI,CAACC,aAAa,CAACzE,MAAM,CAAC;MACvC,IAAI,CAAC0E,OAAO,CAACC,GAAG,CAACH,IAAI,EAAExE,MAAM,CAAC;MAE9B,IAAI,CAAC4E,kBAAkB,CAAC5E,MAAM,EAAEwE,IAAI,CAAC;MACrC,IAAI,CAACK,gBAAgB,CAAC,CAAC;IACzB;EAAC;IAAA5L,GAAA;IAAApG,KAAA,EAED,SAAA4R,cAAsBzE,MAAgB,EAAU;MAC9C;MACA,OAAOA,MAAM,CAAC8E,GAAG,KAAK,QAAQ,GAAG9E,MAAM,CAAC+E,QAAQ,GAAG/E,MAAM,CAACwE,IAAI;IAChE;EAAC;IAAAvL,GAAA;IAAApG,KAAA,EAED,SAAAmS,mBAA2BhR,IAAwB,EAAQ;MACzD,IAAI,IAAI,CAAC8L,UAAU,CAAC9L,IAAI,CAAC,CAACiR,GAAG,CAAC,QAAQ,CAAC,EAAE;QACvC,IAAI,CAACC,gBAAgB,CAAClR,IAAI,CAAC;MAC7B,CAAC,MACI;QACH,IAAMmR,UAAU,GAAG,IAAI,CAACC,gBAAgB,CAAC,CAAC;QAC1C/H,cAAc,CAAC8H,UAAU,EAAEnR,IAAI,EAAE,IAAI,CAAC4N,QAAQ,CAAC;QAC/C,IAAI,CAAC9B,UAAU,CAAC9L,IAAI,CAAC,CAAC2Q,GAAG,CAAC,QAAQ,EAAEQ,UAAU,CAAC;QAC/C,IAAI,CAACxE,GAAG,CAACwE,UAAU,CAAC;MACtB;MAEA,IAAM/C,YAAY,GAAG,IAAI,CAACtC,UAAU,CAAC9L,IAAI,CAAC,CAACqO,GAAG,CAAC,QAAQ,CAAC;MAExD,IAAID,YAAY,EACd,IAAI,CAACN,UAAU,GAAGM,YAAY,CAACG,QAAQ,CAACC,SAAS,GAAG,IAAI,GAAGJ,YAAY,CAACG,QAAQ,CAACC,SAAS,GAAG,KAAK;IACtG;EAAC;IAAAvJ,GAAA;IAAApG,KAAA,EAED,SAAAwS,qBAA6BrR,IAAwB,EAAE;MAAA,IAAAsR,MAAA;MACrD,IAAItR,IAAI,KAAKuJ,UAAU,CAACW,IAAI,EAC1B;MAEF,IAAIqH,OAAO,GAAG,KAAK;MAEnB,IAAI,CAACzF,UAAU,CAAC9L,IAAI,CAAC,CAACiB,OAAO,CAAC,UAAC+K,MAAM,EAAK;QACxCA,MAAM,CAACwF,QAAQ,CAAC,UAACC,KAAK,EAAK;UACzB,IAAI9H,eAAe,CAAC+H,IAAI,CAAC,UAAAC,QAAQ;YAAA,OAAIF,KAAK,CAAClO,IAAI,CAACqO,QAAQ,CAACD,QAAQ,CAAC;UAAA,EAAC,EAAE;YACnE,IAAIL,MAAI,CAACxD,UAAU,EACjB2D,KAAK,CAACxF,OAAO,GAAG,KAAK,MAErBwF,KAAK,CAACxF,OAAO,GAAG,IAAI;YAEtBsF,OAAO,GAAG,IAAI;UAChB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,IAAIA,OAAO,EACT,IAAI,CAACP,kBAAkB,CAAChR,IAAI,CAAC;IACjC;EAAC;IAAAiF,GAAA;IAAApG,KAAA;MAAA,IAAAgT,kBAAA,GAAAzM,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAAsO,SAAgCvO,IAAY;QAAA,IAAAuJ,QAAA;QAAA,OAAA3O,mBAAA,GAAAuB,IAAA,UAAAqS,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA/N,IAAA,GAAA+N,SAAA,CAAA1P,IAAA;YAAA;cAAA0P,SAAA,CAAA1P,IAAA;cAAA,OACnBuG,eAAe,CAACoJ,WAAW,CAAC1O,IAAI,CAAC;YAAA;cAAlDuJ,QAAQ,GAAAkF,SAAA,CAAAjQ,IAAA;cAAA,OAAAiQ,SAAA,CAAA9P,MAAA,WAEP4K,QAAQ;YAAA;YAAA;cAAA,OAAAkF,SAAA,CAAA5N,IAAA;UAAA;QAAA,GAAA0N,QAAA;MAAA,CAChB;MAAA,SAAAI,kBAAAC,GAAA;QAAA,OAAAN,kBAAA,CAAApM,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA0M,iBAAA;IAAA;EAAA;IAAAjN,GAAA;IAAApG,KAAA;MAAA,IAAAuT,gBAAA,GAAAhN,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAA6O,SAA8BrG,MAAY,EAAEsG,YAAoB,EAAEtS,IAAY,EAAE+M,KAAkB;QAAA,IAAAD,QAAA;QAAA,OAAA3O,mBAAA,GAAAuB,IAAA,UAAA6S,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAvO,IAAA,GAAAuO,SAAA,CAAAlQ,IAAA;YAAA;cAAA,KAC5F0J,MAAM,CAACuC,QAAQ,CAACkE,SAAS;gBAAAD,SAAA,CAAAlQ,IAAA;gBAAA;cAAA;cAAA,OAAAkQ,SAAA,CAAAtQ,MAAA;YAAA;cAAA,MAGzBoQ,YAAY,KAAK,cAAc;gBAAAE,SAAA,CAAAlQ,IAAA;gBAAA;cAAA;cACjC,IAAItC,IAAI,KAAKuJ,UAAU,CAACe,OAAO,EAC7B0B,MAAM,CAACc,QAAQ,GAAG/D,2BAA2B,CAACiD,MAAM,CAACc,QAAQ,EAAc,IAAI,CAACc,QAAQ,CAAC;cAAA4E,SAAA,CAAAlQ,IAAA;cAAA;YAAA;cAAA,MAEpFgQ,YAAY,KAAK,WAAW,IAAI,CAACA,YAAY;gBAAAE,SAAA,CAAAlQ,IAAA;gBAAA;cAAA;cACpD0J,MAAM,CAACc,QAAQ,GAAGd,MAAM,CAACuC,QAAQ,CAACmE,gBAAgB;cAAAF,SAAA,CAAAlQ,IAAA;cAAA;YAAA;cAAA,MAE3CgQ,YAAY,KAAK,WAAW;gBAAAE,SAAA,CAAAlQ,IAAA;gBAAA;cAAA;cACnC,IAAItC,IAAI,KAAKuJ,UAAU,CAACe,OAAO,EAC7B0B,MAAM,CAACc,QAAQ,GAAG9D,cAAc,CAACgD,MAAM,CAACc,QAAQ,EAAc,IAAI,CAACc,QAAQ,CAAC;cAAA4E,SAAA,CAAAlQ,IAAA;cAAA;YAAA;cAAA,MAG1EyK,KAAK,IAAIA,KAAK,KAAK/M,IAAI;gBAAAwS,SAAA,CAAAlQ,IAAA;gBAAA;cAAA;cAAA,OAAAkQ,SAAA,CAAAtQ,MAAA;YAAA;cAAAsQ,SAAA,CAAAlQ,IAAA;cAAA,OAGJ,IAAI,CAAC4P,iBAAiB,CAACI,YAAY,CAAC;YAAA;cAArDxF,QAAQ,GAAA0F,SAAA,CAAAzQ,IAAA;cACdiK,MAAM,CAACc,QAAQ,GAAG7D,MAAM,CAAC6D,QAAQ,EAAE9M,IAAI,EAAkC,IAAI,CAAC4N,QAAQ,CAAyB;YAAA;cAGjH5B,MAAM,CAACuC,QAAQ,CAACkE,SAAS,GAAG,IAAI;YAAA;YAAA;cAAA,OAAAD,SAAA,CAAApO,IAAA;UAAA;QAAA,GAAAiO,QAAA;MAAA,CACjC;MAAA,SAAAM,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAX,gBAAA,CAAA3M,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAmN,eAAA;IAAA;EAAA;IAAA1N,GAAA;IAAApG,KAAA,EAED,SAAAmU,cAAsBhH,MAAY,EAAEhM,IAAwB,EAAE;MAC5D,IAAI,YAAAyO,MAAA,CAAYzO,IAAI,YAAS,CAACgM,MAAM,CAAC;IACvC;EAAC;IAAA/G,GAAA;IAAApG,KAAA,EAED,SAAA8L,mBAA2BH,IAAc,EAAExK,IAAwB,EAAE;MAAA,IAAAiT,MAAA;MACnE,IAAQnP,IAAI,GAA6B0G,IAAI,CAArC1G,IAAI;QAAAoP,cAAA,GAA6B1I,IAAI,CAA/BsC,QAAQ;QAARA,QAAQ,GAAAoG,cAAA,cAAG,WAAW,GAAAA,cAAA;MACpC,IAAIC,SAAS,GAAG,EAAE;MAElB,IAAI,OAAOrP,IAAI,KAAK,QAAQ,EAC1BqP,SAAS,GAAG,CAACrP,IAAI,CAAC,MAElBqP,SAAS,GAAGrP,IAAI;MAElB,IAAI,CAACgI,UAAU,CAAC9L,IAAI,CAAC,CAACiB,OAAO,CAAC,UAAC+K,MAAM,EAAK;QACxCA,MAAM,CAACwF,QAAQ,CAAC,UAACC,KAAK,EAAK;UACzB,IAAIA,KAAK,CAACzR,IAAI,KAAK,MAAM,EAAE;YACzB,IAAMoT,IAAI,GAAG3B,KAAa;YAE1B,IAAI0B,SAAS,CAACzB,IAAI,CAAC,UAAAC,QAAQ;cAAA,IAAA0B,YAAA;cAAA,OAAID,IAAI,CAAC7P,IAAI,CAACqO,QAAQ,CAACD,QAAQ,CAAC,KAAIyB,IAAI,aAAJA,IAAI,gBAAAC,YAAA,GAAJD,IAAI,CAAEE,MAAM,cAAAD,YAAA,uBAAZA,YAAA,CAAc9P,IAAI,CAACqO,QAAQ,CAACD,QAAQ,CAAC;YAAA,EAAC,EACnGsB,MAAI,CAACN,eAAe,CAACS,IAAI,EAAEtG,QAAQ,EAAE9M,IAAI,EAAEwK,IAAI,CAACuC,KAAK,CAAC;UAC1D;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAA9H,GAAA;IAAApG,KAAA,EAED,SAAA4L,mBAA2BD,IAAc,EAAExK,IAAwB,EAAE,CAAC;EAAC;IAAAiF,GAAA;IAAApG,KAAA,EAOvE,SAAAoO,YAAoBjN,IAAwB,EAAE;MAAA,IAAAuT,MAAA;MAC5C,IAAI,CAAClC,oBAAoB,CAACrR,IAAI,CAAC;MAE/B,IAAIA,IAAI,KAAKuJ,UAAU,CAACW,IAAI,EAC1B;MAEF,IAAI,CAAC4B,UAAU,CAAC9L,IAAI,CAAC,CAACiB,OAAO,CAAC,UAAC+K,MAAM,EAAK;QACxCA,MAAM,CAACwF,QAAQ,CAAC,UAACC,KAAK,EAAK;UACzB,IAAIA,KAAK,CAACzR,IAAI,KAAK,MAAM,EAAE;YACzB,IAAIyR,KAAK,CAAClD,QAAQ,CAACkE,SAAS,EAC1Bc,MAAI,CAACP,aAAa,CAACvB,KAAK,EAAUzR,IAAI,CAAC;UAC3C;UAEAyR,KAAK,CAAClD,QAAQ,CAACkE,SAAS,GAAG,KAAK;QAClC,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,IAAI,IAAI,CAAC5F,KAAK,CAAC1J,MAAM,GAAG,CAAC,EAAE;QACzB,IAAI,CAAC0J,KAAK,CAAC5L,OAAO,CAAC,UAACuJ,IAAI,EAAK;UAC3B+I,MAAI,CAACC,gBAAgB,CAAChJ,IAAI,CAACxK,IAAI,CAAC,CAACwK,IAAI,EAAExK,IAAI,CAAC;QAC9C,CAAC,CAAC;MACJ;IACF;;IAEA;IACA;EAAA;IAAAiF,GAAA;IAAApG,KAAA,EACA,SAAA+R,mBAA2B5E,MAAgB,EAAEwE,IAAY,EAAQ;MAC/D,IAAMiD,UAAU,GAAGzH,MAAM;MACzB,IAAI,CAAC0H,kBAAkB,CAACD,UAAU,CAAC;MACnC,IAAI,CAAC3H,UAAU,CAAC5B,IAAI,CAACyG,GAAG,CAACH,IAAI,EAAEiD,UAAU,CAAC;MAC1C,IAAI,CAAC9G,GAAG,CAAC8G,UAAU,CAAC;MAEpB,IAAME,aAAa,GAAG3H,MAAM,CAAC4H,KAAK,CAAC,CAAC;MACpC,IAAI,CAACC,qBAAqB,CAACF,aAAa,CAAC;MACzC,IAAI,CAAC7H,UAAU,CAACxB,OAAO,CAACqG,GAAG,CAACH,IAAI,EAAEmD,aAAa,CAAC;MAChD,IAAI,CAAChH,GAAG,CAACgH,aAAa,CAAC;MAEvB,IAAMG,UAAU,GAAG9H,MAAM,CAAC4H,KAAK,CAAC,CAAC;MACjC,IAAI,CAACG,kBAAkB,CAACD,UAAU,CAAC;MACnC,IAAI,CAAChI,UAAU,CAACzB,IAAI,CAACsG,GAAG,CAACH,IAAI,EAAEsD,UAAU,CAAC;MAC1C,IAAI,CAACnH,GAAG,CAACmH,UAAU,CAAC;MAEpB,IAAME,WAAW,GAAGhI,MAAM,CAAC4H,KAAK,CAAC,CAAC;MAClC,IAAI,CAACK,mBAAmB,CAACD,WAAW,CAAC;MACrC,IAAI,CAAClI,UAAU,CAAC1B,KAAK,CAACuG,GAAG,CAACH,IAAI,EAAEwD,WAAW,CAAC;MAC5C,IAAI,CAACrH,GAAG,CAACqH,WAAW,CAAC;MAErB,IAAI,CAACpG,QAAQ,CAACpC,OAAO,CAAC3M,KAAK,GAAG,IAAI,CAACyR,UAAU,CAAC,CAAC;IACjD;EAAC;IAAArL,GAAA;IAAApG,KAAA,EAED,SAAAqV,aAAoBlI,MAAgB,EAAQ;MAC1C;MACA;MACA,IAAMwE,IAAI,GAAG,IAAI,CAACC,aAAa,CAACzE,MAAM,CAAC;MACvC,IAAI,CAAC0E,OAAO,CAACyD,MAAM,CAAC3D,IAAI,CAAC;MAEzBjS,MAAM,CAACuC,MAAM,CAAC,IAAI,CAACgL,UAAU,CAAC,CAAC7K,OAAO,CAAC,UAAC8K,SAAS,EAAK;QACpD,IAAMhE,GAAG,GAAGgE,SAAS,CAACsC,GAAG,CAACmC,IAAI,CAAC;QAC/B,IAAIzI,GAAG,EAAE;UACPA,GAAG,CAAC2E,gBAAgB,CAAC,CAAC;UACtBX,SAAS,CAACoI,MAAM,CAAC3D,IAAI,CAAC;QACxB;MACF,CAAC,CAAC;MAEF,IAAI,CAAC5C,QAAQ,CAACpC,OAAO,CAAC3M,KAAK,GAAG,IAAI,CAACyR,UAAU,CAAC,CAAC;IACjD;EAAC;IAAArL,GAAA;IAAApG,KAAA,EAED,SAAAuS,iBAAA,EAAiC;MAC/B,IAAMgD,GAAG,GAAG,IAAI,CAACC,IAAI;MACrB,IAAMC,IAAI,GAAGF,GAAG,CAACG,OAAO,CAAC,IAAI7L,OAAO,CAAC,CAAC,CAAC;MACvC,IAAMqC,MAAM,GAAGqJ,GAAG,CAACI,SAAS,CAAC,IAAI9L,OAAO,CAAC,CAAC,CAAC;MAE3C,IAAM+L,KAAK,GAAG,IAAIhM,aAAa,CAAC6L,IAAI,CAACI,CAAC,EAAEJ,IAAI,CAACK,CAAC,CAAC;MAC/C,IAAM7H,QAAQ,GAAG,IAAItE,iBAAiB,CAAC;QAAEoM,KAAK,EAAE,IAAItM,KAAK,CAAC,MAAM;MAAE,CAAC,CAAC;MACpE,IAAM8K,IAAI,GAAG,IAAI7K,IAAI,CAACkM,KAAK,EAAE3H,QAAQ,CAAC;MAEtCsG,IAAI,CAACyB,QAAQ,CAACH,CAAC,GAAG,CAAC1E,IAAI,CAAC8E,EAAE,GAAG,CAAC;MAC9B1B,IAAI,CAAC2B,QAAQ,CAACpE,GAAG,CAAC5F,MAAM,CAAC2J,CAAC,EAAEjL,eAAe,EAAEsB,MAAM,CAAC4J,CAAC,CAAC;MAEtD,OAAOvB,IAAI;IACb;EAAC;IAAAnO,GAAA;IAAApG,KAAA,EAED,SAAAqS,iBAAyBlR,IAAwB,EAAQ;MACvD,IAAI,CAAC,IAAI,CAAC8L,UAAU,CAAC9L,IAAI,CAAC,CAACiR,GAAG,CAAC,QAAQ,CAAC,EACtC;MAEF,IAAMmD,GAAG,GAAG,IAAI,CAACC,IAAI;MACrB,IAAMC,IAAI,GAAGF,GAAG,CAACG,OAAO,CAAC,IAAI7L,OAAO,CAAC,CAAC,CAAC;MACvC,IAAMqC,MAAM,GAAGqJ,GAAG,CAACI,SAAS,CAAC,IAAI9L,OAAO,CAAC,CAAC,CAAC;MAE1C,IAAI,CAACoD,UAAU,CAAC9L,IAAI,CAAC,CAACqO,GAAG,CAAC,QAAQ,CAAC,CAAU2G,QAAQ,CAACC,OAAO,CAAC,CAAC;MAC/D,IAAI,CAACnJ,UAAU,CAAC9L,IAAI,CAAC,CAACqO,GAAG,CAAC,QAAQ,CAAC,CAAU2G,QAAQ,GAAG,IAAIvM,aAAa,CAAC6L,IAAI,CAACI,CAAC,EAAEJ,IAAI,CAACK,CAAC,CAAC;MACzF,IAAI,CAAC7I,UAAU,CAAC9L,IAAI,CAAC,CAACqO,GAAG,CAAC,QAAQ,CAAC,CAAU0G,QAAQ,CAACpE,GAAG,CAAC5F,MAAM,CAAC2J,CAAC,EAAEjL,eAAe,EAAEsB,MAAM,CAAC4J,CAAC,CAAC;IACjG;EAAC;IAAA1P,GAAA;IAAAoJ,GAAA,EAED,SAAAA,IAAA,EAAyB;MACvB,IAAMgG,IAAI,GAAG,IAAIhM,IAAI,CAAC,CAAC;MACvB,IAAI,CAACyD,UAAU,CAAC5B,IAAI,CAACjJ,OAAO,CAAC,UAAC+K,MAAM,EAAK;QACvCqI,IAAI,CAACa,cAAc,CAAClJ,MAAM,CAAC;MAC7B,CAAC,CAAC;MACF,OAAOqI,IAAI;IACb;EAAC;IAAApP,GAAA;IAAApG,KAAA,EAED,SAAAyR,WAAA,EAA6B;MAC3B,IAAM+D,IAAI,GAAG,IAAI,CAACA,IAAI;MACtB,IAAMc,QAAQ,GAAG,IAAI,CAACC,cAAc,CAACf,IAAI,CAAC;MAC1C,IAAMgB,WAAW,GAAG,IAAI,CAACC,oBAAoB,CAACH,QAAQ,CAAC;MACvD,OAAOE,WAAW,GAAG3L,iBAAiB;IACxC;EAAC;IAAAzE,GAAA;IAAApG,KAAA,EAED,SAAAuW,eAAuBf,IAAU,EAAa;MAC5C,OAAO,CACL,IAAI3L,OAAO,CAAC2L,IAAI,CAACpE,GAAG,CAACyE,CAAC,EAAEL,IAAI,CAACpE,GAAG,CAAC1P,CAAC,EAAE8T,IAAI,CAACpE,GAAG,CAAC0E,CAAC,CAAC,EAC/C,IAAIjM,OAAO,CAAC2L,IAAI,CAACpE,GAAG,CAACyE,CAAC,EAAEL,IAAI,CAACpE,GAAG,CAAC1P,CAAC,EAAE8T,IAAI,CAACkB,GAAG,CAACZ,CAAC,CAAC,EAC/C,IAAIjM,OAAO,CAAC2L,IAAI,CAACpE,GAAG,CAACyE,CAAC,EAAEL,IAAI,CAACkB,GAAG,CAAChV,CAAC,EAAE8T,IAAI,CAACpE,GAAG,CAAC0E,CAAC,CAAC,EAC/C,IAAIjM,OAAO,CAAC2L,IAAI,CAACpE,GAAG,CAACyE,CAAC,EAAEL,IAAI,CAACkB,GAAG,CAAChV,CAAC,EAAE8T,IAAI,CAACkB,GAAG,CAACZ,CAAC,CAAC,EAC/C,IAAIjM,OAAO,CAAC2L,IAAI,CAACkB,GAAG,CAACb,CAAC,EAAEL,IAAI,CAACpE,GAAG,CAAC1P,CAAC,EAAE8T,IAAI,CAACpE,GAAG,CAAC0E,CAAC,CAAC,EAC/C,IAAIjM,OAAO,CAAC2L,IAAI,CAACkB,GAAG,CAACb,CAAC,EAAEL,IAAI,CAACpE,GAAG,CAAC1P,CAAC,EAAE8T,IAAI,CAACkB,GAAG,CAACZ,CAAC,CAAC,EAC/C,IAAIjM,OAAO,CAAC2L,IAAI,CAACkB,GAAG,CAACb,CAAC,EAAEL,IAAI,CAACkB,GAAG,CAAChV,CAAC,EAAE8T,IAAI,CAACpE,GAAG,CAAC0E,CAAC,CAAC,EAC/C,IAAIjM,OAAO,CAAC2L,IAAI,CAACkB,GAAG,CAACb,CAAC,EAAEL,IAAI,CAACkB,GAAG,CAAChV,CAAC,EAAE8T,IAAI,CAACkB,GAAG,CAACZ,CAAC,CAAC,CAChD;IACH;EAAC;IAAA1P,GAAA;IAAApG,KAAA,EAED,SAAAyW,qBAA6BH,QAAmB,EAAU;MAAA,IAAAK,MAAA;MACxD,OAAOL,QAAQ,CAACM,MAAM,CAAC,UAACF,GAAG,EAAEG,MAAM,EAAK;QACtC,IAAMpG,QAAQ,GAAGkG,MAAI,CAACzK,MAAM,CAAC4K,UAAU,CAACD,MAAM,CAAC;QAC/C,OAAO1F,IAAI,CAACuF,GAAG,CAACA,GAAG,EAAEjG,QAAQ,CAAC;MAChC,CAAC,EAAE,CAAC,CAAC;IACP;EAAC;IAAArK,GAAA;IAAApG,KAAA,EAED,SAAAgV,sBAA8B7H,MAAgB,EAAQ;MACpD7C,qBAAqB,CAAC6C,MAAM,EAAE,IAAI,CAAC4B,QAAQ,CAAC;IAC9C;EAAC;IAAA3I,GAAA;IAAApG,KAAA,EAED,SAAA6U,mBAA2B1H,MAAgB,EAAQ;MACjD1C,gBAAgB,CAAC0C,MAAM,EAAE,IAAI,CAAC4B,QAAQ,CAAC;IACzC;EAAC;IAAA3I,GAAA;IAAApG,KAAA,EAED,SAAAkV,mBAA2B/H,MAAgB,EAAQ;MACjD9C,iBAAiB,CAAC8C,MAAM,EAAE,IAAI,CAAC4B,QAAQ,CAAC;IAC1C;EAAC;IAAA3I,GAAA;IAAApG,KAAA,EAED,SAAAoV,oBAA4BjI,MAAgB,EAAQ;MAClD5C,iBAAiB,CAAC4C,MAAM,EAAE,IAAI,CAAC4B,QAAQ,CAAC;IAC1C;EAAC;IAAA3I,GAAA;IAAApG,KAAA,EAED,SAAAgS,iBAAA,EAAiC;MAC/B,IAAI,CAAChF,cAAc,CAAC,CAAC;MACrB,IAAI,CAACK,iBAAiB,CAAC3C,UAAU,CAACW,IAAI,CAAC;IACzC;EAAC;EAAA,OAAAN,oBAAA;AAAA,EAvfuCd,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"names":["MaterialSwitchSystem"],"sources":["../../../src/business/MaterialSwitch/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\n\nexport { MaterialSwitchSystem } from './MaterialSwitchSystem'\n\nexport interface MaterialSwitchSystemInterface {\n /**\n * 当前类型\n */\n type: string\n\n /**\n * 切换类型\n */\n switchType(type: string): void\n\n}\n"],"mappings":"AAEA,SAASA,oBAAoB"}
1
+ {"version":3,"names":["MaterialSwitchSystem"],"sources":["../../../src/business/MaterialSwitch/index.ts"],"sourcesContent":["export { MaterialSwitchSystem } from './MaterialSwitchSystem'\n\nexport interface MaterialSwitchSystemInterface {\n /**\n * 当前类型\n */\n type: string\n\n /**\n * 切换类型\n */\n switchType(type: string): void\n\n}\n"],"mappings":"AAAA,SAASA,oBAAoB"}
@@ -1,11 +1,12 @@
1
+ import type { SceneControl } from '@anov/3d-core';
1
2
  import { Mesh } from '@anov/3d-core';
2
3
  import ObjectLayer from '../Base/ObjectLayer';
3
- import type { options } from './types';
4
4
  import type { IPlane } from './interface';
5
+ import type { options } from './types';
5
6
  export declare class Plane extends ObjectLayer implements IPlane {
6
7
  private mesh;
7
8
  private currentOptions;
8
- constructor(options: options);
9
+ constructor(options: options, sceneControl: SceneControl);
9
10
  createPlane(options: options): Mesh;
10
11
  updatePlane(options: options): void;
11
12
  /** 销毁释放资源 */
@@ -32,10 +32,10 @@ import { defineProps } from "../Utils/defineProps";
32
32
  export var Plane = /*#__PURE__*/function (_ObjectLayer) {
33
33
  _inherits(Plane, _ObjectLayer);
34
34
  var _super = _createSuper(Plane);
35
- function Plane(options) {
35
+ function Plane(options, sceneControl) {
36
36
  var _this;
37
37
  _classCallCheck(this, Plane);
38
- _this = _super.call(this);
38
+ _this = _super.call(this, sceneControl);
39
39
  _defineProperty(_assertThisInitialized(_this), "mesh", void 0);
40
40
  _defineProperty(_assertThisInitialized(_this), "currentOptions", void 0);
41
41
  _this.currentOptions = options;
@@ -1 +1 @@
1
- {"version":3,"names":["Mesh","MeshBasicMaterial","PlaneGeometry","_","ObjectLayer","defineProps","Plane","_ObjectLayer","_inherits","_super","_createSuper","options","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","currentOptions","mesh","createPlane","add","_createClass","key","value","_options$length","length","_options$width","width","_options$lengthSegmen","lengthSegment","_options$widthSegment","widthSegment","_options$material","material","defaultMat","color","opacity","transparent","wireframe","visible","side","geometry","mat","_objectSpread","updatePlane","mergeWith","remove","dispose","destroy"],"sources":["../../../src/business/Plane/index.ts"],"sourcesContent":["/*\n * @Descripttion:\n * @version:\n * @Author: 周志国\n * @Date: 2025-09-09 14:27:25\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-15 10:47:49\n * @changeLog:\n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Plane/index.ts\n */\nimport type { MeshBasicMaterialParameters } from '@anov/3d-core'\nimport {\n Mesh,\n MeshBasicMaterial,\n PlaneGeometry,\n} from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport { defineProps } from '../Utils/defineProps'\nimport type { options } from './types'\nimport type { IPlane } from './interface'\n\nexport class Plane extends ObjectLayer implements IPlane {\n private mesh!: Mesh\n private currentOptions!: options\n constructor(options: options) {\n super()\n this.currentOptions = options\n this.mesh = this.createPlane(options)\n this.add(this.mesh)\n defineProps(\n this,\n ['width', 'length', 'widthSegment', 'lengthSegment'],\n ['wireframe', 'color'],\n 'updatePlane',\n )\n }\n\n public createPlane(options: options): Mesh {\n const {\n length = 1,\n width = 1,\n lengthSegment = 1,\n widthSegment = 1,\n material = {},\n } = options\n\n // 默认材质参数\n const defaultMat: MeshBasicMaterialParameters = {\n color: 0xFFFFFF,\n opacity: 1,\n transparent: false,\n wireframe: false,\n visible: true,\n side: 2,\n }\n const geometry = new PlaneGeometry(width, length, widthSegment, lengthSegment)\n const mat = new MeshBasicMaterial({ ...defaultMat, ...material })\n return new Mesh(geometry, mat)\n }\n\n updatePlane(options: options): void {\n if (!this.mesh)\n return\n _.mergeWith(this.currentOptions, options)\n this.remove(this.mesh)\n this.mesh.geometry.dispose();\n (this.mesh.material as any).dispose()\n this.mesh = this.createPlane(this.currentOptions)\n this.add(this.mesh)\n }\n\n /** 销毁释放资源 */\n public destroy() {\n if (!this.mesh)\n return\n this.remove(this.mesh)\n this.mesh.geometry.dispose()\n ; (this.mesh.material as any).dispose()\n // @ts-ignore\n this.mesh = null\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Mesh","MeshBasicMaterial","PlaneGeometry","_","ObjectLayer","defineProps","Plane","_ObjectLayer","_inherits","_super","_createSuper","options","sceneControl","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","currentOptions","mesh","createPlane","add","_createClass","key","value","_options$length","length","_options$width","width","_options$lengthSegmen","lengthSegment","_options$widthSegment","widthSegment","_options$material","material","defaultMat","color","opacity","transparent","wireframe","visible","side","geometry","mat","_objectSpread","updatePlane","mergeWith","remove","dispose","destroy"],"sources":["../../../src/business/Plane/index.ts"],"sourcesContent":["/*\n * @Descripttion:\n * @version:\n * @Author: 周志国\n * @Date: 2025-09-09 14:27:25\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-15 10:47:49\n * @changeLog:\n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Plane/index.ts\n */\nimport type { SceneControl } from '@anov/3d-core'\nimport type { MeshBasicMaterialParameters } from '@anov/3d-core'\nimport {\n Mesh,\n MeshBasicMaterial,\n PlaneGeometry,\n} from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport { defineProps } from '../Utils/defineProps'\nimport type { IPlane } from './interface'\nimport type { options } from './types'\n\nexport class Plane extends ObjectLayer implements IPlane {\n private mesh!: Mesh\n private currentOptions!: options\n constructor(options: options, sceneControl: SceneControl) {\n super(sceneControl)\n this.currentOptions = options\n this.mesh = this.createPlane(options)\n this.add(this.mesh)\n defineProps(\n this,\n ['width', 'length', 'widthSegment', 'lengthSegment'],\n ['wireframe', 'color'],\n 'updatePlane',\n )\n }\n\n public createPlane(options: options): Mesh {\n const {\n length = 1,\n width = 1,\n lengthSegment = 1,\n widthSegment = 1,\n material = {},\n } = options\n\n // 默认材质参数\n const defaultMat: MeshBasicMaterialParameters = {\n color: 0xFFFFFF,\n opacity: 1,\n transparent: false,\n wireframe: false,\n visible: true,\n side: 2,\n }\n const geometry = new PlaneGeometry(width, length, widthSegment, lengthSegment)\n const mat = new MeshBasicMaterial({ ...defaultMat, ...material })\n return new Mesh(geometry, mat)\n }\n\n updatePlane(options: options): void {\n if (!this.mesh)\n return\n _.mergeWith(this.currentOptions, options)\n this.remove(this.mesh)\n this.mesh.geometry.dispose();\n (this.mesh.material as any).dispose()\n this.mesh = this.createPlane(this.currentOptions)\n this.add(this.mesh)\n }\n\n /** 销毁释放资源 */\n public destroy() {\n if (!this.mesh)\n return\n this.remove(this.mesh)\n this.mesh.geometry.dispose()\n ; (this.mesh.material as any).dispose()\n // @ts-ignore\n this.mesh = null\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { options } from './types';
2
1
  import type { Mesh } from '@anov/3d-core';
2
+ import type { options } from './types';
3
3
  export interface IPlane {
4
4
  /**
5
5
  * 创建平面
@@ -7,10 +7,10 @@ export interface IPlane {
7
7
  */
8
8
  createPlane: (options: options) => Mesh;
9
9
  /**
10
- * 更新平面
11
- * @param options - 参数配置
12
- * @returns
13
- */
10
+ * 更新平面
11
+ * @param options - 参数配置
12
+ * @returns
13
+ */
14
14
  updatePlane: (options: options) => void;
15
15
  /**
16
16
  * 销毁平面
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/business/Plane/interface.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-09-09 14:27:47\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-11 11:17:42\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Plane/interface.ts\n */\nimport type { options } from './types'\nimport type { Mesh } from '@anov/3d-core'\nexport interface IPlane {\n /**\n * 创建平面\n * @param options - 参数配置\n */\n createPlane: (options: options) => Mesh\n/**\n * 更新平面\n * @param options - 参数配置\n * @returns \n */\n updatePlane: (options: options) => void\n /**\n * 销毁平面\n */\n destroy: () => void\n}"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/business/Plane/interface.ts"],"sourcesContent":["/*\n * @Descripttion:\n * @version:\n * @Author: 周志国\n * @Date: 2025-09-09 14:27:47\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-11 11:17:42\n * @changeLog:\n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Plane/interface.ts\n */\nimport type { Mesh } from '@anov/3d-core'\nimport type { options } from './types'\nexport interface IPlane {\n /**\n * 创建平面\n * @param options - 参数配置\n */\n createPlane: (options: options) => Mesh\n /**\n * 更新平面\n * @param options - 参数配置\n * @returns\n */\n updatePlane: (options: options) => void\n /**\n * 销毁平面\n */\n destroy: () => void\n}"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/business/Plane/types.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-09-09 14:27:36\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-10 14:58:28\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Plane/types.ts\n */\n\nimport type { MeshBasicMaterialParameters } from '@anov/3d-core'\n\nexport type options = {\n length?: number\n width?: number\n lengthSegment?: number\n widthSegment?: number\n material?: MeshBasicMaterialParameters\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/business/Plane/types.ts"],"sourcesContent":["/*\n * @Descripttion:\n * @version:\n * @Author: 周志国\n * @Date: 2025-09-09 14:27:36\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-10 14:58:28\n * @changeLog:\n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Plane/types.ts\n */\n\nimport type { MeshBasicMaterialParameters } from '@anov/3d-core'\n\nexport type options = {\n length?: number\n width?: number\n lengthSegment?: number\n widthSegment?: number\n material?: MeshBasicMaterialParameters\n}\n"],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { Group } from '@anov/3d-core';
2
+ import type { SceneControl } from '@anov/3d-core';
2
3
  import ObjectLayer from '../Base/ObjectLayer';
3
4
  import type { IPoi, ModelOption, Option, ParticleOption, TextOption } from './types';
4
5
  declare class Poi extends ObjectLayer implements IPoi {
@@ -16,7 +17,7 @@ declare class Poi extends ObjectLayer implements IPoi {
16
17
  private _particle;
17
18
  private _content;
18
19
  type: string;
19
- constructor(option: Option);
20
+ constructor(option: Option, sceneControl: SceneControl);
20
21
  get content(): TextOption;
21
22
  get mesh(): Group<import("@anov/3d-core").Object3DEventMap>;
22
23
  get style(): string;
@@ -29,9 +30,7 @@ declare class Poi extends ObjectLayer implements IPoi {
29
30
  get particle(): ParticleOption;
30
31
  destroy(): void;
31
32
  private init;
32
- /** 初始化卡片样式 */
33
33
  private initCard;
34
- /** 布局计算 */
35
34
  private calculateLayout;
36
35
  private getBoxSize;
37
36
  private setupBoundingBox;
@@ -64,10 +64,10 @@ var MAX_DISTANCE = 1000;
64
64
  var Poi = /*#__PURE__*/function (_ObjectLayer) {
65
65
  _inherits(Poi, _ObjectLayer);
66
66
  var _super = _createSuper(Poi);
67
- function Poi(option) {
67
+ function Poi(option, sceneControl) {
68
68
  var _this;
69
69
  _classCallCheck(this, Poi);
70
- _this = _super.call(this);
70
+ _this = _super.call(this, sceneControl);
71
71
  _defineProperty(_assertThisInitialized(_this), "_mesh", void 0);
72
72
  _defineProperty(_assertThisInitialized(_this), "_titleMesh", void 0);
73
73
  _defineProperty(_assertThisInitialized(_this), "_linkMesh", void 0);
@@ -155,8 +155,6 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
155
155
  get: function get() {
156
156
  return this._particle;
157
157
  }
158
-
159
- // 销毁
160
158
  }, {
161
159
  key: "destroy",
162
160
  value: function destroy() {
@@ -178,7 +176,7 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
178
176
  while (1) switch (_context2.prev = _context2.next) {
179
177
  case 0:
180
178
  group = new Group();
181
- _STYLE_DATA$this$styl = _slicedToArray(STYLE_DATA[this.style], 3), titleStyle = _STYLE_DATA$this$styl[0], linkStyle = _STYLE_DATA$this$styl[1], particleStyle = _STYLE_DATA$this$styl[2]; // 仅加载需要的资源
179
+ _STYLE_DATA$this$styl = _slicedToArray(STYLE_DATA[this.style], 3), titleStyle = _STYLE_DATA$this$styl[0], linkStyle = _STYLE_DATA$this$styl[1], particleStyle = _STYLE_DATA$this$styl[2];
182
180
  strategies = {
183
181
  _titleMesh: {
184
182
  strategy: TitleStrategy[titleStyle],
@@ -195,7 +193,7 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
195
193
  config: this.particle,
196
194
  condition: !this.particle || this.particle.visible !== false
197
195
  }
198
- }; // 过滤掉不需要加载的组件,并发加载
196
+ };
199
197
  loadTasks = Object.entries(strategies).filter(function (_ref) {
200
198
  var _ref2 = _slicedToArray(_ref, 2),
201
199
  condition = _ref2[1].condition;
@@ -217,7 +215,7 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
217
215
  return strategy();
218
216
  case 5:
219
217
  ClassRef = _context.sent;
220
- _this2[key] = new ClassRef(_objectSpread({}, config));
218
+ _this2[key] = new ClassRef(_objectSpread({}, config), _this2.sceneControl);
221
219
  _context.next = 9;
222
220
  return _this2[key].ready;
223
221
  case 9:
@@ -231,22 +229,16 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
231
229
  return function (_x) {
232
230
  return _ref4.apply(this, arguments);
233
231
  };
234
- }()); // 等待所有组件加载完成
232
+ }());
235
233
  _context2.next = 6;
236
234
  return Promise.all(loadTasks);
237
235
  case 6:
238
236
  this._mesh = group;
239
- // 布局计算
240
237
  this.calculateLayout();
241
- // 边界盒处理
242
238
  this.setupBoundingBox(group);
243
- // 统一更新矩阵
244
239
  group.updateWorldMatrix(true, true);
245
- // 动画和事件
246
240
  (_this$_linkMesh = this._linkMesh) === null || _this$_linkMesh === void 0 || _this$_linkMesh.setupAnimation();
247
241
  this.add(group);
248
-
249
- // 代理
250
242
  this._text = this.createProxy(this._text, this._titleMesh);
251
243
  this._model = this.createProxy(this._model, this._linkMesh);
252
244
  this._particle = this.createProxy(this._particle, this._particleMesh);
@@ -261,22 +253,19 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
261
253
  return _init.apply(this, arguments);
262
254
  }
263
255
  return init;
264
- }() /** 初始化卡片样式 */
256
+ }()
265
257
  }, {
266
258
  key: "initCard",
267
259
  value: function initCard(param) {
268
260
  var group = new Group();
269
261
  this._mesh = group;
270
- var panel = new InfoPanel(param);
262
+ var panel = new InfoPanel(param, this.sceneControl);
271
263
  this._panel = panel;
272
264
  group.add(panel);
273
- // CSS3D 信息面板默认不随距离缩放,保持屏幕像素尺寸稳定
274
265
  this._autoScale = false;
275
266
  this.add(group);
276
267
  this.addEventListeners();
277
268
  }
278
-
279
- /** 布局计算 */
280
269
  }, {
281
270
  key: "calculateLayout",
282
271
  value: function calculateLayout() {
@@ -287,8 +276,6 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
287
276
  var linkSize = this._linkMesh ? this.getBoxSize(this._linkMesh) : {
288
277
  height: 0
289
278
  };
290
-
291
- // 计算基础 Y 轴偏移
292
279
  var baseY = -titleSize.height / 2;
293
280
  var linkHeight = linkSize.height;
294
281
  var linkVSpace = ((_this$_linkMesh2 = this._linkMesh) === null || _this$_linkMesh2 === void 0 || (_this$_linkMesh2 = _this$_linkMesh2.vspace) === null || _this$_linkMesh2 === void 0 ? void 0 : _this$_linkMesh2[0]) || 0;
@@ -299,7 +286,6 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
299
286
  }, {
300
287
  key: "getBoxSize",
301
288
  value: function getBoxSize(mesh) {
302
- // mesh.updateWorldMatrix(true, true)
303
289
  var _Box3$setFromObject = new Box3().setFromObject(mesh),
304
290
  max = _Box3$setFromObject.max,
305
291
  min = _Box3$setFromObject.min;
@@ -311,16 +297,12 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
311
297
  }, {
312
298
  key: "setupBoundingBox",
313
299
  value: function setupBoundingBox(mesh) {
314
- // 计算Group的边界盒
315
300
  var box = new Box3().setFromObject(mesh);
316
301
  var size = new Vector3();
317
302
  var center = new Vector3();
318
303
  box.getSize(size);
319
304
  box.getCenter(center);
320
-
321
- // 计算底部中心位置
322
305
  var bottomCenter = new Vector3(center.x, box.min.y, center.z);
323
- // 平移所有Mesh,使底部中心对齐到控制点
324
306
  mesh.children.forEach(function (mesh) {
325
307
  mesh.position.sub(bottomCenter);
326
308
  });
@@ -328,26 +310,16 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
328
310
  }, {
329
311
  key: "updateViewDirection",
330
312
  value: function updateViewDirection() {
331
- var _use$useScene = use.useScene(),
313
+ var _use$useScene = use.useScene(this.sceneControl),
332
314
  camera = _use$useScene.camera;
333
- // camera && this._mesh.quaternion.copy(camera.quaternion)
334
- // this._mesh.rotation.y = camera.rotation.y
335
-
336
315
  lookAtOnYAxis(this._mesh.parent, camera.position);
337
316
  }
338
-
339
- /// <summary>
340
- /// 按照距离缩放,距离越远,缩放越大
341
- /// </summary>
342
317
  }, {
343
318
  key: "updateScale",
344
319
  value: function updateScale() {
345
- var _use$useScene2 = use.useScene(),
320
+ var _use$useScene2 = use.useScene(this.sceneControl),
346
321
  camera = _use$useScene2.camera;
347
- // Make the signboard face the camera
348
- // this._mesh.lookAt(camera.position);
349
- // 计算相机和物体之间的距离
350
- var distance = camera === null || camera === void 0 ? void 0 : camera.position.distanceTo(this._mesh.parent.position);
322
+ var distance = camera === null || camera === void 0 ? void 0 : camera.position.distanceTo(this._mesh.position);
351
323
  if (distance >= MAX_DISTANCE) return;
352
324
  var scale = distance / 20 || 1;
353
325
  this._mesh.scale.set(scale, scale, scale);
@@ -355,30 +327,29 @@ var Poi = /*#__PURE__*/function (_ObjectLayer) {
355
327
  }, {
356
328
  key: "addEventListeners",
357
329
  value: function addEventListeners() {
358
- var _this3 = this;
330
+ var _this3 = this,
331
+ _scene$orbitControls;
359
332
  var updateTransform = function updateTransform() {
360
- var _use$useScene3 = use.useScene(),
333
+ var _use$useScene3 = use.useScene(_this3.sceneControl),
361
334
  camera = _use$useScene3.camera;
362
- // 普通 POI:依旧使用面向相机和距离缩放
363
335
  _this3._facingCamera !== false && _this3.updateViewDirection();
364
336
  _this3._autoScale === true && _this3.updateScale();
365
- // CSS3D 面板:使用动态像素→米缩放,并处理面板面向相机
366
337
  if (_this3._panel && camera) {
367
338
  _this3._panel.updateFacing(camera);
368
339
  _this3._panel.updateDynamicScale(camera);
369
340
  }
370
341
  };
371
-
372
- // const scene = use.useScene()
373
- // const callback = () => updateTransform()
374
- // updateTransform()
375
- // scene.orbitControls?.addEventListener('change', callback)
376
- // this._disposeCallbacks.push(() => {
377
- // scene.orbitControls?.removeEventListener('change', callback)
378
- // })
379
-
380
- // 每帧跟随更新,确保场景缩放/组变换也能驱动面板更新
381
- var cancelFrame = use.useframe(function () {
342
+ var scene = use.useScene(this.sceneControl);
343
+ var callback = function callback() {
344
+ return updateTransform();
345
+ };
346
+ updateTransform();
347
+ (_scene$orbitControls = scene.orbitControls) === null || _scene$orbitControls === void 0 || _scene$orbitControls.addEventListener('change', callback);
348
+ this._disposeCallbacks.push(function () {
349
+ var _scene$orbitControls2;
350
+ (_scene$orbitControls2 = scene.orbitControls) === null || _scene$orbitControls2 === void 0 || _scene$orbitControls2.removeEventListener('change', callback);
351
+ });
352
+ var cancelFrame = use.useframe(this.sceneControl, function () {
382
353
  updateTransform();
383
354
  });
384
355
  this._disposeCallbacks.push(function () {