@anov/3d-ability 0.0.139 → 0.0.141

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 (265) hide show
  1. package/dist/business/Animation/motion/index.js +35 -56
  2. package/dist/business/Animation/motion/index.js.map +1 -1
  3. package/dist/business/Animation/type.js +2 -2
  4. package/dist/business/Area/Fence/FenceBase.js +146 -187
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +120 -112
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +218 -130
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +140 -130
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +87 -126
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +72 -98
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +66 -94
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +267 -483
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +14 -26
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +21 -46
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +189 -234
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +52 -81
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +51 -79
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +1 -9
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +7 -21
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +96 -162
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +208 -291
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +8 -22
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +380 -467
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +405 -525
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +69 -3
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +201 -242
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +55 -88
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +145 -176
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +196 -294
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +36 -3
  55. package/dist/business/Mark/shader/tanhao.js.map +1 -1
  56. package/dist/business/Mark/type.js +1 -1
  57. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +377 -551
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +92 -58
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +74 -2
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +95 -16
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +9 -3
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +48 -9
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +51 -78
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.d.ts +5 -0
  72. package/dist/business/Poi/index.js +256 -295
  73. package/dist/business/Poi/index.js.map +1 -1
  74. package/dist/business/Poi/link/Cylinder.js +56 -89
  75. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  76. package/dist/business/Poi/link/Pyramid.js +104 -165
  77. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  78. package/dist/business/Poi/link/index.d.ts +1 -1
  79. package/dist/business/Poi/link/index.js +54 -114
  80. package/dist/business/Poi/link/index.js.map +1 -1
  81. package/dist/business/Poi/panel/index.d.ts +124 -0
  82. package/dist/business/Poi/panel/index.js +474 -0
  83. package/dist/business/Poi/panel/index.js.map +1 -0
  84. package/dist/business/Poi/panel/interfaces.d.ts +67 -0
  85. package/dist/business/Poi/panel/interfaces.js +2 -0
  86. package/dist/business/Poi/panel/interfaces.js.map +1 -0
  87. package/dist/business/Poi/panel/utils.d.ts +72 -0
  88. package/dist/business/Poi/panel/utils.js +126 -0
  89. package/dist/business/Poi/panel/utils.js.map +1 -0
  90. package/dist/business/Poi/particle/DoubleCircle.js +71 -107
  91. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  92. package/dist/business/Poi/particle/DynamicCircle.js +75 -111
  93. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  94. package/dist/business/Poi/particle/SingleCircle.js +62 -98
  95. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  96. package/dist/business/Poi/particle/index.js +49 -117
  97. package/dist/business/Poi/particle/index.js.map +1 -1
  98. package/dist/business/Poi/shader/circle.js +31 -3
  99. package/dist/business/Poi/shader/circle.js.map +1 -1
  100. package/dist/business/Poi/shader/cylinder.js +37 -3
  101. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  102. package/dist/business/Poi/shader/doubleCircle.js +55 -3
  103. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  104. package/dist/business/Poi/shader/dynamicCircle.js +67 -3
  105. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  106. package/dist/business/Poi/title/Border.js +7 -27
  107. package/dist/business/Poi/title/Border.js.map +1 -1
  108. package/dist/business/Poi/title/Ellipse.js +7 -27
  109. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  110. package/dist/business/Poi/title/index.js +208 -292
  111. package/dist/business/Poi/title/index.js.map +1 -1
  112. package/dist/business/Poi/tools.js +22 -19
  113. package/dist/business/Poi/tools.js.map +1 -1
  114. package/dist/business/Poi/types.d.ts +3 -0
  115. package/dist/business/Poi/types.js.map +1 -1
  116. package/dist/business/Sphere/index.js +47 -72
  117. package/dist/business/Sphere/index.js.map +1 -1
  118. package/dist/business/Spline/index.js +190 -245
  119. package/dist/business/Spline/index.js.map +1 -1
  120. package/dist/business/SplitBuilding/index.js +327 -536
  121. package/dist/business/SplitBuilding/index.js.map +1 -1
  122. package/dist/business/SplitBuilding/type.js +2 -2
  123. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +218 -275
  124. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  125. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +132 -177
  126. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  127. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +51 -1
  128. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  129. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +6 -1
  130. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  131. package/dist/business/TrafficComponents/base.js +32 -55
  132. package/dist/business/TrafficComponents/base.js.map +1 -1
  133. package/dist/business/TrafficComponents/utils.js +25 -24
  134. package/dist/business/TrafficComponents/utils.js.map +1 -1
  135. package/dist/business/Utils/Curve.js +40 -56
  136. package/dist/business/Utils/Curve.js.map +1 -1
  137. package/dist/business/Utils/constant.js +1 -1
  138. package/dist/business/Utils/constant.js.map +1 -1
  139. package/dist/business/Utils/defineProps.js +13 -14
  140. package/dist/business/Utils/defineProps.js.map +1 -1
  141. package/dist/business/Utils/round-curve.js +127 -153
  142. package/dist/business/Utils/round-curve.js.map +1 -1
  143. package/dist/business/VideoPanel/index.js +258 -319
  144. package/dist/business/VideoPanel/index.js.map +1 -1
  145. package/dist/business/Water/index.js +78 -108
  146. package/dist/business/Water/index.js.map +1 -1
  147. package/dist/business/Water/types.js +1 -1
  148. package/dist/business/Water/types.js.map +1 -1
  149. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
  150. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  151. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
  152. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  153. package/dist/core/Controls/FirstViewControl/index.js +84 -96
  154. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  155. package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
  156. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  157. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  158. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  159. package/dist/core/Controls/ThirdViewControl/index.js +19 -28
  160. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  161. package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
  162. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  163. package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
  164. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  165. package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
  166. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  167. package/dist/core/Controls/ThirdViewControl/player.js +66 -91
  168. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  169. package/dist/core/Controls/base.js +14 -30
  170. package/dist/core/Controls/base.js.map +1 -1
  171. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
  172. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  173. package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
  174. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  175. package/dist/core/Light/PointLight/PointLightExt.js +4 -21
  176. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  177. package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
  178. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  179. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
  180. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  181. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
  182. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  183. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
  184. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  185. package/dist/core/Material/SurfaceMaterial/index.js +76 -172
  186. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  187. package/dist/core/Material/decorators.js +6 -11
  188. package/dist/core/Material/decorators.js.map +1 -1
  189. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
  190. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  191. package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
  192. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  193. package/dist/core/PostEffects/bloomPass.js +17 -10
  194. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  195. package/dist/core/PostEffects/bloomSelect.js +60 -43
  196. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  197. package/dist/core/PostEffects/colorifyPass.js +17 -13
  198. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  199. package/dist/core/PostEffects/index.js +28 -22
  200. package/dist/core/PostEffects/index.js.map +1 -1
  201. package/dist/core/PostEffects/outlinePass.js +37 -50
  202. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  203. package/dist/core/PostEffects/postprocessing.js +14 -12
  204. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  205. package/dist/core/PostEffects/saoPass.js +15 -10
  206. package/dist/core/PostEffects/saoPass.js.map +1 -1
  207. package/dist/core/PostEffects/shader/colorify.js +22 -3
  208. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  209. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
  210. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  211. package/dist/core/PostEffects/shader/mapping.js +66 -3
  212. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  213. package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
  214. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  215. package/dist/core/SceneEffect/grow/grow.js +85 -101
  216. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  217. package/dist/core/SceneEffect/grow/style_down.js +60 -77
  218. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  219. package/dist/core/SceneEffect/grow/style_up.js +64 -81
  220. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  221. package/dist/core/SceneEffect/grow/type.js +2 -2
  222. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  223. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
  224. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  225. package/dist/core/WeatherSystem/hdr/index.js +69 -105
  226. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  227. package/dist/core/WeatherSystem/index.js +77 -124
  228. package/dist/core/WeatherSystem/index.js.map +1 -1
  229. package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
  230. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  231. package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
  232. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  233. package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
  234. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  235. package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
  236. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  237. package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
  238. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  239. package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
  240. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  241. package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
  242. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  243. package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
  244. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  245. package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
  246. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  247. package/dist/core/WeatherSystem/shaders/fog.js +103 -3
  248. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  249. package/dist/core/WeatherSystem/shaders/rain.js +206 -7
  250. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  251. package/dist/core/WeatherSystem/shaders/sky.js +87 -3
  252. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  253. package/dist/core/WeatherSystem/sky/index.js +104 -135
  254. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  255. package/dist/core/WeatherSystem/utils/constant.js +44 -38
  256. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  257. package/dist/core/WeatherSystem/utils/math.js +18 -25
  258. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  259. package/dist/core/WeatherSystem/utils/type.js +1 -1
  260. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  261. package/dist/core/WeatherSystem/weather/index.js +96 -141
  262. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  263. package/dist/utils/index.js +1 -1
  264. package/dist/utils/index.js.map +1 -1
  265. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["Group","Mesh","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","use","RainShader","Rain_Panel","Snow_panle","textureLoader","_defaultOption","texture1","load","texture2rain","size","snowT1density","rainT1density","snowSpeed","cameraPos","rainSpeed","rainAngle","RainMesh","_Mesh","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","group","width","height","wrapS","wrapT","setUniforms","_objectSpread","iTime","createPlane","x","y","z","rotationX","rotationY","rotationZ","suiji","Math","random","geometry","material","uniforms","vertexShader","vertexShaderFar","fragmentShader","fragmentShaderFar","side","blending","transparent","depthWrite","depthTest","plane","renderOrder","position","set","rotation","createNearPlane","vertexShaderNear","fragmentShaderNear","count","distance","j","add","PI","material2d","vertexShader2d","fragmentShader2d","rain2dGeometry","rain2d","_createClass","key","value","_this2","Object","assign","keys","forEach","setSize","setSpeed","speed","setRain","scale","setSnow","setEffect","ops","_this3","update","_use$useScene","useScene","camera","_this$uniforms","_delete","remove","removeFromParent"],"sources":["../../../../../src/core/WeatherSystem/objects/rain/plane.ts"],"sourcesContent":["import { Group, Mesh, PlaneGeometry, RepeatWrapping, ShaderMaterial, TextureLoader, use } from '@anov/3d-core'\nimport RainShader from '../../shaders/rain'\nimport type { IRainOption } from '../../utils/constant'\nimport { Rain_Panel, Snow_panle } from '../../utils/constant'\n\nconst textureLoader = new TextureLoader()\n\nconst _defaultOption: IRainOption = {\n texture1: textureLoader.load(Snow_panle),\n texture2rain: textureLoader.load(Rain_Panel),\n size: 5.0,\n snowT1density: 0.1,\n rainT1density: 0.1,\n snowSpeed: 1.0,\n cameraPos: [0, 500.0, 0],\n rainSpeed: 3.0,\n rainAngle: 0.0,\n}\n\nclass RainMesh extends Mesh {\n option: IRainOption = _defaultOption\n uniforms: any = {}\n loaded!: Promise<Boolean>\n\n constructor(option: { width: number; height: number; segment: number }) {\n super()\n\n const group = new Group()\n const { width, height } = option\n\n if (this.option.texture1)\n this.option.texture1.wrapS = this.option.texture1.wrapT = RepeatWrapping\n if (this.option.texture2rain)\n this.option.texture2rain.wrapS = this.option.texture2rain.wrapT = RepeatWrapping\n this.setUniforms({\n ...this.option,\n iTime: 0,\n })\n\n const createPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 3)\n const geometry = new PlaneGeometry(width + suiji, height + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderFar,\n fragmentShader: RainShader.fragmentShaderFar,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: false,\n depthTest: true,\n })\n\n const plane = new Mesh(geometry, material)\n plane.renderOrder = 10\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const createNearPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 1)\n const geometry = new PlaneGeometry(width / 2 + suiji, height / 2 + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderNear,\n fragmentShader: RainShader.fragmentShaderNear,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: true,\n depthTest: true,\n })\n\n const plane = new Mesh(geometry, material)\n plane.renderOrder = 10\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const count = 6\n const distance = 150\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(0, 0, j * distance, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(j * distance, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(0, 0, j * j * j * 1, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(j * j * j * 1, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n const material2d = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShader2d,\n fragmentShader: RainShader.fragmentShader2d,\n side: 2,\n transparent: true,\n depthWrite: false,\n })\n\n const rain2dGeometry = new PlaneGeometry(100, 100)\n const rain2d = new Mesh(rain2dGeometry, material2d)\n rain2d.renderOrder = 10\n group.add(rain2d)\n\n this.add(group)\n }\n\n private setUniforms(option: IRainOption) {\n Object.assign(this.option, option)\n\n Object.keys(option).forEach((key: string) => {\n this.uniforms[key] = { value: option[key] }\n })\n }\n\n public setSize(size: number) {\n this.setUniforms({ size })\n }\n\n public setSpeed(speed: number) {\n this.setUniforms({ snowSpeed: speed })\n }\n\n public setRain(scale: number) {\n this.setUniforms({ rainT1density: scale })\n }\n\n public setSnow(scale: number) {\n this.setUniforms({ snowT1density: scale })\n }\n\n public setEffect(ops: IRainOption) {\n const { size, snowT1density, rainT1density, snowSpeed } = ops\n Object.keys(ops).forEach((key: string) => {\n switch (key) {\n case 'size':\n this.setSize(size!)\n break\n case 'snowT1density':\n this.setSpeed(snowSpeed!)\n break\n case 'rainT1density':\n this.setRain(rainT1density!)\n break\n case 'snowSpeed':\n this.setSnow(snowT1density!)\n break\n }\n })\n }\n\n public update() {\n const { camera } = use.useScene()\n const { iTime, cameraPos } = this.uniforms\n iTime.value += 0.1\n cameraPos.value = [camera.position.x, camera.position.y, camera.position.z]\n }\n\n delete() {\n this.remove()\n this.removeFromParent()\n }\n}\n\nexport default RainMesh"],"mappings":"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"}
