@anov/3d-ability 0.0.142 → 0.0.143

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 (256) hide show
  1. package/dist/business/Animation/motion/index.js +56 -35
  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 +187 -146
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +112 -120
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +130 -140
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +483 -267
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +26 -14
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +46 -21
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +234 -189
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +81 -52
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +79 -51
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +21 -7
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +162 -96
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +291 -208
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +22 -8
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +467 -380
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +525 -405
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +3 -69
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +242 -201
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +88 -55
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +176 -145
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +294 -196
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +3 -36
  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 +551 -377
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +58 -92
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +16 -95
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +78 -51
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.js +336 -248
  72. package/dist/business/Poi/index.js.map +1 -1
  73. package/dist/business/Poi/link/Cylinder.js +89 -56
  74. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  75. package/dist/business/Poi/link/Pyramid.js +165 -104
  76. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  77. package/dist/business/Poi/link/index.js +114 -54
  78. package/dist/business/Poi/link/index.js.map +1 -1
  79. package/dist/business/Poi/panel/index.js +373 -315
  80. package/dist/business/Poi/panel/index.js.map +1 -1
  81. package/dist/business/Poi/panel/utils.js +10 -5
  82. package/dist/business/Poi/panel/utils.js.map +1 -1
  83. package/dist/business/Poi/particle/DoubleCircle.js +107 -71
  84. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  85. package/dist/business/Poi/particle/DynamicCircle.js +111 -75
  86. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  87. package/dist/business/Poi/particle/SingleCircle.js +98 -62
  88. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  89. package/dist/business/Poi/particle/index.js +117 -49
  90. package/dist/business/Poi/particle/index.js.map +1 -1
  91. package/dist/business/Poi/shader/circle.js +3 -31
  92. package/dist/business/Poi/shader/circle.js.map +1 -1
  93. package/dist/business/Poi/shader/cylinder.js +3 -37
  94. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  95. package/dist/business/Poi/shader/doubleCircle.js +3 -55
  96. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  97. package/dist/business/Poi/shader/dynamicCircle.js +3 -67
  98. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  99. package/dist/business/Poi/title/Border.js +27 -7
  100. package/dist/business/Poi/title/Border.js.map +1 -1
  101. package/dist/business/Poi/title/Ellipse.js +27 -7
  102. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  103. package/dist/business/Poi/title/index.js +292 -208
  104. package/dist/business/Poi/title/index.js.map +1 -1
  105. package/dist/business/Poi/tools.js +17 -18
  106. package/dist/business/Poi/tools.js.map +1 -1
  107. package/dist/business/Sphere/index.js +72 -47
  108. package/dist/business/Sphere/index.js.map +1 -1
  109. package/dist/business/Spline/index.js +245 -190
  110. package/dist/business/Spline/index.js.map +1 -1
  111. package/dist/business/SplitBuilding/index.js +536 -327
  112. package/dist/business/SplitBuilding/index.js.map +1 -1
  113. package/dist/business/SplitBuilding/type.js +2 -2
  114. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
  115. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  116. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
  117. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  118. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
  119. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  120. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
  121. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  122. package/dist/business/TrafficComponents/base.js +55 -32
  123. package/dist/business/TrafficComponents/base.js.map +1 -1
  124. package/dist/business/TrafficComponents/utils.js +24 -25
  125. package/dist/business/TrafficComponents/utils.js.map +1 -1
  126. package/dist/business/Utils/Curve.js +56 -40
  127. package/dist/business/Utils/Curve.js.map +1 -1
  128. package/dist/business/Utils/constant.js +1 -1
  129. package/dist/business/Utils/constant.js.map +1 -1
  130. package/dist/business/Utils/defineProps.js +14 -13
  131. package/dist/business/Utils/defineProps.js.map +1 -1
  132. package/dist/business/Utils/round-curve.js +153 -127
  133. package/dist/business/Utils/round-curve.js.map +1 -1
  134. package/dist/business/VideoPanel/index.js +319 -258
  135. package/dist/business/VideoPanel/index.js.map +1 -1
  136. package/dist/business/Water/index.js +108 -78
  137. package/dist/business/Water/index.js.map +1 -1
  138. package/dist/business/Water/types.js +1 -1
  139. package/dist/business/Water/types.js.map +1 -1
  140. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +449 -383
  141. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  142. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
  143. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  144. package/dist/core/Controls/FirstViewControl/index.js +96 -84
  145. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  146. package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
  147. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  148. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  149. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  150. package/dist/core/Controls/ThirdViewControl/index.js +28 -19
  151. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  152. package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
  153. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  154. package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
  155. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  156. package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
  157. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  158. package/dist/core/Controls/ThirdViewControl/player.js +91 -66
  159. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  160. package/dist/core/Controls/base.js +30 -14
  161. package/dist/core/Controls/base.js.map +1 -1
  162. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
  163. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  164. package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
  165. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  166. package/dist/core/Light/PointLight/PointLightExt.js +21 -4
  167. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  168. package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
  169. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  170. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
  171. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  172. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
  173. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  174. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
  175. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  176. package/dist/core/Material/SurfaceMaterial/index.js +172 -76
  177. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  178. package/dist/core/Material/decorators.js +11 -6
  179. package/dist/core/Material/decorators.js.map +1 -1
  180. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
  181. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  182. package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
  183. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  184. package/dist/core/PostEffects/bloomPass.js +10 -17
  185. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  186. package/dist/core/PostEffects/bloomSelect.js +43 -60
  187. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  188. package/dist/core/PostEffects/colorifyPass.js +13 -17
  189. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  190. package/dist/core/PostEffects/index.js +22 -28
  191. package/dist/core/PostEffects/index.js.map +1 -1
  192. package/dist/core/PostEffects/outlinePass.js +50 -37
  193. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  194. package/dist/core/PostEffects/postprocessing.js +12 -14
  195. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  196. package/dist/core/PostEffects/saoPass.js +10 -15
  197. package/dist/core/PostEffects/saoPass.js.map +1 -1
  198. package/dist/core/PostEffects/shader/colorify.js +3 -22
  199. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  200. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
  201. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  202. package/dist/core/PostEffects/shader/mapping.js +3 -66
  203. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  204. package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
  205. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  206. package/dist/core/SceneEffect/grow/grow.js +101 -85
  207. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  208. package/dist/core/SceneEffect/grow/style_down.js +77 -60
  209. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  210. package/dist/core/SceneEffect/grow/style_up.js +81 -64
  211. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  212. package/dist/core/SceneEffect/grow/type.js +2 -2
  213. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  214. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +76 -51
  215. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  216. package/dist/core/WeatherSystem/hdr/index.js +105 -69
  217. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  218. package/dist/core/WeatherSystem/index.js +124 -77
  219. package/dist/core/WeatherSystem/index.js.map +1 -1
  220. package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
  221. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  222. package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
  223. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  224. package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
  225. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  226. package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
  227. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  228. package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
  229. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  230. package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
  231. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  232. package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
  233. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  234. package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
  235. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  236. package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
  237. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  238. package/dist/core/WeatherSystem/shaders/fog.js +3 -103
  239. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  240. package/dist/core/WeatherSystem/shaders/rain.js +7 -206
  241. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  242. package/dist/core/WeatherSystem/shaders/sky.js +3 -87
  243. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  244. package/dist/core/WeatherSystem/sky/index.js +135 -104
  245. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  246. package/dist/core/WeatherSystem/utils/constant.js +38 -44
  247. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  248. package/dist/core/WeatherSystem/utils/math.js +25 -18
  249. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  250. package/dist/core/WeatherSystem/utils/type.js +1 -1
  251. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  252. package/dist/core/WeatherSystem/weather/index.js +141 -96
  253. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  254. package/dist/utils/index.js +1 -1
  255. package/dist/utils/index.js.map +1 -1
  256. package/package.json +3 -3
