@anov/3d-ability 0.0.140 → 0.0.142

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 (266) 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.d.ts +1 -1
  134. package/dist/business/TrafficComponents/utils.js +26 -25
  135. package/dist/business/TrafficComponents/utils.js.map +1 -1
  136. package/dist/business/Utils/Curve.js +40 -56
  137. package/dist/business/Utils/Curve.js.map +1 -1
  138. package/dist/business/Utils/constant.js +1 -1
  139. package/dist/business/Utils/constant.js.map +1 -1
  140. package/dist/business/Utils/defineProps.js +13 -14
  141. package/dist/business/Utils/defineProps.js.map +1 -1
  142. package/dist/business/Utils/round-curve.js +127 -153
  143. package/dist/business/Utils/round-curve.js.map +1 -1
  144. package/dist/business/VideoPanel/index.js +258 -319
  145. package/dist/business/VideoPanel/index.js.map +1 -1
  146. package/dist/business/Water/index.js +78 -108
  147. package/dist/business/Water/index.js.map +1 -1
  148. package/dist/business/Water/types.js +1 -1
  149. package/dist/business/Water/types.js.map +1 -1
  150. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
  151. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  152. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
  153. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  154. package/dist/core/Controls/FirstViewControl/index.js +84 -96
  155. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  156. package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
  157. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  158. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  159. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  160. package/dist/core/Controls/ThirdViewControl/index.js +19 -28
  161. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  162. package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
  163. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  164. package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
  165. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  166. package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
  167. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  168. package/dist/core/Controls/ThirdViewControl/player.js +66 -91
  169. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  170. package/dist/core/Controls/base.js +14 -30
  171. package/dist/core/Controls/base.js.map +1 -1
  172. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
  173. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  174. package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
  175. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  176. package/dist/core/Light/PointLight/PointLightExt.js +4 -21
  177. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  178. package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
  179. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  180. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
  181. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  182. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
  183. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  184. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
  185. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  186. package/dist/core/Material/SurfaceMaterial/index.js +76 -172
  187. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  188. package/dist/core/Material/decorators.js +6 -11
  189. package/dist/core/Material/decorators.js.map +1 -1
  190. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
  191. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  192. package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
  193. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  194. package/dist/core/PostEffects/bloomPass.js +17 -10
  195. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  196. package/dist/core/PostEffects/bloomSelect.js +60 -43
  197. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  198. package/dist/core/PostEffects/colorifyPass.js +17 -13
  199. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  200. package/dist/core/PostEffects/index.js +28 -22
  201. package/dist/core/PostEffects/index.js.map +1 -1
  202. package/dist/core/PostEffects/outlinePass.js +37 -50
  203. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  204. package/dist/core/PostEffects/postprocessing.js +14 -12
  205. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  206. package/dist/core/PostEffects/saoPass.js +15 -10
  207. package/dist/core/PostEffects/saoPass.js.map +1 -1
  208. package/dist/core/PostEffects/shader/colorify.js +22 -3
  209. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  210. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
  211. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  212. package/dist/core/PostEffects/shader/mapping.js +66 -3
  213. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  214. package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
  215. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  216. package/dist/core/SceneEffect/grow/grow.js +85 -101
  217. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  218. package/dist/core/SceneEffect/grow/style_down.js +60 -77
  219. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  220. package/dist/core/SceneEffect/grow/style_up.js +64 -81
  221. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  222. package/dist/core/SceneEffect/grow/type.js +2 -2
  223. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  224. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
  225. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  226. package/dist/core/WeatherSystem/hdr/index.js +69 -105
  227. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  228. package/dist/core/WeatherSystem/index.js +77 -124
  229. package/dist/core/WeatherSystem/index.js.map +1 -1
  230. package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
  231. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  232. package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
  233. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  234. package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
  235. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  236. package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
  237. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  238. package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
  239. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  240. package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
  241. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  242. package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
  243. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  244. package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
  245. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  246. package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
  247. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  248. package/dist/core/WeatherSystem/shaders/fog.js +103 -3
  249. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  250. package/dist/core/WeatherSystem/shaders/rain.js +206 -7
  251. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  252. package/dist/core/WeatherSystem/shaders/sky.js +87 -3
  253. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  254. package/dist/core/WeatherSystem/sky/index.js +104 -135
  255. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  256. package/dist/core/WeatherSystem/utils/constant.js +44 -38
  257. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  258. package/dist/core/WeatherSystem/utils/math.js +18 -25
  259. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  260. package/dist/core/WeatherSystem/utils/type.js +1 -1
  261. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  262. package/dist/core/WeatherSystem/weather/index.js +96 -141
  263. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  264. package/dist/utils/index.js +1 -1
  265. package/dist/utils/index.js.map +1 -1
  266. package/package.json +3 -3
@@ -1,17 +1,12 @@
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 _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
2
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
- 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); } }
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
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; }
9
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
- 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); }
11
6
  import { LoaderModule } from '@anov/3d-core';
12
7
  import { SOURCE_BASE_PATH } from "../../../business/Utils/constant";