1
+ {"version":3,"names":["Group","Mesh","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","use","RainShader","Rain_Panel","Snow_panle","textureLoader","_defaultOption","texture1","load","texture2rain","size","snowT1density","rainT1density","snowSpeed","cameraPos","rainSpeed","rainAngle","RainMesh","constructor","option","_defineProperty","group","width","height","wrapS","wrapT","setUniforms","_objectSpread","iTime","createPlane","x","y","z","rotationX","rotationY","rotationZ","suiji","Math","random","geometry","material","uniforms","vertexShader","vertexShaderFar","fragmentShader","fragmentShaderFar","side","blending","transparent","depthWrite","depthTest","plane","renderOrder","position","set","rotation","createNearPlane","vertexShaderNear","fragmentShaderNear","count","distance","j","add","PI","material2d","vertexShader2d","fragmentShader2d","rain2dGeometry","rain2d","Object","assign","keys","forEach","key","value","setSize","setSpeed","speed","setRain","scale","setSnow","setEffect","ops","update","camera","useScene","delete","remove","removeFromParent"],"sources":["../../../../../src/core/WeatherSystem/objects/rain/plane.ts"],"sourcesContent":["import { Group, Mesh, PlaneGeometry, RepeatWrapping, ShaderMaterial, TextureLoader, use } from '@anov/3d-core'\nimport RainShader from '../../shaders/rain'\nimport type { IRainOption } from '../../utils/constant'\nimport { Rain_Panel, Snow_panle } from '../../utils/constant'\n\nconst textureLoader = new TextureLoader()\n\nconst _defaultOption: IRainOption = {\n texture1: textureLoader.load(Snow_panle),\n texture2rain: textureLoader.load(Rain_Panel),\n size: 5.0,\n snowT1density: 0.1,\n rainT1density: 0.1,\n snowSpeed: 1.0,\n cameraPos: [0, 500.0, 0],\n rainSpeed: 3.0,\n rainAngle: 0.0,\n}\n\nclass RainMesh extends Mesh {\n option: IRainOption = _defaultOption\n uniforms: any = {}\n loaded!: Promise<Boolean>\n\n constructor(option: { width: number; height: number; segment: number }) {\n super()\n\n const group = new Group()\n const { width, height } = option\n\n if (this.option.texture1)\n this.option.texture1.wrapS = this.option.texture1.wrapT = RepeatWrapping\n if (this.option.texture2rain)\n this.option.texture2rain.wrapS = this.option.texture2rain.wrapT = RepeatWrapping\n this.setUniforms({\n ...this.option,\n iTime: 0,\n })\n\n const createPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 3)\n const geometry = new PlaneGeometry(width + suiji, height + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderFar,\n fragmentShader: RainShader.fragmentShaderFar,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: false,\n depthTest: true,\n })\n\n const plane = new Mesh(geometry, material)\n plane.renderOrder = 10\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const createNearPlane = (x: number, y: number, z: number, rotationX: number, rotationY: number, rotationZ: number) => {\n const suiji = Math.random() * (width / 1)\n const geometry = new PlaneGeometry(width / 2 + suiji, height / 2 + suiji)\n const material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShaderNear,\n fragmentShader: RainShader.fragmentShaderNear,\n side: 2,\n blending: 2,\n transparent: true,\n depthWrite: true,\n depthTest: true,\n })\n\n const plane = new Mesh(geometry, material)\n plane.renderOrder = 10\n plane.position.set(x, y, z)\n plane.rotation.set(rotationX, rotationY, rotationZ)\n return plane\n }\n\n const count = 6\n const distance = 150\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(0, 0, j * distance, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -count; j <= count; j++) {\n const plane = createPlane(j * distance, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(0, 0, j * j * j * 1, 0, 0, 0)\n group.add(plane)\n }\n for (let j = -15; j <= 15; j++) {\n const plane = createNearPlane(j * j * j * 1, 0, 0, 0, Math.PI / 2, 0)\n group.add(plane)\n }\n\n const material2d = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: RainShader.vertexShader2d,\n fragmentShader: RainShader.fragmentShader2d,\n side: 2,\n transparent: true,\n depthWrite: false,\n })\n\n const rain2dGeometry = new PlaneGeometry(100, 100)\n const rain2d = new Mesh(rain2dGeometry, material2d)\n rain2d.renderOrder = 10\n group.add(rain2d)\n\n this.add(group)\n }\n\n private setUniforms(option: IRainOption) {\n Object.assign(this.option, option)\n\n Object.keys(option).forEach((key: string) => {\n this.uniforms[key] = { value: option[key] }\n })\n }\n\n public setSize(size: number) {\n this.setUniforms({ size })\n }\n\n public setSpeed(speed: number) {\n this.setUniforms({ snowSpeed: speed })\n }\n\n public setRain(scale: number) {\n this.setUniforms({ rainT1density: scale })\n }\n\n public setSnow(scale: number) {\n this.setUniforms({ snowT1density: scale })\n }\n\n public setEffect(ops: IRainOption) {\n const { size, snowT1density, rainT1density, snowSpeed } = ops\n Object.keys(ops).forEach((key: string) => {\n switch (key) {\n case 'size':\n this.setSize(size!)\n break\n case 'snowT1density':\n this.setSpeed(snowSpeed!)\n break\n case 'rainT1density':\n this.setRain(rainT1density!)\n break\n case 'snowSpeed':\n this.setSnow(snowT1density!)\n break\n }\n })\n }\n\n public update() {\n const { camera } = use.useScene()\n const { iTime, cameraPos } = this.uniforms\n iTime.value += 0.1\n cameraPos.value = [camera.position.x, camera.position.y, camera.position.z]\n }\n\n delete() {\n this.remove()\n this.removeFromParent()\n }\n}\n\nexport default RainMesh"],"mappings":"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"}
@@ -1,26 +1,9 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
10
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
12
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
15
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
16
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
17
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
18
1
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
20
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
4
  import { BufferGeometry, Float32BufferAttribute, Points, PointsMaterial, TextureLoader } from '@anov/3d-core';