@@ -1,14 +1,23 @@
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); }
1
2
  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; }
2
3
  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); }
3
14
  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; }
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); }
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); }
6
17
  import { DirectionalLight, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core';
7
18
  import { getSunPosition } from "../utils/math";
8
- const {
9
- Sky
10
- } = lib;
11
- const effectController = {
19
+ var Sky = lib.Sky;
20
+ var effectController = {
12
21
  turbidity: 10,
13
22
  rayleigh: 3,
14
23
  mieCoefficient: 0.005,
@@ -21,116 +30,138 @@ const effectController = {
21
30
  /**
22
31
  * 天空——时间系统
23
32
  */
24
- export class SkySystem extends Object3D {
25
- get size() {
26
- return this.size;
27
- }
28
- set size(size) {
29
- this._size = size;
30
- this._sky.scale.setScalar(this._size);
31
- }
32
- get sunHeight() {
33
- return this._sunHeight;
34
- }
35
- set sunHeight(height) {
36
- this._sunHeight = height;
37
- }
38
- constructor(options) {
39
- super();
40
- _defineProperty(this, "_size", 450000);
41
- _defineProperty(this, "_sky", void 0);
42
- _defineProperty(this, "_effectController", effectController);
43
- _defineProperty(this, "_latitude", 40);
44
- _defineProperty(this, "_longitude", 116);
45
- _defineProperty(this, "_sunHeight", 10000);
46
- _defineProperty(this, "_sun", void 0);
47
- this._effectController = _objectSpread(_objectSpread({}, effectController), options !== null && options !== void 0 ? options : {});
48
- this.createSky();
49
- this.createSun();
50
- this.combination();
33
+ export var SkySystem = /*#__PURE__*/function (_Object3D) {
34
+ _inherits(SkySystem, _Object3D);
35
+ var _super = _createSuper(SkySystem);
36
+ function SkySystem(options) {
37
+ var _this;
38
+ _classCallCheck(this, SkySystem);
39
+ _this = _super.call(this);
40
+ _defineProperty(_assertThisInitialized(_this), "_size", 450000);
41
+ _defineProperty(_assertThisInitialized(_this), "_sky", void 0);
42
+ _defineProperty(_assertThisInitialized(_this), "_effectController", effectController);
43
+ _defineProperty(_assertThisInitialized(_this), "_latitude", 40);
44
+ _defineProperty(_assertThisInitialized(_this), "_longitude", 116);
45
+ _defineProperty(_assertThisInitialized(_this), "_sunHeight", 10000);
46
+ _defineProperty(_assertThisInitialized(_this), "_sun", void 0);
47
+ _this._effectController = _objectSpread(_objectSpread({}, effectController), options !== null && options !== void 0 ? options : {});
48
+ _this.createSky();
49
+ _this.createSun();
50
+ _this.combination();
51
+ return _this;
51
52
  }
52
53
 
53
54
  /**
54
55
  * create sky
55
56
  * @returns
56
57
  */
57
- createSky() {
58
- this._sky = new Sky();
59
- this._sky.scale.setScalar(this._size);
60
- const position = new Vector3();
61
- const uniforms = this._sky.material.uniforms;
62
- const phi = MathUtils.degToRad(90 - this._effectController.elevation);
63
- const theta = MathUtils.degToRad(this._effectController.azimuth);
64
- uniforms.turbidity.value = this._effectController.turbidity;
65
- uniforms.rayleigh.value = this._effectController.rayleigh;
66
- uniforms.mieCoefficient.value = this._effectController.mieCoefficient;
67
- uniforms.mieDirectionalG.value = this._effectController.mieDirectionalG;
68
- position.setFromSphericalCoords(1, phi, theta);
69
- uniforms.sunPosition.value.copy(position);
70
- return this._sky;
71
- }
58
+ _createClass(SkySystem, [{
59
+ key: "size",
60
+ get: function get() {
61
+ return this.size;
62
+ },
63
+ set: function set(size) {
64
+ this._size = size;
65
+ this._sky.scale.setScalar(this._size);
66
+ }
67
+ }, {
68
+ key: "sunHeight",
69
+ get: function get() {
70
+ return this._sunHeight;
71
+ },
72
+ set: function set(height) {
73
+ this._sunHeight = height;
74
+ }
75
+ }, {
76
+ key: "createSky",
77
+ value: function createSky() {
78
+ this._sky = new Sky();
79
+ this._sky.scale.setScalar(this._size);
80
+ var position = new Vector3();
81
+ var uniforms = this._sky.material.uniforms;
82
+ var phi = MathUtils.degToRad(90 - this._effectController.elevation);
83
+ var theta = MathUtils.degToRad(this._effectController.azimuth);
84
+ uniforms.turbidity.value = this._effectController.turbidity;
85
+ uniforms.rayleigh.value = this._effectController.rayleigh;
86
+ uniforms.mieCoefficient.value = this._effectController.mieCoefficient;
87
+ uniforms.mieDirectionalG.value = this._effectController.mieDirectionalG;
88
+ position.setFromSphericalCoords(1, phi, theta);
89
+ uniforms.sunPosition.value.copy(position);
90
+ return this._sky;
91
+ }
72
92
 
73
- /**
74
- * create sun
75
- * @returns
76
- */
77
- createSun() {
78
- const sunLight = new DirectionalLight('white', 1);
79
- sunLight.name = 'SYS_SUN';
80
- sunLight.castShadow = true;
81
- this._sun = sunLight;
93
+ /**
94
+ * create sun
95
+ * @returns
96
+ */
97
+ }, {
98
+ key: "createSun",
99
+ value: function createSun() {
100
+ var sunLight = new DirectionalLight('white', 1);
101
+ sunLight.name = 'SYS_SUN';
102
+ sunLight.castShadow = true;
103
+ this._sun = sunLight;
82
104
 
83
- // 添加帮助
84
- // const helper = new DirectionalLightHelper(sunLight, 200)
85
- // this.add(helper)
105
+ // 添加帮助
106
+ // const helper = new DirectionalLightHelper(sunLight, 200)
107
+ // this.add(helper)
86
108
 
87
- return sunLight;
88
- }
89
- combination() {
90
- this.setTime(new Date());
91
- this.add(this._sky);
92
- this.add(this._sun);
93
- }
109
+ return sunLight;
110
+ }
111
+ }, {
112
+ key: "combination",
113
+ value: function combination() {
114
+ this.setTime(new Date());
115
+ this.add(this._sky);
116
+ this.add(this._sun);
117
+ }
94
118
 
95
- /**
96
- * 设置天空中的太阳位置
97
- * @param position
98
- */
99
- setSunPositin(position) {
100
- const uniforms = this._sky.material.uniforms;
101
- uniforms.sunPosition.value.copy(position);
102
- }
119
+ /**
120
+ * 设置天空中的太阳位置
121
+ * @param position
122
+ */
123
+ }, {
124
+ key: "setSunPositin",
125
+ value: function setSunPositin(position) {
126
+ var uniforms = this._sky.material.uniforms;
127
+ uniforms.sunPosition.value.copy(position);
128
+ }
103
129
 
104
- /**
105
- * 设置时间
106
- * @param currentDate
107
- */
108
- setTime(currentDate) {
109
- // 根据时间、经纬度获取太阳的高度角(altitude)、方位角(azimuth)
110
- const {
111
- altitude,
112
- azimuth
113
- } = getSunPosition(currentDate, this._latitude, this._longitude);
114
- const uniforms = this._sky.material.uniforms;
130
+ /**
131
+ * 设置时间
132
+ * @param currentDate
133
+ */
134
+ }, {
135
+ key: "setTime",
136
+ value: function setTime(currentDate) {
137
+ // 根据时间、经纬度获取太阳的高度角(altitude)、方位角(azimuth)
138
+ var _getSunPosition = getSunPosition(currentDate, this._latitude, this._longitude),
139
+ altitude = _getSunPosition.altitude,
140
+ azimuth = _getSunPosition.azimuth;
141
+ var uniforms = this._sky.material.uniforms;
115
142
 
116
- // 转换为 Three.js setFromSphericalCoords 参数
117
- const phi = Math.PI / 2 - altitude; // SunCalc的高度角转换为Three.js的phi
118
- const theta = azimuth + Math.PI; // SunCalc的方位角转换为Three.js的theta
119
- const sunPosition = new Vector3().setFromSphericalCoords(1, phi, theta);
120
- uniforms.sunPosition.value.copy(sunPosition);
143
+ // 转换为 Three.js setFromSphericalCoords 参数
144
+ var phi = Math.PI / 2 - altitude; // SunCalc的高度角转换为Three.js的phi
145
+ var theta = azimuth + Math.PI; // SunCalc的方位角转换为Three.js的theta
146
+ var sunPosition = new Vector3().setFromSphericalCoords(1, phi, theta);
147
+ uniforms.sunPosition.value.copy(sunPosition);
121
148
 
122
- // 缩放向量使光源足够远但不超出场景有效范围
123
- const scaledPosition = sunPosition.clone().multiplyScalar(this._sunHeight);
124
- this._sun.position.copy(scaledPosition);
149
+ // 缩放向量使光源足够远但不超出场景有效范围
150
+ var scaledPosition = sunPosition.clone().multiplyScalar(this._sunHeight);
151
+ this._sun.position.copy(scaledPosition);
125
152
 
126
- // uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))
127
- // const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))
128
- // const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))
129
- // const y = this._sunHeight * (Math.sin(altitude))
130
- // this._sun.position.copy(new Vector3(x, y, z))
131
- }
132
- updateSky(camera) {
133
- if (this._sky) this._sky.position.copy(camera.position);
134
- }
135
- }
153
+ // uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))
154
+ // const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))
155
+ // const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))
156
+ // const y = this._sunHeight * (Math.sin(altitude))
157
+ // this._sun.position.copy(new Vector3(x, y, z))
158
+ }
159
+ }, {
160
+ key: "updateSky",
161
+ value: function updateSky(camera) {
162
+ if (this._sky) this._sky.position.copy(camera.position);
163
+ }
164
+ }]);
165
+ return SkySystem;
166
+ }(Object3D);
136
167
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DirectionalLight","MathUtils","Object3D","Vector3","lib","getSunPosition","Sky","effectController","turbidity","rayleigh","mieCoefficient","mieDirectionalG","elevation","azimuth","exposure","SkySystem","size","_size","_sky","scale","setScalar","sunHeight","_sunHeight","height","constructor","options","_defineProperty","_effectController","_objectSpread","createSky","createSun","combination","position","uniforms","material","phi","degToRad","theta","value","setFromSphericalCoords","sunPosition","copy","sunLight","name","castShadow","_sun","setTime","Date","add","setSunPositin","currentDate","altitude","_latitude","_longitude","Math","PI","scaledPosition","clone","multiplyScalar","updateSky","camera"],"sources":["../../../../src/core/WeatherSystem/sky/index.ts"],"sourcesContent":["import type { Light } from '@anov/3d-core'\nimport { AmbientLight, DirectionalLight, DirectionalLightHelper, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core'\nimport { getSunPosition } from '../utils/math'\n\nconst { Sky } = lib\n\ntype SkySystemOption = {\n scalarCoefficient?: number\n turbidity?: number\n rayleigh?: number\n mieCoefficient?: number\n mieDirectionalG?: number\n elevation?: number\n azimuth?: number\n exposure?: number\n}\n\nconst effectController: SkySystemOption = {\n turbidity: 10,\n rayleigh: 3,\n mieCoefficient: 0.005,\n mieDirectionalG: 0.7,\n elevation: 2,\n azimuth: 180,\n exposure: 0.1,\n}\n\n/**\n * 天空——时间系统\n */\nexport class SkySystem extends Object3D {\n private _size = 450000\n private _sky: lib.Sky\n private _effectController: SkySystemOption = effectController\n private _latitude = 40\n private _longitude = 116\n private _sunHeight = 10000\n private _sun: Light\n\n public get size() {\n return this.size\n }\n\n public set size(size: number) {\n this._size = size\n this._sky.scale.setScalar(this._size)\n }\n\n public get sunHeight() {\n return this._sunHeight\n }\n\n public set sunHeight(height: number) {\n this._sunHeight = height\n }\n\n constructor(options?: SkySystemOption) {\n super()\n\n this._effectController = {\n ...effectController,\n ...options ?? {},\n }\n this.createSky()\n this.createSun()\n this.combination()\n }\n\n /**\n * create sky\n * @returns\n */\n private createSky() {\n this._sky = new Sky()\n this._sky.scale.setScalar(this._size)\n\n const position = new Vector3()\n const uniforms = (this._sky.material as any).uniforms\n const phi = MathUtils.degToRad(90 - this._effectController.elevation)\n const theta = MathUtils.degToRad(this._effectController.azimuth)\n\n uniforms.turbidity.value = this._effectController.turbidity\n uniforms.rayleigh.value = this._effectController.rayleigh\n uniforms.mieCoefficient.value = this._effectController.mieCoefficient\n uniforms.mieDirectionalG.value = this._effectController.mieDirectionalG\n\n position.setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(position)\n\n return this._sky\n }\n\n /**\n * create sun\n * @returns\n */\n private createSun() {\n const sunLight = new DirectionalLight('white', 1)\n sunLight.name = 'SYS_SUN'\n sunLight.castShadow = true\n this._sun = sunLight\n\n // 添加帮助\n // const helper = new DirectionalLightHelper(sunLight, 200)\n // this.add(helper)\n\n return sunLight\n }\n\n private combination() {\n this.setTime(new Date())\n this.add(this._sky)\n this.add(this._sun)\n }\n\n /**\n * 设置天空中的太阳位置\n * @param position\n */\n setSunPositin(position: Vector3) {\n const uniforms = (this._sky.material as any).uniforms\n uniforms.sunPosition.value.copy(position)\n }\n\n /**\n * 设置时间\n * @param currentDate\n */\n setTime(currentDate?: Date) {\n // 根据时间、经纬度获取太阳的高度角(altitude)、方位角(azimuth)\n const { altitude, azimuth } = getSunPosition(currentDate, this._latitude, this._longitude)\n const uniforms = (this._sky.material as any).uniforms\n\n // 转换为 Three.js setFromSphericalCoords 参数\n const phi = Math.PI / 2 - altitude // SunCalc的高度角转换为Three.js的phi\n const theta = azimuth + Math.PI // SunCalc的方位角转换为Three.js的theta\n const sunPosition = new Vector3().setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(sunPosition)\n\n // 缩放向量使光源足够远但不超出场景有效范围\n const scaledPosition = sunPosition.clone().multiplyScalar(this._sunHeight)\n this._sun.position.copy(scaledPosition)\n\n // uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))\n // const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))\n // const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))\n // const y = this._sunHeight * (Math.sin(altitude))\n // this._sun.position.copy(new Vector3(x, y, z))\n }\n\n public updateSky(camera) {\n if (this._sky)\n this._sky.position.copy(camera.position)\n }\n}"],"mappings":"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"}
1
+ {"version":3,"names":["DirectionalLight","MathUtils","Object3D","Vector3","lib","getSunPosition","Sky","effectController","turbidity","rayleigh","mieCoefficient","mieDirectionalG","elevation","azimuth","exposure","SkySystem","_Object3D","_inherits","_super","_createSuper","options","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_effectController","_objectSpread","createSky","createSun","combination","_createClass","key","get","size","set","_size","_sky","scale","setScalar","_sunHeight","height","value","position","uniforms","material","phi","degToRad","theta","setFromSphericalCoords","sunPosition","copy","sunLight","name","castShadow","_sun","setTime","Date","add","setSunPositin","currentDate","_getSunPosition","_latitude","_longitude","altitude","Math","PI","scaledPosition","clone","multiplyScalar","updateSky","camera"],"sources":["../../../../src/core/WeatherSystem/sky/index.ts"],"sourcesContent":["import type { Light } from '@anov/3d-core'\nimport { AmbientLight, DirectionalLight, DirectionalLightHelper, MathUtils, Object3D, Vector3, lib } from '@anov/3d-core'\nimport { getSunPosition } from '../utils/math'\n\nconst { Sky } = lib\n\ntype SkySystemOption = {\n scalarCoefficient?: number\n turbidity?: number\n rayleigh?: number\n mieCoefficient?: number\n mieDirectionalG?: number\n elevation?: number\n azimuth?: number\n exposure?: number\n}\n\nconst effectController: SkySystemOption = {\n turbidity: 10,\n rayleigh: 3,\n mieCoefficient: 0.005,\n mieDirectionalG: 0.7,\n elevation: 2,\n azimuth: 180,\n exposure: 0.1,\n}\n\n/**\n * 天空——时间系统\n */\nexport class SkySystem extends Object3D {\n private _size = 450000\n private _sky: lib.Sky\n private _effectController: SkySystemOption = effectController\n private _latitude = 40\n private _longitude = 116\n private _sunHeight = 10000\n private _sun: Light\n\n public get size() {\n return this.size\n }\n\n public set size(size: number) {\n this._size = size\n this._sky.scale.setScalar(this._size)\n }\n\n public get sunHeight() {\n return this._sunHeight\n }\n\n public set sunHeight(height: number) {\n this._sunHeight = height\n }\n\n constructor(options?: SkySystemOption) {\n super()\n\n this._effectController = {\n ...effectController,\n ...options ?? {},\n }\n this.createSky()\n this.createSun()\n this.combination()\n }\n\n /**\n * create sky\n * @returns\n */\n private createSky() {\n this._sky = new Sky()\n this._sky.scale.setScalar(this._size)\n\n const position = new Vector3()\n const uniforms = (this._sky.material as any).uniforms\n const phi = MathUtils.degToRad(90 - this._effectController.elevation)\n const theta = MathUtils.degToRad(this._effectController.azimuth)\n\n uniforms.turbidity.value = this._effectController.turbidity\n uniforms.rayleigh.value = this._effectController.rayleigh\n uniforms.mieCoefficient.value = this._effectController.mieCoefficient\n uniforms.mieDirectionalG.value = this._effectController.mieDirectionalG\n\n position.setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(position)\n\n return this._sky\n }\n\n /**\n * create sun\n * @returns\n */\n private createSun() {\n const sunLight = new DirectionalLight('white', 1)\n sunLight.name = 'SYS_SUN'\n sunLight.castShadow = true\n this._sun = sunLight\n\n // 添加帮助\n // const helper = new DirectionalLightHelper(sunLight, 200)\n // this.add(helper)\n\n return sunLight\n }\n\n private combination() {\n this.setTime(new Date())\n this.add(this._sky)\n this.add(this._sun)\n }\n\n /**\n * 设置天空中的太阳位置\n * @param position\n */\n setSunPositin(position: Vector3) {\n const uniforms = (this._sky.material as any).uniforms\n uniforms.sunPosition.value.copy(position)\n }\n\n /**\n * 设置时间\n * @param currentDate\n */\n setTime(currentDate?: Date) {\n // 根据时间、经纬度获取太阳的高度角(altitude)、方位角(azimuth)\n const { altitude, azimuth } = getSunPosition(currentDate, this._latitude, this._longitude)\n const uniforms = (this._sky.material as any).uniforms\n\n // 转换为 Three.js setFromSphericalCoords 参数\n const phi = Math.PI / 2 - altitude // SunCalc的高度角转换为Three.js的phi\n const theta = azimuth + Math.PI // SunCalc的方位角转换为Three.js的theta\n const sunPosition = new Vector3().setFromSphericalCoords(1, phi, theta)\n uniforms.sunPosition.value.copy(sunPosition)\n\n // 缩放向量使光源足够远但不超出场景有效范围\n const scaledPosition = sunPosition.clone().multiplyScalar(this._sunHeight)\n this._sun.position.copy(scaledPosition)\n\n // uniforms.sunPosition.value.copy(new Vector3().setFromSphericalCoords(this._sunHeight, MathUtils.degToRad(90 - MathUtils.radToDeg(altitude)), azimuth))\n // const x = this._sunHeight * (Math.cos(altitude)) * (Math.cos(azimuth))\n // const z = this._sunHeight * (Math.cos(altitude)) * (Math.sin(azimuth))\n // const y = this._sunHeight * (Math.sin(altitude))\n // this._sun.position.copy(new Vector3(x, y, z))\n }\n\n public updateSky(camera) {\n if (this._sky)\n this._sky.position.copy(camera.position)\n }\n}"],"mappings":"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"}