@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.
- package/dist/business/Animation/motion/index.js +35 -56
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Animation/type.js +2 -2
- package/dist/business/Area/Fence/FenceBase.js +146 -187
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +120 -112
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +218 -130
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +140 -130
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +87 -126
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js +72 -98
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js +66 -94
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
- package/dist/business/Area/index.js +267 -483
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Area/tool.js +14 -26
- package/dist/business/Area/tool.js.map +1 -1
- package/dist/business/Base/ObjectLayer.js +21 -46
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.js +189 -234
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.js +52 -81
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Cylinder/index.js +51 -79
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Flyline/bubble/CircleBubble.js +1 -9
- package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
- package/dist/business/Flyline/bubble/index.js +7 -21
- package/dist/business/Flyline/bubble/index.js.map +1 -1
- package/dist/business/Flyline/index.js +96 -162
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +208 -291
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Flyline/line/index.js +8 -22
- package/dist/business/Flyline/line/index.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +380 -467
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/HeatMap/core.js +405 -525
- package/dist/business/HeatMap/core.js.map +1 -1
- package/dist/business/HeatMap/shader.js +69 -3
- package/dist/business/HeatMap/shader.js.map +1 -1
- package/dist/business/InfoPanel/index.js +201 -242
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/Line/index.js +55 -88
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Mark/KeyframeAnimation.js +145 -176
- package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
- package/dist/business/Mark/index.js +196 -294
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/Mark/shader/tanhao.js +36 -3
- package/dist/business/Mark/shader/tanhao.js.map +1 -1
- package/dist/business/Mark/type.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +377 -551
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +92 -58
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/finalFade.js +74 -2
- package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +95 -16
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/groundBase64.js +9 -3
- package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +48 -9
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Plane/index.js +51 -78
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Poi/index.d.ts +5 -0
- package/dist/business/Poi/index.js +256 -295
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.js +56 -89
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.js +104 -165
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.d.ts +1 -1
- package/dist/business/Poi/link/index.js +54 -114
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.d.ts +124 -0
- package/dist/business/Poi/panel/index.js +474 -0
- package/dist/business/Poi/panel/index.js.map +1 -0
- package/dist/business/Poi/panel/interfaces.d.ts +67 -0
- package/dist/business/Poi/panel/interfaces.js +2 -0
- package/dist/business/Poi/panel/interfaces.js.map +1 -0
- package/dist/business/Poi/panel/utils.d.ts +72 -0
- package/dist/business/Poi/panel/utils.js +126 -0
- package/dist/business/Poi/panel/utils.js.map +1 -0
- package/dist/business/Poi/particle/DoubleCircle.js +71 -107
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +75 -111
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +62 -98
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.js +49 -117
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +31 -3
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/cylinder.js +37 -3
- package/dist/business/Poi/shader/cylinder.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +55 -3
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Poi/shader/dynamicCircle.js +67 -3
- package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
- package/dist/business/Poi/title/Border.js +7 -27
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.js +7 -27
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.js +208 -292
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Poi/tools.js +22 -19
- package/dist/business/Poi/tools.js.map +1 -1
- package/dist/business/Poi/types.d.ts +3 -0
- package/dist/business/Poi/types.js.map +1 -1
- package/dist/business/Sphere/index.js +47 -72
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Spline/index.js +190 -245
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.js +327 -536
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/SplitBuilding/type.js +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +218 -275
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +132 -177
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +51 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +6 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
- package/dist/business/TrafficComponents/base.js +32 -55
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/utils.d.ts +1 -1
- package/dist/business/TrafficComponents/utils.js +26 -25
- package/dist/business/TrafficComponents/utils.js.map +1 -1
- package/dist/business/Utils/Curve.js +40 -56
- package/dist/business/Utils/Curve.js.map +1 -1
- package/dist/business/Utils/constant.js +1 -1
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/defineProps.js +13 -14
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/Utils/round-curve.js +127 -153
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/business/VideoPanel/index.js +258 -319
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/Water/index.js +78 -108
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/Water/types.js +1 -1
- package/dist/business/Water/types.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.js +84 -96
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
- package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.js +19 -28
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
- package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
- package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.js +66 -91
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.js +14 -30
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
- package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
- package/dist/core/Light/PointLight/PointLightExt.js +4 -21
- package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js +76 -172
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/decorators.js +6 -11
- package/dist/core/Material/decorators.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.js +17 -10
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.js +60 -43
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.js +17 -13
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.js +28 -22
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +37 -50
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.js +14 -12
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.js +15 -10
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/PostEffects/shader/colorify.js +22 -3
- package/dist/core/PostEffects/shader/colorify.js.map +1 -1
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
- package/dist/core/PostEffects/shader/mapping.js +66 -3
- package/dist/core/PostEffects/shader/mapping.js.map +1 -1
- package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
- package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.js +85 -101
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_down.js +60 -77
- package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_up.js +64 -81
- package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
- package/dist/core/SceneEffect/grow/type.js +2 -2
- package/dist/core/SceneEffect/grow/type.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.js +69 -105
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.js +77 -124
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
- package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
- package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
- package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/fog.js +103 -3
- package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/rain.js +206 -7
- package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +87 -3
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +104 -135
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js +44 -38
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/utils/math.js +18 -25
- package/dist/core/WeatherSystem/utils/math.js.map +1 -1
- package/dist/core/WeatherSystem/utils/type.js +1 -1
- package/dist/core/WeatherSystem/utils/type.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.js +96 -141
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- 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" ==
|
|
10
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
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
|
-
|
|
14
|
-
export
|
|
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
|
-
|
|
33
|
-
Plaster:
|
|
27
|
+
const SOURCE_PATH = {
|
|
28
|
+
Plaster: `${SOURCE_BASE_PATH}/material/plaster.glb`,
|
|
34
29
|
// 涂料
|
|
35
|
-
Wood:
|
|
30
|
+
Wood: `${SOURCE_BASE_PATH}/material/wood.glb`,
|
|
36
31
|
// 木质材质
|
|
37
|
-
Water:
|
|
32
|
+
Water: `${SOURCE_BASE_PATH}/material/water.glb`,
|
|
38
33
|
// 水材质
|
|
39
|
-
Glass:
|
|
34
|
+
Glass: `${SOURCE_BASE_PATH}/material/glass.glb`,
|
|
40
35
|
// 玻璃材质
|
|
41
|
-
Iron:
|
|
36
|
+
Iron: `${SOURCE_BASE_PATH}/material/iron.glb`,
|
|
42
37
|
// 金属材质
|
|
43
|
-
Moss:
|
|
38
|
+
Moss: `${SOURCE_BASE_PATH}/material/moss.glb`,
|
|
44
39
|
// 苔藓材质
|
|
45
|
-
Dirt:
|
|
40
|
+
Dirt: `${SOURCE_BASE_PATH}/material/dirt.glb`,
|
|
46
41
|
// 土壤
|
|
47
|
-
Fabric:
|
|
42
|
+
Fabric: `${SOURCE_BASE_PATH}/material/fabric.glb`,
|
|
48
43
|
// 布料
|
|
49
|
-
Floor:
|
|
44
|
+
Floor: `${SOURCE_BASE_PATH}/material/floor.glb`,
|
|
50
45
|
// 地板
|
|
51
|
-
Marble:
|
|
46
|
+
Marble: `${SOURCE_BASE_PATH}/material/marble.glb`,
|
|
52
47
|
// 石材
|
|
53
|
-
Metal:
|
|
48
|
+
Metal: `${SOURCE_BASE_PATH}/material/metal.glb`,
|
|
54
49
|
// 金属
|
|
55
|
-
Road:
|
|
50
|
+
Road: `${SOURCE_BASE_PATH}/material/road.glb`,
|
|
56
51
|
// 道路
|
|
57
|
-
Leather:
|
|
52
|
+
Leather: `${SOURCE_BASE_PATH}/material/leather.glb`,
|
|
58
53
|
// 皮革
|
|
59
|
-
Snow:
|
|
54
|
+
Snow: `${SOURCE_BASE_PATH}/material/snow.glb`,
|
|
60
55
|
// 雪地
|
|
61
|
-
Emissive:
|
|
56
|
+
Emissive: `${SOURCE_BASE_PATH}/material/emissive.glb`,
|
|
62
57
|
// 发光材质(适用于夜晚窗户)
|
|
63
|
-
Fresnel_Transparent:
|
|
58
|
+
Fresnel_Transparent: `${SOURCE_BASE_PATH}/material/emissive2.glb`
|
|
64
59
|
};
|
|
65
|
-
export
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
var
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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","
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
18
|
+
const effectCopy = new ShaderPass(CopyShader);
|
|
15
19
|
effectCopy.renderToScreen = true;
|
|
16
20
|
ACESFilmicToneMappingShader.uniforms.exposure.value = exposure;
|
|
17
|
-
|
|
21
|
+
const mappingExposurePass = new ShaderPass(ACESFilmicToneMappingShader);
|
|
18
22
|
composer.addPass(effectCopy);
|
|
19
23
|
composer.addPass(mappingExposurePass);
|
|
20
24
|
return {
|
|
21
|
-
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","
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
18
|
+
const effectCopy = new ShaderPass(CopyShader);
|
|
15
19
|
effectCopy.renderToScreen = true;
|
|
16
20
|
BrightnessContrastShader.uniforms.brightness.value = brightness;
|
|
17
|
-
|
|
21
|
+
const brightnessContrastPass = new ShaderPass(BrightnessContrastShader);
|
|
18
22
|
composer.addPass(effectCopy);
|
|
19
23
|
composer.addPass(brightnessContrastPass);
|
|
20
24
|
return {
|
|
21
|
-
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","
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
14
|
+
const addBloomPass = bloomPass => {
|
|
9
15
|
var _bloomPass$threshold, _bloomPass$strength, _bloomPass$radius;
|
|
10
|
-
|
|
11
|
-
scene
|
|
12
|
-
camera
|
|
13
|
-
|
|
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
|
-
|
|
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
|
|
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","
|
|
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"}
|