22
5
  import { Snow_Icon } from "../../utils/constant";
23
- var _defaultOption = {
6
+ const _defaultOption = {
24
7
  range: 1000,
25
8
  count: 10000,
26
9
  opacity: 0.6,
@@ -28,141 +11,110 @@ var _defaultOption = {
28
11
  size: 10,
29
12
  speed: [0, 2, 0]
30
13
  };
31
- var SnowMesh = /*#__PURE__*/function (_Points) {
32
- _inherits(SnowMesh, _Points);
33
- var _super = _createSuper(SnowMesh);
34
- function SnowMesh() {
35
- var _this;
36
- var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37
- _classCallCheck(this, SnowMesh);
38
- _this = _super.call(this);
39
- _defineProperty(_assertThisInitialized(_this), "option", _defaultOption);
40
- Object.assign(_this.option, opt);
41
- var _this$option = _this.option,
42
- range = _this$option.range,
43
- count = _this$option.count,
44
- size = _this$option.size,
45
- icon = _this$option.icon,
46
- opacity = _this$option.opacity;
47
- var material = new PointsMaterial({
48
- size: size,
14
+ class SnowMesh extends Points {
15
+ constructor(opt = {}) {
16
+ super();
17
+ _defineProperty(this, "option", _defaultOption);
18
+ Object.assign(this.option, opt);
19
+ const {
20
+ range,
21
+ count,
22
+ size,
23
+ icon,
24
+ opacity
25
+ } = this.option;
26
+ const material = new PointsMaterial({
27
+ size,
49
28
  map: new TextureLoader().load(icon),
50
29
  transparent: true,
51
- opacity: opacity,
30
+ opacity,
52
31
  depthTest: false
53
32
  });
54
- _this.geometry = _this.getPointGeometry(count, range);
55
- _this.material = material;
56
- _this.renderOrder = 1;
57
- return _this;
33
+ this.geometry = this.getPointGeometry(count, range);
34
+ this.material = material;
35
+ this.renderOrder = 1;
58
36
  }
59
- _createClass(SnowMesh, [{
60
- key: "getPointGeometry",
61
- value: function getPointGeometry(count, range) {
62
- var bufferGeometry = new BufferGeometry();
63
- var vertices = [];
64
- for (var i = 0; i < count; i++) {
65
- vertices.push(Math.random() * range - range / 2, Math.random() * range, Math.random() * range - range / 2);
66
- }
67
- bufferGeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));
68
- return bufferGeometry;
69
- }
70
- }, {
71
- key: "setIcon",
72
- value: function setIcon(icon) {
73
- this.option.icon = icon;
74
- this.material.map = new TextureLoader().load(icon);
75
- }
76
- }, {
77
- key: "setSize",
78
- value: function setSize(size) {
79
- this.option.size = size;
80
- this.material.size = size;
81
- }
82
- }, {
83
- key: "setCount",
84
- value: function setCount(count) {
85
- this.option.count = count;
86
- this.geometry = this.getPointGeometry(count, this.option.range);
87
- }
88
- }, {
89
- key: "setRange",
90
- value: function setRange(range) {
91
- this.option.range = range;
92
- this.geometry = this.getPointGeometry(this.option.count, range);
93
- }
94
- }, {
95
- key: "setSpeed",
96
- value: function setSpeed(speed) {
97
- if (typeof speed === 'number') this.option.speed = [0, speed, 0];else this.option.speed = speed;
37
+ getPointGeometry(count, range) {
38
+ const bufferGeometry = new BufferGeometry();
39
+ const vertices = [];
40
+ for (let i = 0; i < count; i++) {
41
+ vertices.push(Math.random() * range - range / 2, Math.random() * range, Math.random() * range - range / 2);
98
42
  }
99
- }, {
100
- key: "setEffect",
101
- value: function setEffect(ops) {
102
- var _this2 = this;
103
- var icon = ops.icon,
104
- size = ops.size,
105
- count = ops.count,
106
- speed = ops.speed,
107
- range = ops.range;
108
- Object.keys(ops).forEach(function (key) {
109
- switch (key) {
110
- case 'icon':
111
- _this2.setIcon(icon);
112
- break;
113
- case 'size':
114
- _this2.setSize(size);
115
- break;
116
- case 'range':
117
- _this2.setRange(range);
118
- break;
119
- case 'count':
120
- _this2.setCount(count);
121
- break;
122
- case 'speed':
123
- _this2.setSpeed(speed);
124
- break;
125
- }
126
- });
127
- }
128
- }, {
129
- key: "stop",
130
- value: function stop() {
131
- this.visible = false;
132
- }
133
- }, {
134
- key: "continue",
135
- value: function _continue() {
136
- this.visible = true;
137
- }
138
- }, {
139
- key: "update",
140
- value: function update() {
141
- var positions = this.geometry.attributes.position.array;
142
- var _this$option2 = this.option,
143
- speed = _this$option2.speed,
144
- range = _this$option2.range;
145
- var _ref = speed,
146
- _ref2 = _slicedToArray(_ref, 3),
147
- x = _ref2[0],
148
- y = _ref2[1],
149
- z = _ref2[2];
150
- for (var i = 0; i < positions.length; i += 3) {
151
- positions[i] += x;
152
- positions[i + 1] -= y;
153
- positions[i + 2] += z;
154
- if (positions[i + 1] <= range / -2) positions[i + 1] = range / 2;
43
+ bufferGeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));
44
+ return bufferGeometry;
45
+ }
46
+ setIcon(icon) {
47
+ this.option.icon = icon;
48
+ this.material.map = new TextureLoader().load(icon);
49
+ }
50
+ setSize(size) {
51
+ this.option.size = size;
52
+ this.material.size = size;
53
+ }
54
+ setCount(count) {
55
+ this.option.count = count;
56
+ this.geometry = this.getPointGeometry(count, this.option.range);
57
+ }
58
+ setRange(range) {
59
+ this.option.range = range;
60
+ this.geometry = this.getPointGeometry(this.option.count, range);
61
+ }
62
+ setSpeed(speed) {
63
+ if (typeof speed === 'number') this.option.speed = [0, speed, 0];else this.option.speed = speed;
64
+ }
65
+ setEffect(ops) {
66
+ const {
67
+ icon,
68
+ size,
69
+ count,
70
+ speed,
71
+ range
72
+ } = ops;
73
+ Object.keys(ops).forEach(key => {
74
+ switch (key) {
75
+ case 'icon':
76
+ this.setIcon(icon);
77
+ break;
78
+ case 'size':
79
+ this.setSize(size);
80
+ break;
81
+ case 'range':
82
+ this.setRange(range);
83
+ break;
84
+ case 'count':
85
+ this.setCount(count);
86
+ break;
87
+ case 'speed':
88
+ this.setSpeed(speed);
89
+ break;
155
90
  }
156
- this.geometry.attributes.position.needsUpdate = true;
157
- }
158
- }, {
159
- key: "delete",
160
- value: function _delete() {
161
- this.remove();
162
- this.removeFromParent();
91
+ });
92
+ }
93
+ stop() {
94
+ this.visible = false;
95
+ }
96
+ continue() {
97
+ this.visible = true;
98
+ }
99
+ update() {
100
+ const positions = this.geometry.attributes.position.array;
101
+ const {
102
+ speed,
103
+ range
104
+ } = this.option;
105
+ const [x, y, z] = speed;
106
+ for (let i = 0; i < positions.length; i += 3) {
107
+ positions[i] += x;
108
+ positions[i + 1] -= y;
109
+ positions[i + 2] += z;
110
+ if (positions[i + 1] <= range / -2) positions[i + 1] = range / 2;
163
111
  }
164
- }]);
165
- return SnowMesh;
166
- }(Points);
112
+ this.geometry.attributes.position.needsUpdate = true;
113
+ }
114
+ delete() {
115
+ this.remove();
116
+ this.removeFromParent();
117
+ }
118
+ }
167
119
  export default SnowMesh;
168
120
  //# sourceMappingURL=point.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BufferGeometry","Float32BufferAttribute","Points","PointsMaterial","TextureLoader","Snow_Icon","_defaultOption","range","count","opacity","icon","size","speed","SnowMesh","_Points","_inherits","_super","_createSuper","_this","opt","arguments","length","undefined","_classCallCheck","call","_defineProperty","_assertThisInitialized","Object","assign","option","_this$option","material","map","load","transparent","depthTest","geometry","getPointGeometry","renderOrder","_createClass","key","value","bufferGeometry","vertices","i","push","Math","random","setAttribute","setIcon","setSize","setCount","setRange","setSpeed","setEffect","ops","_this2","keys","forEach","stop","visible","_continue","update","positions","attributes","position","array","_this$option2","_ref","_ref2","_slicedToArray","x","y","z","needsUpdate","_delete","remove","removeFromParent"],"sources":["../../../../../src/core/WeatherSystem/objects/rain/point.ts"],"sourcesContent":["import { BufferGeometry, Float32BufferAttribute, Points, PointsMaterial, ShaderMaterial, TextureLoader, Vector3, use } from '@anov/3d-core'\nimport type { ISnowOption } from '../../utils/constant'\nimport { Snow_Icon } from '../../utils/constant'\n\nconst _defaultOption: ISnowOption = {\n range: 1000,\n count: 10000,\n opacity: 0.6,\n icon: Snow_Icon,\n size: 10,\n speed: [0, 2, 0],\n}\n\nclass SnowMesh extends Points {\n option: ISnowOption = _defaultOption\n\n constructor(opt: ISnowOption = {}) {\n super()\n Object.assign(this.option, opt)\n\n const { range, count, size, icon, opacity } = this.option\n const material = new PointsMaterial({\n size,\n map: new TextureLoader().load(icon!),\n transparent: true,\n opacity,\n depthTest: false,\n })\n\n this.geometry = this.getPointGeometry(count!, range!)\n this.material = material\n\n this.renderOrder = 1\n }\n\n private getPointGeometry(count: number, range: number) {\n const bufferGeometry = new BufferGeometry()\n const vertices = []\n\n for (let i = 0; i < count!; i++) {\n vertices.push(\n Math.random() * range! - range! / 2,\n Math.random() * range!,\n Math.random() * range! - range! / 2,\n )\n }\n bufferGeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3))\n return bufferGeometry\n }\n\n setIcon(icon: string) {\n this.option.icon = icon;\n (this.material as PointsMaterial).map = new TextureLoader().load(icon)\n }\n\n setSize(size: number) {\n this.option.size = size;\n (this.material as PointsMaterial).size = size\n }\n\n setCount(count: number) {\n this.option.count = count\n this.geometry = this.getPointGeometry(count!, this.option.range!)\n }\n\n setRange(range: number) {\n this.option.range = range\n this.geometry = this.getPointGeometry(this.option.count!, range!)\n }\n\n setSpeed(speed: number | number[]) {\n if (typeof speed === 'number')\n this.option.speed = [0, speed, 0]\n else\n this.option.speed = speed\n }\n\n public setEffect(ops: ISnowOption) {\n const { icon, size, count, speed, range } = ops\n Object.keys(ops).forEach((key: string) => {\n switch (key) {\n case 'icon':\n this.setIcon(icon!)\n break\n case 'size':\n this.setSize(size!)\n break\n case 'range':\n this.setRange(range!)\n break\n case 'count':\n this.setCount(count!)\n break\n case 'speed':\n this.setSpeed(speed!)\n break\n }\n })\n }\n\n stop() {\n this.visible = false\n }\n\n continue() {\n this.visible = true\n }\n\n update() {\n const positions = this.geometry.attributes.position.array\n\n const { speed, range } = this.option\n const [x, y, z] = speed!\n\n for (let i = 0; i < positions.length; i += 3) {\n positions[i] += x\n positions[i + 1] -= y\n positions[i + 2] += z\n\n if (positions[i + 1] <= range! / -2)\n positions[i + 1] = range! / 2\n }\n\n this.geometry.attributes.position.needsUpdate = true\n }\n\n delete() {\n this.remove()\n this.removeFromParent()\n }\n}\n\nexport default SnowMesh"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAASA,cAAc,EAAEC,sBAAsB,EAAEC,MAAM,EAAEC,cAAc,EAAkBC,aAAa,QAAsB,eAAe;AAE3I,SAASC,SAAS;AAElB,IAAMC,cAA2B,GAAG;EAClCC,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE,KAAK;EACZC,OAAO,EAAE,GAAG;EACZC,IAAI,EAAEL,SAAS;EACfM,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACjB,CAAC;AAAA,IAEKC,QAAQ,0BAAAC,OAAA;EAAAC,SAAA,CAAAF,QAAA,EAAAC,OAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,QAAA;EAGZ,SAAAA,SAAA,EAAmC;IAAA,IAAAK,KAAA;IAAA,IAAvBC,GAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAAG,eAAA,OAAAV,QAAA;IAC/BK,KAAA,GAAAF,MAAA,CAAAQ,IAAA;IAAOC,eAAA,CAAAC,sBAAA,CAAAR,KAAA,aAHaZ,cAAc;IAIlCqB,MAAM,CAACC,MAAM,CAACV,KAAA,CAAKW,MAAM,EAAEV,GAAG,CAAC;IAE/B,IAAAW,YAAA,GAA8CZ,KAAA,CAAKW,MAAM;MAAjDtB,KAAK,GAAAuB,YAAA,CAALvB,KAAK;MAAEC,KAAK,GAAAsB,YAAA,CAALtB,KAAK;MAAEG,IAAI,GAAAmB,YAAA,CAAJnB,IAAI;MAAED,IAAI,GAAAoB,YAAA,CAAJpB,IAAI;MAAED,OAAO,GAAAqB,YAAA,CAAPrB,OAAO;IACzC,IAAMsB,QAAQ,GAAG,IAAI5B,cAAc,CAAC;MAClCQ,IAAI,EAAJA,IAAI;MACJqB,GAAG,EAAE,IAAI5B,aAAa,CAAC,CAAC,CAAC6B,IAAI,CAACvB,IAAK,CAAC;MACpCwB,WAAW,EAAE,IAAI;MACjBzB,OAAO,EAAPA,OAAO;MACP0B,SAAS,EAAE;IACb,CAAC,CAAC;IAEFjB,KAAA,CAAKkB,QAAQ,GAAGlB,KAAA,CAAKmB,gBAAgB,CAAC7B,KAAK,EAAGD,KAAM,CAAC;IACrDW,KAAA,CAAKa,QAAQ,GAAGA,QAAQ;IAExBb,KAAA,CAAKoB,WAAW,GAAG,CAAC;IAAA,OAAApB,KAAA;EACtB;EAACqB,YAAA,CAAA1B,QAAA;IAAA2B,GAAA;IAAAC,KAAA,EAED,SAAAJ,iBAAyB7B,KAAa,EAAED,KAAa,EAAE;MACrD,IAAMmC,cAAc,GAAG,IAAI1C,cAAc,CAAC,CAAC;MAC3C,IAAM2C,QAAQ,GAAG,EAAE;MAEnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpC,KAAM,EAAEoC,CAAC,EAAE,EAAE;QAC/BD,QAAQ,CAACE,IAAI,CACXC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAGxC,KAAM,GAAGA,KAAK,GAAI,CAAC,EACnCuC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAGxC,KAAM,EACtBuC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAGxC,KAAM,GAAGA,KAAK,GAAI,CACpC,CAAC;MACH;MACAmC,cAAc,CAACM,YAAY,CAAC,UAAU,EAAE,IAAI/C,sBAAsB,CAAC0C,QAAQ,EAAE,CAAC,CAAC,CAAC;MAChF,OAAOD,cAAc;IACvB;EAAC;IAAAF,GAAA;IAAAC,KAAA,EAED,SAAAQ,QAAQvC,IAAY,EAAE;MACpB,IAAI,CAACmB,MAAM,CAACnB,IAAI,GAAGA,IAAI;MACtB,IAAI,CAACqB,QAAQ,CAAoBC,GAAG,GAAG,IAAI5B,aAAa,CAAC,CAAC,CAAC6B,IAAI,CAACvB,IAAI,CAAC;IACxE;EAAC;IAAA8B,GAAA;IAAAC,KAAA,EAED,SAAAS,QAAQvC,IAAY,EAAE;MACpB,IAAI,CAACkB,MAAM,CAAClB,IAAI,GAAGA,IAAI;MACtB,IAAI,CAACoB,QAAQ,CAAoBpB,IAAI,GAAGA,IAAI;IAC/C;EAAC;IAAA6B,GAAA;IAAAC,KAAA,EAED,SAAAU,SAAS3C,KAAa,EAAE;MACtB,IAAI,CAACqB,MAAM,CAACrB,KAAK,GAAGA,KAAK;MACzB,IAAI,CAAC4B,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CAAC7B,KAAK,EAAG,IAAI,CAACqB,MAAM,CAACtB,KAAM,CAAC;IACnE;EAAC;IAAAiC,GAAA;IAAAC,KAAA,EAED,SAAAW,SAAS7C,KAAa,EAAE;MACtB,IAAI,CAACsB,MAAM,CAACtB,KAAK,GAAGA,KAAK;MACzB,IAAI,CAAC6B,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACR,MAAM,CAACrB,KAAK,EAAGD,KAAM,CAAC;IACnE;EAAC;IAAAiC,GAAA;IAAAC,KAAA,EAED,SAAAY,SAASzC,KAAwB,EAAE;MACjC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAC3B,IAAI,CAACiB,MAAM,CAACjB,KAAK,GAAG,CAAC,CAAC,EAAEA,KAAK,EAAE,CAAC,CAAC,MAEjC,IAAI,CAACiB,MAAM,CAACjB,KAAK,GAAGA,KAAK;IAC7B;EAAC;IAAA4B,GAAA;IAAAC,KAAA,EAED,SAAAa,UAAiBC,GAAgB,EAAE;MAAA,IAAAC,MAAA;MACjC,IAAQ9C,IAAI,GAAgC6C,GAAG,CAAvC7C,IAAI;QAAEC,IAAI,GAA0B4C,GAAG,CAAjC5C,IAAI;QAAEH,KAAK,GAAmB+C,GAAG,CAA3B/C,KAAK;QAAEI,KAAK,GAAY2C,GAAG,CAApB3C,KAAK;QAAEL,KAAK,GAAKgD,GAAG,CAAbhD,KAAK;MACvCoB,MAAM,CAAC8B,IAAI,CAACF,GAAG,CAAC,CAACG,OAAO,CAAC,UAAClB,GAAW,EAAK;QACxC,QAAQA,GAAG;UACT,KAAK,MAAM;YACTgB,MAAI,CAACP,OAAO,CAACvC,IAAK,CAAC;YACnB;UACF,KAAK,MAAM;YACT8C,MAAI,CAACN,OAAO,CAACvC,IAAK,CAAC;YACnB;UACF,KAAK,OAAO;YACV6C,MAAI,CAACJ,QAAQ,CAAC7C,KAAM,CAAC;YACrB;UACF,KAAK,OAAO;YACViD,MAAI,CAACL,QAAQ,CAAC3C,KAAM,CAAC;YACrB;UACF,KAAK,OAAO;YACVgD,MAAI,CAACH,QAAQ,CAACzC,KAAM,CAAC;YACrB;QACJ;MACF,CAAC,CAAC;IACJ;EAAC;IAAA4B,GAAA;IAAAC,KAAA,EAED,SAAAkB,KAAA,EAAO;MACL,IAAI,CAACC,OAAO,GAAG,KAAK;IACtB;EAAC;IAAApB,GAAA;IAAAC,KAAA,EAED,SAAAoB,UAAA,EAAW;MACT,IAAI,CAACD,OAAO,GAAG,IAAI;IACrB;EAAC;IAAApB,GAAA;IAAAC,KAAA,EAED,SAAAqB,OAAA,EAAS;MACP,IAAMC,SAAS,GAAG,IAAI,CAAC3B,QAAQ,CAAC4B,UAAU,CAACC,QAAQ,CAACC,KAAK;MAEzD,IAAAC,aAAA,GAAyB,IAAI,CAACtC,MAAM;QAA5BjB,KAAK,GAAAuD,aAAA,CAALvD,KAAK;QAAEL,KAAK,GAAA4D,aAAA,CAAL5D,KAAK;MACpB,IAAA6D,IAAA,GAAkBxD,KAAK;QAAAyD,KAAA,GAAAC,cAAA,CAAAF,IAAA;QAAhBG,CAAC,GAAAF,KAAA;QAAEG,CAAC,GAAAH,KAAA;QAAEI,CAAC,GAAAJ,KAAA;MAEd,KAAK,IAAIzB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmB,SAAS,CAAC1C,MAAM,EAAEuB,CAAC,IAAI,CAAC,EAAE;QAC5CmB,SAAS,CAACnB,CAAC,CAAC,IAAI2B,CAAC;QACjBR,SAAS,CAACnB,CAAC,GAAG,CAAC,CAAC,IAAI4B,CAAC;QACrBT,SAAS,CAACnB,CAAC,GAAG,CAAC,CAAC,IAAI6B,CAAC;QAErB,IAAIV,SAAS,CAACnB,CAAC,GAAG,CAAC,CAAC,IAAIrC,KAAK,GAAI,CAAC,CAAC,EACjCwD,SAAS,CAACnB,CAAC,GAAG,CAAC,CAAC,GAAGrC,KAAK,GAAI,CAAC;MACjC;MAEA,IAAI,CAAC6B,QAAQ,CAAC4B,UAAU,CAACC,QAAQ,CAACS,WAAW,GAAG,IAAI;IACtD;EAAC;IAAAlC,GAAA;IAAAC,KAAA,EAED,SAAAkC,QAAA,EAAS;MACP,IAAI,CAACC,MAAM,CAAC,CAAC;MACb,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACzB;EAAC;EAAA,OAAAhE,QAAA;AAAA,EApHoBX,MAAM;AAuH7B,eAAeW,QAAQ"}
1
+ {"version":3,"names":["BufferGeometry","Float32BufferAttribute","Points","PointsMaterial","TextureLoader","Snow_Icon","_defaultOption","range","count","opacity","icon","size","speed","SnowMesh","constructor","opt","_defineProperty","Object","assign","option","material","map","load","transparent","depthTest","geometry","getPointGeometry","renderOrder","bufferGeometry","vertices","i","push","Math","random","setAttribute","setIcon","setSize","setCount","setRange","setSpeed","setEffect","ops","keys","forEach","key","stop","visible","continue","update","positions","attributes","position","array","x","y","z","length","needsUpdate","delete","remove","removeFromParent"],"sources":["../../../../../src/core/WeatherSystem/objects/rain/point.ts"],"sourcesContent":["import { BufferGeometry, Float32BufferAttribute, Points, PointsMaterial, ShaderMaterial, TextureLoader, Vector3, use } from '@anov/3d-core'\nimport type { ISnowOption } from '../../utils/constant'\nimport { Snow_Icon } from '../../utils/constant'\n\nconst _defaultOption: ISnowOption = {\n range: 1000,\n count: 10000,\n opacity: 0.6,\n icon: Snow_Icon,\n size: 10,\n speed: [0, 2, 0],\n}\n\nclass SnowMesh extends Points {\n option: ISnowOption = _defaultOption\n\n constructor(opt: ISnowOption = {}) {\n super()\n Object.assign(this.option, opt)\n\n const { range, count, size, icon, opacity } = this.option\n const material = new PointsMaterial({\n size,\n map: new TextureLoader().load(icon!),\n transparent: true,\n opacity,\n depthTest: false,\n })\n\n this.geometry = this.getPointGeometry(count!, range!)\n this.material = material\n\n this.renderOrder = 1\n }\n\n private getPointGeometry(count: number, range: number) {\n const bufferGeometry = new BufferGeometry()\n const vertices = []\n\n for (let i = 0; i < count!; i++) {\n vertices.push(\n Math.random() * range! - range! / 2,\n Math.random() * range!,\n Math.random() * range! - range! / 2,\n )\n }\n bufferGeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3))\n return bufferGeometry\n }\n\n setIcon(icon: string) {\n this.option.icon = icon;\n (this.material as PointsMaterial).map = new TextureLoader().load(icon)\n }\n\n setSize(size: number) {\n this.option.size = size;\n (this.material as PointsMaterial).size = size\n }\n\n setCount(count: number) {\n this.option.count = count\n this.geometry = this.getPointGeometry(count!, this.option.range!)\n }\n\n setRange(range: number) {\n this.option.range = range\n this.geometry = this.getPointGeometry(this.option.count!, range!)\n }\n\n setSpeed(speed: number | number[]) {\n if (typeof speed === 'number')\n this.option.speed = [0, speed, 0]\n else\n this.option.speed = speed\n }\n\n public setEffect(ops: ISnowOption) {\n const { icon, size, count, speed, range } = ops\n Object.keys(ops).forEach((key: string) => {\n switch (key) {\n case 'icon':\n this.setIcon(icon!)\n break\n case 'size':\n this.setSize(size!)\n break\n case 'range':\n this.setRange(range!)\n break\n case 'count':\n this.setCount(count!)\n break\n case 'speed':\n this.setSpeed(speed!)\n break\n }\n })\n }\n\n stop() {\n this.visible = false\n }\n\n continue() {\n this.visible = true\n }\n\n update() {\n const positions = this.geometry.attributes.position.array\n\n const { speed, range } = this.option\n const [x, y, z] = speed!\n\n for (let i = 0; i < positions.length; i += 3) {\n positions[i] += x\n positions[i + 1] -= y\n positions[i + 2] += z\n\n if (positions[i + 1] <= range! / -2)\n positions[i + 1] = range! / 2\n }\n\n this.geometry.attributes.position.needsUpdate = true\n }\n\n delete() {\n this.remove()\n this.removeFromParent()\n }\n}\n\nexport default SnowMesh"],"mappings":"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"}
@@ -1,24 +1,13 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
1
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
2
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
8
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
11
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
14
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
6
  import { BufferAttribute, Mesh, RepeatWrapping, ShaderMaterial, SphereGeometry, TextureLoader } from '@anov/3d-core';
18
7
  import cloudShader from "../../shaders/cloud";
19
8
  import { CloudDensity, T_TileNoise, T_soft_smoke } from "../../utils/constant";
20
- var textureLoader = new TextureLoader();
21
- var _defaultOption = {
9
+ const textureLoader = new TextureLoader();
10
+ const _defaultOption = {
22
11
  texture1: textureLoader.load(T_soft_smoke),
23
12
  texture2: textureLoader.load(T_TileNoise),
24
13
  duration: 2,
@@ -31,40 +20,36 @@ var _defaultOption = {
31
20
  flash: 0.3,
32
21
  skyTime: 7.0
33
22
  };
34
- var CloudMesh = /*#__PURE__*/function (_Mesh) {
35
- _inherits(CloudMesh, _Mesh);
36
- var _super = _createSuper(CloudMesh);
37
- function CloudMesh() {
38
- var _this;
39
- _classCallCheck(this, CloudMesh);
40
- _this = _super.call(this);
41
- _defineProperty(_assertThisInitialized(_this), "option", _defaultOption);
42
- _defineProperty(_assertThisInitialized(_this), "uniforms", {});
43
- _defineProperty(_assertThisInitialized(_this), "mesh", void 0);
44
- _defineProperty(_assertThisInitialized(_this), "loaded", void 0);
45
- if (_this.option.texture1) _this.option.texture1.wrapS = _this.option.texture1.wrapT = RepeatWrapping;
46
- if (_this.option.texture2) _this.option.texture2.wrapS = _this.option.texture2.wrapT = RepeatWrapping;
47
- _this.setUniforms(_objectSpread(_objectSpread({}, _this.option), {}, {
23
+ class CloudMesh extends Mesh {
24
+ constructor() {
25
+ super();
26
+ _defineProperty(this, "option", _defaultOption);
27
+ _defineProperty(this, "uniforms", {});
28
+ _defineProperty(this, "mesh", void 0);
29
+ _defineProperty(this, "loaded", void 0);
30
+ if (this.option.texture1) this.option.texture1.wrapS = this.option.texture1.wrapT = RepeatWrapping;
31
+ if (this.option.texture2) this.option.texture2.wrapS = this.option.texture2.wrapT = RepeatWrapping;
32
+ this.setUniforms(_objectSpread(_objectSpread({}, this.option), {}, {
48
33
  iTime: 0
49
34
  }));
50
- _this.geometry = new SphereGeometry(1, 320, 320, 0, Math.PI * 2, 0, 1.5);
51
- var positions = _this.geometry.attributes.position.array;
52
- var uvs = new Float32Array(positions.length / 3 * 2); // 创建新的 UV 数组
35
+ this.geometry = new SphereGeometry(1, 320, 320, 0, Math.PI * 2, 0, 1.5);
36
+ const positions = this.geometry.attributes.position.array;
37
+ const uvs = new Float32Array(positions.length / 3 * 2); // 创建新的 UV 数组
53
38
 
54
39
  // 重新计算 UV 坐标
55
- for (var i = 0; i < positions.length / 3; i++) {
56
- var x = positions[i * 3];
57
- var z = positions[i * 3 + 2];
58
- var u = (x * 0.8 + 1) / 2; // 将 x 坐标映射到 [0, 1]
59
- var v = (z * 0.8 + 1) / 2; // 将 z 坐标映射到 [0, 1]
40
+ for (let i = 0; i < positions.length / 3; i++) {
41
+ const x = positions[i * 3];
42
+ const z = positions[i * 3 + 2];
43
+ const u = (x * 0.8 + 1) / 2; // 将 x 坐标映射到 [0, 1]
44
+ const v = (z * 0.8 + 1) / 2; // 将 z 坐标映射到 [0, 1]
60
45
 
61
46
  uvs[i * 2] = u;
62
47
  uvs[i * 2 + 1] = v;
63
48
  }
64
49
  // 将新的 UV 坐标添加到几何体
65
- _this.geometry.setAttribute('uv', new BufferAttribute(uvs, 2));
66
- _this.material = new ShaderMaterial({
67
- uniforms: _this.uniforms,
50
+ this.geometry.setAttribute('uv', new BufferAttribute(uvs, 2));
51
+ this.material = new ShaderMaterial({
52
+ uniforms: this.uniforms,
68
53
  vertexShader: cloudShader.vertexShader,
69
54
  fragmentShader: cloudShader.fragmentShader,
70
55
  side: 2,
@@ -73,75 +58,57 @@ var CloudMesh = /*#__PURE__*/function (_Mesh) {
73
58
  });
74
59
  // this.position.y = -2000
75
60
  // this.scale.set (19990, 6000, 19990)
76
- return _this;
77
61
  }
78
62
 
79
63
  /**
80
64
  * 设置天气的Uniforms
81
65
  * @param option
82
66
  */
83
- _createClass(CloudMesh, [{
84
- key: "setUniforms",
85
- value: function setUniforms(option) {
86
- var _this2 = this;
87
- Object.assign(this.option, option);
88
- Object.keys(option).forEach(function (key) {
89
- _this2.uniforms[key] = {
90
- value: option[key]
91
- };
92
- });
93
- }
94
- }, {
95
- key: "setTime",
96
- value: function setTime(time) {
97
- this.setUniforms({
98
- skyTime: time
99
- });
100
- // console.log(time)
101
- // this.setUniforms({ skyTime: time.toFixed(1) })
102
- }
103
- }, {
104
- key: "setAlpha",
105
- value: function setAlpha(alpha) {
106
- this.setUniforms({
107
- cloudalpha: alpha
108
- });
109
- }
110
- }, {
111
- key: "setScale",
112
- value: function setScale(scale) {
113
- this.setUniforms({
114
- cloudscale: scale
115
- });
116
- }
117
- }, {
118
- key: "setSpeed",
119
- value: function setSpeed(speed) {
120
- this.setUniforms({
121
- speed: speed
122
- });
123
- }
124
- }, {
125
- key: "setFlash",
126
- value: function setFlash(flash) {
127
- this.setUniforms({
128
- flash: flash
129
- });
130
- }
131
- }, {
132
- key: "setEffect",
133
- value: function setEffect(type, ops) {
134
- var density = CloudDensity[type] || {};
135
- this.setUniforms(_objectSpread(_objectSpread({}, density), ops));
136
- }
137
- }, {
138
- key: "update",
139
- value: function update() {
140
- var iTime = this.uniforms.iTime;
141
- iTime.value += 0.005;
142
- }
143
- }]);
144
- return CloudMesh;
145
- }(Mesh);
67
+ setUniforms(option) {
68
+ Object.assign(this.option, option);
69
+ Object.keys(option).forEach(key => {
70
+ this.uniforms[key] = {
71
+ value: option[key]
72
+ };
73
+ });
74
+ }
75
+ setTime(time) {
76
+ this.setUniforms({
77
+ skyTime: time
78
+ });
79
+ // console.log(time)
80
+ // this.setUniforms({ skyTime: time.toFixed(1) })
81
+ }
82
+ setAlpha(alpha) {
83
+ this.setUniforms({
84
+ cloudalpha: alpha
85
+ });
86
+ }
87
+ setScale(scale) {
88
+ this.setUniforms({
89
+ cloudscale: scale
90
+ });
91
+ }
92
+ setSpeed(speed) {
93
+ this.setUniforms({
94
+ speed
95
+ });
96
+ }
97
+ setFlash(flash) {
98
+ this.setUniforms({
99
+ flash
100
+ });
101
+ }
102
+ setEffect(type, ops) {
103
+ const density = CloudDensity[type] || {};
104
+ this.setUniforms(_objectSpread(_objectSpread({}, density), ops));
105
+ }
106
+ update() {
107
+ const {
108
+ iTime
109
+ } = this.uniforms;
110
+ iTime.value += 0.005;
111
+ }
112
+ }
146
113
  export default CloudMesh;
147
114
  //# sourceMappingURL=cloud.js.map