13
- var load = new LoaderModule();
14
- export var EMaterialType = /*#__PURE__*/function (EMaterialType) {
8
+ const load = new LoaderModule();
9
+ export let EMaterialType = /*#__PURE__*/function (EMaterialType) {
15
10
  EMaterialType["Plaster"] = "Plaster";
16
11
  EMaterialType["Wood"] = "Wood";
17
12
  EMaterialType["Water"] = "Water";
@@ -29,185 +24,94 @@ export var EMaterialType = /*#__PURE__*/function (EMaterialType) {
29
24
  EMaterialType["Leather"] = "leather";
30
25
  return EMaterialType;
31
26
  }({}); // 皮革
32
- var SOURCE_PATH = {
33
- Plaster: "".concat(SOURCE_BASE_PATH, "/material/plaster.glb"),
27
+ const SOURCE_PATH = {
28
+ Plaster: `${SOURCE_BASE_PATH}/material/plaster.glb`,
34
29
  // 涂料
35
- Wood: "".concat(SOURCE_BASE_PATH, "/material/wood.glb"),
30
+ Wood: `${SOURCE_BASE_PATH}/material/wood.glb`,
36
31
  // 木质材质
37
- Water: "".concat(SOURCE_BASE_PATH, "/material/water.glb"),
32
+ Water: `${SOURCE_BASE_PATH}/material/water.glb`,
38
33
  // 水材质
39
- Glass: "".concat(SOURCE_BASE_PATH, "/material/glass.glb"),
34
+ Glass: `${SOURCE_BASE_PATH}/material/glass.glb`,
40
35
  // 玻璃材质
41
- Iron: "".concat(SOURCE_BASE_PATH, "/material/iron.glb"),
36
+ Iron: `${SOURCE_BASE_PATH}/material/iron.glb`,
42
37
  // 金属材质
43
- Moss: "".concat(SOURCE_BASE_PATH, "/material/moss.glb"),
38
+ Moss: `${SOURCE_BASE_PATH}/material/moss.glb`,
44
39
  // 苔藓材质
45
- Dirt: "".concat(SOURCE_BASE_PATH, "/material/dirt.glb"),
40
+ Dirt: `${SOURCE_BASE_PATH}/material/dirt.glb`,
46
41
  // 土壤
47
- Fabric: "".concat(SOURCE_BASE_PATH, "/material/fabric.glb"),
42
+ Fabric: `${SOURCE_BASE_PATH}/material/fabric.glb`,
48
43
  // 布料
49
- Floor: "".concat(SOURCE_BASE_PATH, "/material/floor.glb"),
44
+ Floor: `${SOURCE_BASE_PATH}/material/floor.glb`,
50
45
  // 地板
51
- Marble: "".concat(SOURCE_BASE_PATH, "/material/marble.glb"),
46
+ Marble: `${SOURCE_BASE_PATH}/material/marble.glb`,
52
47
  // 石材
53
- Metal: "".concat(SOURCE_BASE_PATH, "/material/metal.glb"),
48
+ Metal: `${SOURCE_BASE_PATH}/material/metal.glb`,
54
49
  // 金属
55
- Road: "".concat(SOURCE_BASE_PATH, "/material/road.glb"),
50
+ Road: `${SOURCE_BASE_PATH}/material/road.glb`,
56
51
  // 道路
57
- Leather: "".concat(SOURCE_BASE_PATH, "/material/leather.glb"),
52
+ Leather: `${SOURCE_BASE_PATH}/material/leather.glb`,
58
53
  // 皮革
59
- Snow: "".concat(SOURCE_BASE_PATH, "/material/snow.glb"),
54
+ Snow: `${SOURCE_BASE_PATH}/material/snow.glb`,
60
55
  // 雪地
61
- Emissive: "".concat(SOURCE_BASE_PATH, "/material/emissive.glb"),
56
+ Emissive: `${SOURCE_BASE_PATH}/material/emissive.glb`,
62
57
  // 发光材质(适用于夜晚窗户)
63
- Fresnel_Transparent: "".concat(SOURCE_BASE_PATH, "/material/emissive2.glb")
58
+ Fresnel_Transparent: `${SOURCE_BASE_PATH}/material/emissive2.glb`
64
59
  };
65
- export var SurfaceMaterial = /*#__PURE__*/function () {
66
- function SurfaceMaterial() {
67
- _classCallCheck(this, SurfaceMaterial);
68
- }
69
- _createClass(SurfaceMaterial, null, [{
70
- key: "getMaterial",
71
- value: function () {
72
- var _getMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(id) {
73
- var material;
74
- return _regeneratorRuntime().wrap(function _callee$(_context) {
75
- while (1) switch (_context.prev = _context.next) {
76
- case 0:
77
- id = this.capitalizeFirstLetter(id);
78
- if (!this.cache.has(id)) {
79
- _context.next = 3;
80
- break;
81
- }
82
- return _context.abrupt("return", this.cache.get(id).clone());
83
- case 3:
84
- _context.prev = 3;
85
- _context.next = 6;
86
- return this.loadModelMaterial(id);
87
- case 6:
88
- material = _context.sent;
89
- this.cache.set(id, material);
90
- return _context.abrupt("return", material.clone());
91
- case 11:
92
- _context.prev = 11;
93
- _context.t0 = _context["catch"](3);
94
- console.error("Failed to load material ".concat(id, ":"), _context.t0);
95
- throw _context.t0;
96
- case 15:
97
- case "end":
98
- return _context.stop();
99
- }
100
- }, _callee, this, [[3, 11]]);
101
- }));
102
- function getMaterial(_x) {
103
- return _getMaterial.apply(this, arguments);
104
- }
105
- return getMaterial;
106
- }()
107
- }, {
108
- key: "getMaterialAll",
109
- value: function () {
110
- var _getMaterialAll = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
111
- var _this = this;
112
- var materials;
113
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
114
- while (1) switch (_context3.prev = _context3.next) {
115
- case 0:
116
- _context3.next = 2;
117
- return Promise.all(Object.keys(SOURCE_PATH).map( /*#__PURE__*/function () {
118
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(key) {
119
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
120
- while (1) switch (_context2.prev = _context2.next) {
121
- case 0:
122
- _context2.next = 2;
123
- return _this.getMaterial(key);
124
- case 2:
125
- return _context2.abrupt("return", _context2.sent);
126
- case 3:
127
- case "end":
128
- return _context2.stop();
129
- }
130
- }, _callee2);
131
- }));
132
- return function (_x2) {
133
- return _ref.apply(this, arguments);
134
- };
135
- }()));
136
- case 2:
137
- materials = _context3.sent;
138
- return _context3.abrupt("return", materials);
139
- case 4:
140
- case "end":
141
- return _context3.stop();
142
- }
143
- }, _callee3);
144
- }));
145
- function getMaterialAll() {
146
- return _getMaterialAll.apply(this, arguments);
60
+ export class SurfaceMaterial {
61
+ static getMaterial(id) {
62
+ var _this = this;
63
+ return _asyncToGenerator(function* () {
64
+ id = _this.capitalizeFirstLetter(id);
65
+ if (_this.cache.has(id)) return _this.cache.get(id).clone();
66
+ try {
67
+ const material = yield _this.loadModelMaterial(id);
68
+ _this.cache.set(id, material);
69
+ return material.clone();
70
+ } catch (error) {
71
+ console.error(`Failed to load material ${id}:`, error);
72
+ throw error;
147
73
  }
148
- return getMaterialAll;
149
- }()
150
- }, {
151
- key: "loadModelMaterial",
152
- value: function () {
153
- var _loadModelMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(id) {
154
- var _mesh;
155
- var uri, model, mesh;
156
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
157
- while (1) switch (_context4.prev = _context4.next) {
158
- case 0:
159
- uri = SOURCE_PATH[id];
160
- if (uri) {
161
- _context4.next = 3;
162
- break;
163
- }
164
- throw new Error("Invalid material ID: ".concat(id));
165
- case 3:
166
- _context4.next = 5;
167
- return new Promise(function (resolve, reject) {
168
- load.loadGLTF({
169
- url: uri,
170
- draco: true,
171
- onLoad: function onLoad(gltf) {
172
- return resolve(gltf.scene.clone(true));
173
- },
174
- onError: function onError(err) {
175
- return reject(err);
176
- }
177
- });
178
- });
179
- case 5:
180
- model = _context4.sent;
181
- mesh = null;
182
- model.traverse(function (child) {
183
- if (!mesh && child.type === 'Mesh') mesh = child;
184
- });
185
- if ((_mesh = mesh) !== null && _mesh !== void 0 && _mesh.material) {
186
- _context4.next = 10;
187
- break;
188
- }
189
- throw new Error("No valid material found in ".concat(id));
190
- case 10:
191
- return _context4.abrupt("return", mesh.material);
192
- case 11:
193
- case "end":
194
- return _context4.stop();
195
- }
196
- }, _callee4);
197
- }));
198
- function loadModelMaterial(_x3) {
199
- return _loadModelMaterial.apply(this, arguments);
200
- }
201
- return loadModelMaterial;
202
- }()
203
- }, {
204
- key: "capitalizeFirstLetter",
205
- value: function capitalizeFirstLetter(str) {
206
- if (!str) return '';
207
- return str.charAt(0).toUpperCase() + str.slice(1);
208
- }
209
- }]);
210
- return SurfaceMaterial;
211
- }();
74
+ })();
75
+ }
76
+ static getMaterialAll() {
77
+ var _this2 = this;
78
+ return _asyncToGenerator(function* () {
79
+ const materials = yield Promise.all(Object.keys(SOURCE_PATH).map( /*#__PURE__*/function () {
80
+ var _ref = _asyncToGenerator(function* (key) {
81
+ return yield _this2.getMaterial(key);
82
+ });
83
+ return function (_x) {
84
+ return _ref.apply(this, arguments);
85
+ };
86
+ }()));
87
+ return materials;
88
+ })();
89
+ }
90
+ static loadModelMaterial(id) {
91
+ return _asyncToGenerator(function* () {
92
+ var _mesh;
93
+ const uri = SOURCE_PATH[id];
94
+ if (!uri) throw new Error(`Invalid material ID: ${id}`);
95
+ const model = yield new Promise((resolve, reject) => {
96
+ load.loadGLTF({
97
+ url: uri,
98
+ draco: true,
99
+ onLoad: gltf => resolve(gltf.scene.clone(true)),
100
+ onError: err => reject(err)
101
+ });
102
+ });
103
+ let mesh = null;
104
+ model.traverse(child => {
105
+ if (!mesh && child.type === 'Mesh') mesh = child;
106
+ });
107
+ if (!((_mesh = mesh) !== null && _mesh !== void 0 && _mesh.material)) throw new Error(`No valid material found in ${id}`);
108
+ return mesh.material;
109
+ })();
110
+ }
111
+ static capitalizeFirstLetter(str) {
112
+ if (!str) return '';
113
+ return str.charAt(0).toUpperCase() + str.slice(1);
114
+ }
115
+ }
212
116
  _defineProperty(SurfaceMaterial, "cache", new Map());
213
117
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","LoaderModule","SOURCE_BASE_PATH","load","EMaterialType","SOURCE_PATH","Plaster","concat","Wood","Water","Glass","Iron","Moss","Dirt","Fabric","Floor","Marble","Metal","Road","Leather","Snow","Emissive","Fresnel_Transparent","SurfaceMaterial","_getMaterial","_callee","id","material","_callee$","_context","capitalizeFirstLetter","cache","has","get","clone","loadModelMaterial","set","t0","console","getMaterial","_x","_getMaterialAll","_callee3","_this","materials","_callee3$","_context3","all","map","_ref","_callee2","_callee2$","_context2","_x2","getMaterialAll","_loadModelMaterial","_callee4","_mesh","uri","model","mesh","_callee4$","_context4","loadGLTF","url","draco","onLoad","gltf","scene","onError","traverse","child","_x3","str","toUpperCase","Map"],"sources":["../../../../src/core/Material/SurfaceMaterial/index.ts"],"sourcesContent":["import type { Mesh, MeshPhysicalMaterial, Object3D } from '@anov/3d-core'\nimport { LoaderModule, utils } from '@anov/3d-core'\nimport { SOURCE_BASE_PATH } from '../../../business/Utils/constant'\n\nconst load = new LoaderModule()\nexport enum EMaterialType {\n Plaster = 'Plaster', // 涂料\n Wood = 'Wood', // 木质材质\n Water = 'Water', // 水材质\n Glass = 'Glass', // 玻璃材质\n Iron = 'Iron', // 金属材质\n Moss = 'Moss', // 苔藓材质\n Emissive = 'Emissive', // 发光材质(适用于夜晚窗户)\n Dirt = 'Dirt', // 土壤\n Fabric = 'Fabric', // 布料\n Floor = 'Floor', // 地板\n Marble = 'Marble', // 石材\n Metal = 'Metal', // 金属\n Road = 'Road', // 道路\n Snow = 'snow', // 雪地\n Leather = 'leather', // 皮革\n}\n\nconst SOURCE_PATH = {\n Plaster: `${SOURCE_BASE_PATH}/material/plaster.glb`, // 涂料\n Wood: `${SOURCE_BASE_PATH}/material/wood.glb`, // 木质材质\n Water: `${SOURCE_BASE_PATH}/material/water.glb`, // 水材质\n Glass: `${SOURCE_BASE_PATH}/material/glass.glb`, // 玻璃材质\n Iron: `${SOURCE_BASE_PATH}/material/iron.glb`, // 金属材质\n Moss: `${SOURCE_BASE_PATH}/material/moss.glb`, // 苔藓材质\n Dirt: `${SOURCE_BASE_PATH}/material/dirt.glb`, // 土壤\n Fabric: `${SOURCE_BASE_PATH}/material/fabric.glb`, // 布料\n Floor: `${SOURCE_BASE_PATH}/material/floor.glb`, // 地板\n Marble: `${SOURCE_BASE_PATH}/material/marble.glb`, // 石材\n Metal: `${SOURCE_BASE_PATH}/material/metal.glb`, // 金属\n Road: `${SOURCE_BASE_PATH}/material/road.glb`, // 道路\n Leather: `${SOURCE_BASE_PATH}/material/leather.glb`, // 皮革\n Snow: `${SOURCE_BASE_PATH}/material/snow.glb`, // 雪地\n Emissive: `${SOURCE_BASE_PATH}/material/emissive.glb`, // 发光材质(适用于夜晚窗户)\n Fresnel_Transparent: `${SOURCE_BASE_PATH}/material/emissive2.glb`,\n}\n\nexport class SurfaceMaterial {\n private static cache = new Map<string, MeshPhysicalMaterial>()\n\n static async getMaterial(id: string) {\n id = this.capitalizeFirstLetter(id)\n if (this.cache.has(id))\n return this.cache.get(id).clone()!\n\n try {\n const material = await this.loadModelMaterial(id)\n this.cache.set(id, material)\n return material.clone()\n }\n catch (error) {\n console.error(`Failed to load material ${id}:`, error)\n throw error\n }\n }\n\n static async getMaterialAll() {\n const materials = await Promise.all(Object.keys(SOURCE_PATH).map(async key => await this.getMaterial(key)))\n return materials\n }\n\n static async loadModelMaterial(id: string): Promise<MeshPhysicalMaterial> {\n const uri = SOURCE_PATH[id]\n if (!uri)\n throw new Error(`Invalid material ID: ${id}`)\n\n const model = await new Promise<Object3D>((resolve, reject) => {\n load.loadGLTF({\n url: uri,\n draco: true,\n onLoad: gltf => resolve(gltf.scene.clone(true)),\n onError: err => reject(err),\n })\n })\n\n let mesh: Mesh | null = null\n model.traverse((child) => {\n if (!mesh && child.type === 'Mesh')\n mesh = child as Mesh\n })\n if (!mesh?.material)\n throw new Error(`No valid material found in ${id}`)\n\n return mesh.material as MeshPhysicalMaterial\n }\n\n static capitalizeFirstLetter(str) {\n if (!str)\n return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["LoaderModule","SOURCE_BASE_PATH","load","EMaterialType","SOURCE_PATH","Plaster","Wood","Water","Glass","Iron","Moss","Dirt","Fabric","Floor","Marble","Metal","Road","Leather","Snow","Emissive","Fresnel_Transparent","SurfaceMaterial","getMaterial","id","_this","_asyncToGenerator","capitalizeFirstLetter","cache","has","get","clone","material","loadModelMaterial","set","error","console","getMaterialAll","_this2","materials","Promise","all","Object","keys","map","_ref","key","_x","apply","arguments","_mesh","uri","Error","model","resolve","reject","loadGLTF","url","draco","onLoad","gltf","scene","onError","err","mesh","traverse","child","type","str","charAt","toUpperCase","slice","_defineProperty","Map"],"sources":["../../../../src/core/Material/SurfaceMaterial/index.ts"],"sourcesContent":["import type { Mesh, MeshPhysicalMaterial, Object3D } from '@anov/3d-core'\nimport { LoaderModule, utils } from '@anov/3d-core'\nimport { SOURCE_BASE_PATH } from '../../../business/Utils/constant'\n\nconst load = new LoaderModule()\nexport enum EMaterialType {\n Plaster = 'Plaster', // 涂料\n Wood = 'Wood', // 木质材质\n Water = 'Water', // 水材质\n Glass = 'Glass', // 玻璃材质\n Iron = 'Iron', // 金属材质\n Moss = 'Moss', // 苔藓材质\n Emissive = 'Emissive', // 发光材质(适用于夜晚窗户)\n Dirt = 'Dirt', // 土壤\n Fabric = 'Fabric', // 布料\n Floor = 'Floor', // 地板\n Marble = 'Marble', // 石材\n Metal = 'Metal', // 金属\n Road = 'Road', // 道路\n Snow = 'snow', // 雪地\n Leather = 'leather', // 皮革\n}\n\nconst SOURCE_PATH = {\n Plaster: `${SOURCE_BASE_PATH}/material/plaster.glb`, // 涂料\n Wood: `${SOURCE_BASE_PATH}/material/wood.glb`, // 木质材质\n Water: `${SOURCE_BASE_PATH}/material/water.glb`, // 水材质\n Glass: `${SOURCE_BASE_PATH}/material/glass.glb`, // 玻璃材质\n Iron: `${SOURCE_BASE_PATH}/material/iron.glb`, // 金属材质\n Moss: `${SOURCE_BASE_PATH}/material/moss.glb`, // 苔藓材质\n Dirt: `${SOURCE_BASE_PATH}/material/dirt.glb`, // 土壤\n Fabric: `${SOURCE_BASE_PATH}/material/fabric.glb`, // 布料\n Floor: `${SOURCE_BASE_PATH}/material/floor.glb`, // 地板\n Marble: `${SOURCE_BASE_PATH}/material/marble.glb`, // 石材\n Metal: `${SOURCE_BASE_PATH}/material/metal.glb`, // 金属\n Road: `${SOURCE_BASE_PATH}/material/road.glb`, // 道路\n Leather: `${SOURCE_BASE_PATH}/material/leather.glb`, // 皮革\n Snow: `${SOURCE_BASE_PATH}/material/snow.glb`, // 雪地\n Emissive: `${SOURCE_BASE_PATH}/material/emissive.glb`, // 发光材质(适用于夜晚窗户)\n Fresnel_Transparent: `${SOURCE_BASE_PATH}/material/emissive2.glb`,\n}\n\nexport class SurfaceMaterial {\n private static cache = new Map<string, MeshPhysicalMaterial>()\n\n static async getMaterial(id: string) {\n id = this.capitalizeFirstLetter(id)\n if (this.cache.has(id))\n return this.cache.get(id).clone()!\n\n try {\n const material = await this.loadModelMaterial(id)\n this.cache.set(id, material)\n return material.clone()\n }\n catch (error) {\n console.error(`Failed to load material ${id}:`, error)\n throw error\n }\n }\n\n static async getMaterialAll() {\n const materials = await Promise.all(Object.keys(SOURCE_PATH).map(async key => await this.getMaterial(key)))\n return materials\n }\n\n static async loadModelMaterial(id: string): Promise<MeshPhysicalMaterial> {\n const uri = SOURCE_PATH[id]\n if (!uri)\n throw new Error(`Invalid material ID: ${id}`)\n\n const model = await new Promise<Object3D>((resolve, reject) => {\n load.loadGLTF({\n url: uri,\n draco: true,\n onLoad: gltf => resolve(gltf.scene.clone(true)),\n onError: err => reject(err),\n })\n })\n\n let mesh: Mesh | null = null\n model.traverse((child) => {\n if (!mesh && child.type === 'Mesh')\n mesh = child as Mesh\n })\n if (!mesh?.material)\n throw new Error(`No valid material found in ${id}`)\n\n return mesh.material as MeshPhysicalMaterial\n }\n\n static capitalizeFirstLetter(str) {\n if (!str)\n return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n}\n"],"mappings":"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"}
@@ -1,14 +1,9 @@
1
- export var addUpdateTag = function addUpdateTag(target, propertyKey, descriptor) {
2
- var originalMethod = descriptor.value;
3
- var handleFunction = function handleFunction(fn) {
4
- return function () {
5
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6
- args[_key] = arguments[_key];
7
- }
8
- var res = fn.apply(target, args);
9
- target.needsUpdate = true;
10
- return res;
11
- };
1
+ export const addUpdateTag = (target, propertyKey, descriptor) => {
2
+ const originalMethod = descriptor.value;
3
+ const handleFunction = fn => function (...args) {
4
+ const res = fn.apply(target, args);
5
+ target.needsUpdate = true;
6
+ return res;
12
7
  };
13
8
  if (originalMethod) originalMethod.value = handleFunction(originalMethod);else descriptor.set = handleFunction(descriptor.set);
14
9
  };
@@ -1 +1 @@
1
- {"version":3,"names":["addUpdateTag","target","propertyKey","descriptor","originalMethod","value","handleFunction","fn","_len","arguments","length","args","Array","_key","res","apply","needsUpdate","set"],"sources":["../../../src/core/Material/decorators.ts"],"sourcesContent":["export const addUpdateTag = (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value\n\n const handleFunction = fn => function (...args: any[]) {\n const res = fn.apply(target, args)\n target.needsUpdate = true\n return res\n }\n\n if (originalMethod)\n originalMethod.value = handleFunction(originalMethod)\n else\n descriptor.set = handleFunction(descriptor.set)\n}"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAAW,EAAEC,WAA4B,EAAEC,UAA8B,EAAK;EACzG,IAAMC,cAAc,GAAGD,UAAU,CAACE,KAAK;EAEvC,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,EAAE;IAAA,OAAI,YAA0B;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MAC5C,IAAMC,GAAG,GAAGP,EAAE,CAACQ,KAAK,CAACd,MAAM,EAAEU,IAAI,CAAC;MAClCV,MAAM,CAACe,WAAW,GAAG,IAAI;MACzB,OAAOF,GAAG;IACZ,CAAC;EAAA;EAED,IAAIV,cAAc,EAChBA,cAAc,CAACC,KAAK,GAAGC,cAAc,CAACF,cAAc,CAAC,MAErDD,UAAU,CAACc,GAAG,GAAGX,cAAc,CAACH,UAAU,CAACc,GAAG,CAAC;AACnD,CAAC"}
1
+ {"version":3,"names":["addUpdateTag","target","propertyKey","descriptor","originalMethod","value","handleFunction","fn","args","res","apply","needsUpdate","set"],"sources":["../../../src/core/Material/decorators.ts"],"sourcesContent":["export const addUpdateTag = (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value\n\n const handleFunction = fn => function (...args: any[]) {\n const res = fn.apply(target, args)\n target.needsUpdate = true\n return res\n }\n\n if (originalMethod)\n originalMethod.value = handleFunction(originalMethod)\n else\n descriptor.set = handleFunction(descriptor.set)\n}"],"mappings":"AAAA,OAAO,MAAMA,YAAY,GAAGA,CAACC,MAAW,EAAEC,WAA4B,EAAEC,UAA8B,KAAK;EACzG,MAAMC,cAAc,GAAGD,UAAU,CAACE,KAAK;EAEvC,MAAMC,cAAc,GAAGC,EAAE,IAAI,UAAU,GAAGC,IAAW,EAAE;IACrD,MAAMC,GAAG,GAAGF,EAAE,CAACG,KAAK,CAACT,MAAM,EAAEO,IAAI,CAAC;IAClCP,MAAM,CAACU,WAAW,GAAG,IAAI;IACzB,OAAOF,GAAG;EACZ,CAAC;EAED,IAAIL,cAAc,EAChBA,cAAc,CAACC,KAAK,GAAGC,cAAc,CAACF,cAAc,CAAC,MAErDD,UAAU,CAACS,GAAG,GAAGN,cAAc,CAACH,UAAU,CAACS,GAAG,CAAC;AACnD,CAAC"}
@@ -1,24 +1,28 @@
1
1
  import { lib, use, utils } from '@anov/3d-core';
2
2
  import ACESFilmicToneMappingShader from "./shader/mapping";
3
- var storeManagement = utils.storeManagement;
4
- var CopyShader = lib.CopyShader,
5
- ShaderPass = lib.ShaderPass;
6
- var addmappingExposurePass = function addmappingExposurePass() {
7
- var exposure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.5;
8
- var _use$useScene = use.useScene(),
9
- scene = _use$useScene.scene,
10
- camera = _use$useScene.camera;
11
- var composer = storeManagement.get('composer');
3
+ const {
4
+ storeManagement
5
+ } = utils;
6
+ const {
7
+ CopyShader,
8
+ ShaderPass
9
+ } = lib;
10
+ const addmappingExposurePass = (exposure = 0.5) => {
11
+ const {
12
+ scene,
13
+ camera
14
+ } = use.useScene();
15
+ const composer = storeManagement.get('composer');
12
16
  if (!scene || !camera) throw new Error('scene or camera is not defined,');
13
17
  if (!composer) throw new Error('composer is not defined, please initPostEffects first');
14
- var effectCopy = new ShaderPass(CopyShader);
18
+ const effectCopy = new ShaderPass(CopyShader);
15
19
  effectCopy.renderToScreen = true;
16
20
  ACESFilmicToneMappingShader.uniforms.exposure.value = exposure;
17
- var mappingExposurePass = new ShaderPass(ACESFilmicToneMappingShader);
21
+ const mappingExposurePass = new ShaderPass(ACESFilmicToneMappingShader);
18
22
  composer.addPass(effectCopy);
19
23
  composer.addPass(mappingExposurePass);
20
24
  return {
21
- clean: function clean() {
25
+ clean: () => {
22
26
  composer.removePass(effectCopy);
23
27
  composer.removePass(mappingExposurePass);
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","ACESFilmicToneMappingShader","storeManagement","CopyShader","ShaderPass","addmappingExposurePass","exposure","arguments","length","undefined","_use$useScene","useScene","scene","camera","composer","get","Error","effectCopy","renderToScreen","uniforms","value","mappingExposurePass","addPass","clean","removePass"],"sources":["../../../src/core/PostEffects/addACESFilmicToneMappingPass.ts"],"sourcesContent":["import { lib, use, utils } from '@anov/3d-core'\nimport ACESFilmicToneMappingShader from './shader/mapping'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass } = lib\n\nconst addmappingExposurePass = (exposure = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n ACESFilmicToneMappingShader.uniforms.exposure.value = exposure\n\n const mappingExposurePass = new ShaderPass(ACESFilmicToneMappingShader)\n\n composer.addPass(effectCopy)\n composer.addPass(mappingExposurePass)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(mappingExposurePass)\n },\n\n }\n}\n\nexport default addmappingExposurePass"],"mappings":"AAAA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAC/C,OAAOC,2BAA2B;AAElC,IAAQC,eAAe,GAAKF,KAAK,CAAzBE,eAAe;AACvB,IAAQC,UAAU,GAAiBL,GAAG,CAA9BK,UAAU;EAAEC,UAAU,GAAKN,GAAG,CAAlBM,UAAU;AAE9B,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAuB;EAAA,IAAnBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAC5C,IAAAG,aAAA,GAA0BX,GAAG,CAACY,QAAQ,CAAC,CAAC;IAAhCC,KAAK,GAAAF,aAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,aAAA,CAANG,MAAM;EACrB,IAAMC,QAAQ,GAAGZ,eAAe,CAACa,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,UAAU,GAAG,IAAIb,UAAU,CAACD,UAAU,CAAC;EAC7Cc,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhCjB,2BAA2B,CAACkB,QAAQ,CAACb,QAAQ,CAACc,KAAK,GAAGd,QAAQ;EAE9D,IAAMe,mBAAmB,GAAG,IAAIjB,UAAU,CAACH,2BAA2B,CAAC;EAEvEa,QAAQ,CAACQ,OAAO,CAACL,UAAU,CAAC;EAC5BH,QAAQ,CAACQ,OAAO,CAACD,mBAAmB,CAAC;EAErC,OAAO;IACLE,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXT,QAAQ,CAACU,UAAU,CAACP,UAAU,CAAC;MAC/BH,QAAQ,CAACU,UAAU,CAACH,mBAAmB,CAAC;IAC1C;EAEF,CAAC;AACH,CAAC;AAED,eAAehB,sBAAsB"}
1
+ {"version":3,"names":["lib","use","utils","ACESFilmicToneMappingShader","storeManagement","CopyShader","ShaderPass","addmappingExposurePass","exposure","scene","camera","useScene","composer","get","Error","effectCopy","renderToScreen","uniforms","value","mappingExposurePass","addPass","clean","removePass"],"sources":["../../../src/core/PostEffects/addACESFilmicToneMappingPass.ts"],"sourcesContent":["import { lib, use, utils } from '@anov/3d-core'\nimport ACESFilmicToneMappingShader from './shader/mapping'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass } = lib\n\nconst addmappingExposurePass = (exposure = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n ACESFilmicToneMappingShader.uniforms.exposure.value = exposure\n\n const mappingExposurePass = new ShaderPass(ACESFilmicToneMappingShader)\n\n composer.addPass(effectCopy)\n composer.addPass(mappingExposurePass)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(mappingExposurePass)\n },\n\n }\n}\n\nexport default addmappingExposurePass"],"mappings":"AAAA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAC/C,OAAOC,2BAA2B;AAElC,MAAM;EAAEC;AAAgB,CAAC,GAAGF,KAAK;AACjC,MAAM;EAAEG,UAAU;EAAEC;AAAW,CAAC,GAAGN,GAAG;AAEtC,MAAMO,sBAAsB,GAAGA,CAACC,QAAQ,GAAG,GAAG,KAAK;EACjD,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGT,GAAG,CAACU,QAAQ,CAAC,CAAC;EACxC,MAAMC,QAAQ,GAAGR,eAAe,CAACS,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACJ,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAII,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,MAAMC,UAAU,GAAG,IAAIT,UAAU,CAACD,UAAU,CAAC;EAC7CU,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhCb,2BAA2B,CAACc,QAAQ,CAACT,QAAQ,CAACU,KAAK,GAAGV,QAAQ;EAE9D,MAAMW,mBAAmB,GAAG,IAAIb,UAAU,CAACH,2BAA2B,CAAC;EAEvES,QAAQ,CAACQ,OAAO,CAACL,UAAU,CAAC;EAC5BH,QAAQ,CAACQ,OAAO,CAACD,mBAAmB,CAAC;EAErC,OAAO;IACLE,KAAK,EAAEA,CAAA,KAAM;MACXT,QAAQ,CAACU,UAAU,CAACP,UAAU,CAAC;MAC/BH,QAAQ,CAACU,UAAU,CAACH,mBAAmB,CAAC;IAC1C;EAEF,CAAC;AACH,CAAC;AAED,eAAeZ,sBAAsB"}
@@ -1,24 +1,28 @@
1
1
  import { lib, use, utils } from '@anov/3d-core';
2
- var storeManagement = utils.storeManagement;
3
- var CopyShader = lib.CopyShader,
4
- ShaderPass = lib.ShaderPass,
5
- BrightnessContrastShader = lib.BrightnessContrastShader;
6
- var addBrightnessContrastPass = function addBrightnessContrastPass() {
7
- var brightness = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.5;
8
- var _use$useScene = use.useScene(),
9
- scene = _use$useScene.scene,
10
- camera = _use$useScene.camera;
11
- var composer = storeManagement.get('composer');
2
+ const {
3
+ storeManagement
4
+ } = utils;
5
+ const {
6
+ CopyShader,
7
+ ShaderPass,
8
+ BrightnessContrastShader
9
+ } = lib;
10
+ const addBrightnessContrastPass = (brightness = 0.5) => {
11
+ const {
12
+ scene,
13
+ camera
14
+ } = use.useScene();
15
+ const composer = storeManagement.get('composer');
12
16
  if (!scene || !camera) throw new Error('scene or camera is not defined,');
13
17
  if (!composer) throw new Error('composer is not defined, please initPostEffects first');
14
- var effectCopy = new ShaderPass(CopyShader);
18
+ const effectCopy = new ShaderPass(CopyShader);
15
19
  effectCopy.renderToScreen = true;
16
20
  BrightnessContrastShader.uniforms.brightness.value = brightness;
17
- var brightnessContrastPass = new ShaderPass(BrightnessContrastShader);
21
+ const brightnessContrastPass = new ShaderPass(BrightnessContrastShader);
18
22
  composer.addPass(effectCopy);
19
23
  composer.addPass(brightnessContrastPass);
20
24
  return {
21
- clean: function clean() {
25
+ clean: () => {
22
26
  composer.removePass(effectCopy);
23
27
  composer.removePass(brightnessContrastPass);
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","storeManagement","CopyShader","ShaderPass","BrightnessContrastShader","addBrightnessContrastPass","brightness","arguments","length","undefined","_use$useScene","useScene","scene","camera","composer","get","Error","effectCopy","renderToScreen","uniforms","value","brightnessContrastPass","addPass","clean","removePass"],"sources":["../../../src/core/PostEffects/addBrightnessContrastPass.ts"],"sourcesContent":["import { lib, use, utils } from '@anov/3d-core'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass, BrightnessContrastShader } = lib\n\nconst addBrightnessContrastPass = (brightness = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n BrightnessContrastShader.uniforms.brightness.value = brightness\n\n const brightnessContrastPass = new ShaderPass(BrightnessContrastShader)\n\n composer.addPass(effectCopy)\n composer.addPass(brightnessContrastPass)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(brightnessContrastPass)\n },\n\n }\n}\n\nexport default addBrightnessContrastPass"],"mappings":"AAAA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,UAAU,GAA2CJ,GAAG,CAAxDI,UAAU;EAAEC,UAAU,GAA+BL,GAAG,CAA5CK,UAAU;EAAEC,wBAAwB,GAAKN,GAAG,CAAhCM,wBAAwB;AAExD,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA,EAAyB;EAAA,IAArBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EACjD,IAAAG,aAAA,GAA0BX,GAAG,CAACY,QAAQ,CAAC,CAAC;IAAhCC,KAAK,GAAAF,aAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,aAAA,CAANG,MAAM;EACrB,IAAMC,QAAQ,GAAGb,eAAe,CAACc,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,UAAU,GAAG,IAAId,UAAU,CAACD,UAAU,CAAC;EAC7Ce,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhCd,wBAAwB,CAACe,QAAQ,CAACb,UAAU,CAACc,KAAK,GAAGd,UAAU;EAE/D,IAAMe,sBAAsB,GAAG,IAAIlB,UAAU,CAACC,wBAAwB,CAAC;EAEvEU,QAAQ,CAACQ,OAAO,CAACL,UAAU,CAAC;EAC5BH,QAAQ,CAACQ,OAAO,CAACD,sBAAsB,CAAC;EAExC,OAAO;IACLE,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXT,QAAQ,CAACU,UAAU,CAACP,UAAU,CAAC;MAC/BH,QAAQ,CAACU,UAAU,CAACH,sBAAsB,CAAC;IAC7C;EAEF,CAAC;AACH,CAAC;AAED,eAAehB,yBAAyB"}
1
+ {"version":3,"names":["lib","use","utils","storeManagement","CopyShader","ShaderPass","BrightnessContrastShader","addBrightnessContrastPass","brightness","scene","camera","useScene","composer","get","Error","effectCopy","renderToScreen","uniforms","value","brightnessContrastPass","addPass","clean","removePass"],"sources":["../../../src/core/PostEffects/addBrightnessContrastPass.ts"],"sourcesContent":["import { lib, use, utils } from '@anov/3d-core'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass, BrightnessContrastShader } = lib\n\nconst addBrightnessContrastPass = (brightness = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n BrightnessContrastShader.uniforms.brightness.value = brightness\n\n const brightnessContrastPass = new ShaderPass(BrightnessContrastShader)\n\n composer.addPass(effectCopy)\n composer.addPass(brightnessContrastPass)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(brightnessContrastPass)\n },\n\n }\n}\n\nexport default addBrightnessContrastPass"],"mappings":"AAAA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,MAAM;EAAEC;AAAgB,CAAC,GAAGD,KAAK;AACjC,MAAM;EAAEE,UAAU;EAAEC,UAAU;EAAEC;AAAyB,CAAC,GAAGN,GAAG;AAEhE,MAAMO,yBAAyB,GAAGA,CAACC,UAAU,GAAG,GAAG,KAAK;EACtD,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGT,GAAG,CAACU,QAAQ,CAAC,CAAC;EACxC,MAAMC,QAAQ,GAAGT,eAAe,CAACU,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACJ,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAII,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,MAAMC,UAAU,GAAG,IAAIV,UAAU,CAACD,UAAU,CAAC;EAC7CW,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhCV,wBAAwB,CAACW,QAAQ,CAACT,UAAU,CAACU,KAAK,GAAGV,UAAU;EAE/D,MAAMW,sBAAsB,GAAG,IAAId,UAAU,CAACC,wBAAwB,CAAC;EAEvEM,QAAQ,CAACQ,OAAO,CAACL,UAAU,CAAC;EAC5BH,QAAQ,CAACQ,OAAO,CAACD,sBAAsB,CAAC;EAExC,OAAO;IACLE,KAAK,EAAEA,CAAA,KAAM;MACXT,QAAQ,CAACU,UAAU,CAACP,UAAU,CAAC;MAC/BH,QAAQ,CAACU,UAAU,CAACH,sBAAsB,CAAC;IAC7C;EAEF,CAAC;AACH,CAAC;AAED,eAAeZ,yBAAyB"}
@@ -1,24 +1,31 @@
1
1
  import { Vector2, lib, use, utils } from '@anov/3d-core';
2
- var UnrealBloomPass = lib.UnrealBloomPass;
3
- var useScene = use.useScene;
4
- var storeManagement = utils.storeManagement;
2
+ const {
3
+ UnrealBloomPass
4
+ } = lib;
5
+ const {
6
+ useScene
7
+ } = use;
8
+ const {
9
+ storeManagement
10
+ } = utils;
5
11
  /**
6
12
  * create bloom pass
7
13
  */
8
- var addBloomPass = function addBloomPass(bloomPass) {
14
+ const addBloomPass = bloomPass => {
9
15
  var _bloomPass$threshold, _bloomPass$strength, _bloomPass$radius;
10
- var _useScene = useScene(),
11
- scene = _useScene.scene,
12
- camera = _useScene.camera;
13
- var composer = storeManagement.get('composer');
16
+ const {
17
+ scene,
18
+ camera
19
+ } = useScene();
20
+ const composer = storeManagement.get('composer');
14
21
  if (!scene || !camera) throw new Error('scene or camera is not defined,');
15
22
  if (!composer) throw new Error('composer is not defined, please initPostEffects first');
16
- var bloom = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), 1.5, 0.4, 0.85);
23
+ const bloom = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), 1.5, 0.4, 0.85);
17
24
  bloom.threshold = (_bloomPass$threshold = bloomPass === null || bloomPass === void 0 ? void 0 : bloomPass.threshold) !== null && _bloomPass$threshold !== void 0 ? _bloomPass$threshold : 0.85;
18
25
  bloom.strength = (_bloomPass$strength = bloomPass === null || bloomPass === void 0 ? void 0 : bloomPass.strength) !== null && _bloomPass$strength !== void 0 ? _bloomPass$strength : 1.5;
19
26
  bloom.radius = (_bloomPass$radius = bloomPass === null || bloomPass === void 0 ? void 0 : bloomPass.radius) !== null && _bloomPass$radius !== void 0 ? _bloomPass$radius : 0.4;
20
27
  composer.addPass(bloom);
21
- return function () {
28
+ return () => {
22
29
  composer.removePass(bloom);
23
30
  };
24
31
  };
@@ -1 +1 @@
1
- {"version":3,"names":["Vector2","lib","use","utils","UnrealBloomPass","useScene","storeManagement","addBloomPass","bloomPass","_bloomPass$threshold","_bloomPass$strength","_bloomPass$radius","_useScene","scene","camera","composer","get","Error","bloom","window","innerWidth","innerHeight","threshold","strength","radius","addPass","removePass"],"sources":["../../../src/core/PostEffects/bloomPass.ts"],"sourcesContent":["import { Vector2, lib, use, utils } from '@anov/3d-core'\n\nconst { UnrealBloomPass } = lib\nconst { useScene } = use\nconst { storeManagement } = utils\n\ntype BloomPassOptions = {\n threshold?: number\n strength?: number\n radius?: number\n}\n\n/**\n * create bloom pass\n */\nconst addBloomPass = (bloomPass?: BloomPassOptions) => {\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const bloom = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), 1.5, 0.4, 0.85)\n\n bloom.threshold = bloomPass?.threshold ?? 0.85\n bloom.strength = bloomPass?.strength ?? 1.5\n bloom.radius = bloomPass?.radius ?? 0.4\n\n composer.addPass(bloom)\n\n return () => {\n composer.removePass(bloom)\n }\n}\n\nexport default addBloomPass"],"mappings":"AAAA,SAASA,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAExD,IAAQC,eAAe,GAAKH,GAAG,CAAvBG,eAAe;AACvB,IAAQC,QAAQ,GAAKH,GAAG,CAAhBG,QAAQ;AAChB,IAAQC,eAAe,GAAKH,KAAK,CAAzBG,eAAe;AAQvB;AACA;AACA;AACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,SAA4B,EAAK;EAAA,IAAAC,oBAAA,EAAAC,mBAAA,EAAAC,iBAAA;EACrD,IAAAC,SAAA,GAA0BP,QAAQ,CAAC,CAAC;IAA5BQ,KAAK,GAAAD,SAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,SAAA,CAANE,MAAM;EACrB,IAAMC,QAAQ,GAAGT,eAAe,CAACU,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,KAAK,GAAG,IAAId,eAAe,CAAC,IAAIJ,OAAO,CAACmB,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;EAErGH,KAAK,CAACI,SAAS,IAAAb,oBAAA,GAAGD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEc,SAAS,cAAAb,oBAAA,cAAAA,oBAAA,GAAI,IAAI;EAC9CS,KAAK,CAACK,QAAQ,IAAAb,mBAAA,GAAGF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEe,QAAQ,cAAAb,mBAAA,cAAAA,mBAAA,GAAI,GAAG;EAC3CQ,KAAK,CAACM,MAAM,IAAAb,iBAAA,GAAGH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEgB,MAAM,cAAAb,iBAAA,cAAAA,iBAAA,GAAI,GAAG;EAEvCI,QAAQ,CAACU,OAAO,CAACP,KAAK,CAAC;EAEvB,OAAO,YAAM;IACXH,QAAQ,CAACW,UAAU,CAACR,KAAK,CAAC;EAC5B,CAAC;AACH,CAAC;AAED,eAAeX,YAAY"}
1
+ {"version":3,"names":["Vector2","lib","use","utils","UnrealBloomPass","useScene","storeManagement","addBloomPass","bloomPass","_bloomPass$threshold","_bloomPass$strength","_bloomPass$radius","scene","camera","composer","get","Error","bloom","window","innerWidth","innerHeight","threshold","strength","radius","addPass","removePass"],"sources":["../../../src/core/PostEffects/bloomPass.ts"],"sourcesContent":["import { Vector2, lib, use, utils } from '@anov/3d-core'\n\nconst { UnrealBloomPass } = lib\nconst { useScene } = use\nconst { storeManagement } = utils\n\ntype BloomPassOptions = {\n threshold?: number\n strength?: number\n radius?: number\n}\n\n/**\n * create bloom pass\n */\nconst addBloomPass = (bloomPass?: BloomPassOptions) => {\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const bloom = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), 1.5, 0.4, 0.85)\n\n bloom.threshold = bloomPass?.threshold ?? 0.85\n bloom.strength = bloomPass?.strength ?? 1.5\n bloom.radius = bloomPass?.radius ?? 0.4\n\n composer.addPass(bloom)\n\n return () => {\n composer.removePass(bloom)\n }\n}\n\nexport default addBloomPass"],"mappings":"AAAA,SAASA,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAExD,MAAM;EAAEC;AAAgB,CAAC,GAAGH,GAAG;AAC/B,MAAM;EAAEI;AAAS,CAAC,GAAGH,GAAG;AACxB,MAAM;EAAEI;AAAgB,CAAC,GAAGH,KAAK;AAQjC;AACA;AACA;AACA,MAAMI,YAAY,GAAIC,SAA4B,IAAK;EAAA,IAAAC,oBAAA,EAAAC,mBAAA,EAAAC,iBAAA;EACrD,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGR,QAAQ,CAAC,CAAC;EACpC,MAAMS,QAAQ,GAAGR,eAAe,CAACS,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,MAAMC,KAAK,GAAG,IAAIb,eAAe,CAAC,IAAIJ,OAAO,CAACkB,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;EAErGH,KAAK,CAACI,SAAS,IAAAZ,oBAAA,GAAGD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEa,SAAS,cAAAZ,oBAAA,cAAAA,oBAAA,GAAI,IAAI;EAC9CQ,KAAK,CAACK,QAAQ,IAAAZ,mBAAA,GAAGF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEc,QAAQ,cAAAZ,mBAAA,cAAAA,mBAAA,GAAI,GAAG;EAC3CO,KAAK,CAACM,MAAM,IAAAZ,iBAAA,GAAGH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEe,MAAM,cAAAZ,iBAAA,cAAAA,iBAAA,GAAI,GAAG;EAEvCG,QAAQ,CAACU,OAAO,CAACP,KAAK,CAAC;EAEvB,OAAO,MAAM;IACXH,QAAQ,CAACW,UAAU,CAACR,KAAK,CAAC;EAC5B,CAAC;AACH,CAAC;AAED,eAAeV,YAAY"}