@anov/3d-ability 0.0.12 → 0.0.14

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 (78) hide show
  1. package/dist/camera/index.js +31 -31
  2. package/dist/camera/index.js.map +1 -1
  3. package/dist/environment/sky/index.d.ts +15 -5
  4. package/dist/environment/sky/index.js +26 -20
  5. package/dist/environment/sky/index.js.map +1 -1
  6. package/dist/environment/skyv2/config.d.ts +32 -0
  7. package/dist/environment/skyv2/config.js +50 -0
  8. package/dist/environment/skyv2/config.js.map +1 -0
  9. package/dist/environment/skyv2/index.d.ts +14 -0
  10. package/dist/environment/skyv2/index.js +140 -0
  11. package/dist/environment/skyv2/index.js.map +1 -0
  12. package/dist/environment/skyv2/shader/cloud/frag.d.ts +2 -0
  13. package/dist/environment/skyv2/shader/cloud/frag.js +3 -0
  14. package/dist/environment/skyv2/shader/cloud/frag.js.map +1 -0
  15. package/dist/environment/skyv2/shader/cloud/vert.d.ts +2 -0
  16. package/dist/environment/skyv2/shader/cloud/vert.js +3 -0
  17. package/dist/environment/skyv2/shader/cloud/vert.js.map +1 -0
  18. package/dist/environment/skyv2/shader/sky/frag.d.ts +2 -0
  19. package/dist/environment/skyv2/shader/sky/frag.js +3 -0
  20. package/dist/environment/skyv2/shader/sky/frag.js.map +1 -0
  21. package/dist/environment/skyv2/type.d.ts +14 -0
  22. package/dist/environment/skyv2/type.js +26 -0
  23. package/dist/environment/skyv2/type.js.map +1 -0
  24. package/dist/index.d.ts +6 -3
  25. package/dist/index.js +6 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/material/fakeGlowMaterial/index.d.ts +17 -0
  28. package/dist/material/fakeGlowMaterial/index.js +57 -0
  29. package/dist/material/fakeGlowMaterial/index.js.map +1 -0
  30. package/dist/material/fakeGlowMaterial/shader/fragmentShader.d.ts +2 -0
  31. package/dist/material/fakeGlowMaterial/shader/fragmentShader.js +3 -0
  32. package/dist/material/fakeGlowMaterial/shader/fragmentShader.js.map +1 -0
  33. package/dist/material/fakeGlowMaterial/shader/vertexShader.d.ts +2 -0
  34. package/dist/material/fakeGlowMaterial/shader/vertexShader.js +3 -0
  35. package/dist/material/fakeGlowMaterial/shader/vertexShader.js.map +1 -0
  36. package/dist/poi/Sprite/index.js +1 -1
  37. package/dist/poi/Sprite/index.js.map +1 -1
  38. package/dist/postEffects/bloomSelect.js +40 -6
  39. package/dist/postEffects/bloomSelect.js.map +1 -1
  40. package/dist/postEffects/outlinePass.js.map +1 -1
  41. package/dist/weather/index.d.ts +36 -0
  42. package/dist/weather/index.js +273 -5
  43. package/dist/weather/index.js.map +1 -1
  44. package/dist/weather/objects/CloudMesh.d.ts +22 -0
  45. package/dist/weather/objects/CloudMesh.js +122 -0
  46. package/dist/weather/objects/CloudMesh.js.map +1 -0
  47. package/dist/weather/{fog2DMesh.d.ts → objects/Fog2DMesh.d.ts} +6 -7
  48. package/dist/weather/objects/Fog2DMesh.js +94 -0
  49. package/dist/weather/objects/Fog2DMesh.js.map +1 -0
  50. package/dist/weather/objects/SkyMesh.d.ts +7 -0
  51. package/dist/weather/{fog2DMesh.js → objects/SkyMesh.js} +19 -55
  52. package/dist/weather/objects/SkyMesh.js.map +1 -0
  53. package/dist/weather/objects/SnowMesh.d.ts +17 -0
  54. package/dist/weather/objects/SnowMesh.js +163 -0
  55. package/dist/weather/objects/SnowMesh.js.map +1 -0
  56. package/dist/weather/shaders/cloud.d.ts +37 -0
  57. package/dist/weather/shaders/cloud.js +38 -0
  58. package/dist/weather/shaders/cloud.js.map +1 -0
  59. package/dist/weather/shaders/fog.d.ts +16 -0
  60. package/dist/weather/shaders/fog.js +17 -0
  61. package/dist/weather/shaders/fog.js.map +1 -0
  62. package/dist/weather/shaders/sky.d.ts +6 -0
  63. package/dist/weather/shaders/sky.js +7 -0
  64. package/dist/weather/shaders/sky.js.map +1 -0
  65. package/dist/weather/shaders/snow.d.ts +28 -0
  66. package/dist/weather/shaders/snow.js +33 -0
  67. package/dist/weather/shaders/snow.js.map +1 -0
  68. package/dist/weather/utils/constant.d.ts +38 -0
  69. package/dist/weather/utils/constant.js +25 -0
  70. package/dist/weather/utils/constant.js.map +1 -0
  71. package/dist/weather/utils/type.d.ts +11 -0
  72. package/dist/weather/utils/type.js +23 -0
  73. package/dist/weather/utils/type.js.map +1 -0
  74. package/package.json +3 -3
  75. package/dist/weather/fog2DMesh.js.map +0 -1
  76. package/dist/weather/glsl/fog.d.ts +0 -2
  77. package/dist/weather/glsl/fog.js +0 -3
  78. package/dist/weather/glsl/fog.js.map +0 -1
@@ -0,0 +1,122 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
8
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
11
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ import { Mesh, RepeatWrapping, ShaderMaterial, TextureLoader } from '@anov/3d-core';
18
+ import cloudShader from "../shaders/cloud";
19
+ import { CloudDensity } from "../utils/constant";
20
+ var textureLoader = new TextureLoader();
21
+ var _defaultOption = {
22
+ texture1: textureLoader.load('./T_soft_smoke.png'),
23
+ texture2: textureLoader.load('./T_TileNoise.png'),
24
+ duration: 2,
25
+ cloudDensity: 0.02,
26
+ cloudDensity2: 1.6,
27
+ cloudalpha: 0.8,
28
+ cloudscale: 8.0,
29
+ speed: 0.3,
30
+ color: [0.9, 0.9, 0.9],
31
+ flash: 0.3
32
+ };
33
+ var CloudMesh = /*#__PURE__*/function (_Mesh) {
34
+ _inherits(CloudMesh, _Mesh);
35
+ var _super = _createSuper(CloudMesh);
36
+ function CloudMesh(mesh) {
37
+ var _this;
38
+ _classCallCheck(this, CloudMesh);
39
+ _this = _super.call(this);
40
+ _defineProperty(_assertThisInitialized(_this), "option", _defaultOption);
41
+ _defineProperty(_assertThisInitialized(_this), "uniforms", {});
42
+ _defineProperty(_assertThisInitialized(_this), "mesh", void 0);
43
+ _defineProperty(_assertThisInitialized(_this), "loaded", void 0);
44
+ _this.mesh = mesh;
45
+ if (_this.option.texture1) _this.option.texture1.wrapS = _this.option.texture1.wrapT = RepeatWrapping;
46
+ if (_this.option.texture2) _this.option.texture2.wrapS = _this.option.texture2.wrapT = RepeatWrapping;
47
+ _this.setUniforms(_objectSpread(_objectSpread({}, _this.option), {}, {
48
+ iTime: 0
49
+ }));
50
+ // @ts-ignore
51
+ _this.mesh.children[0].material = new ShaderMaterial({
52
+ uniforms: _this.uniforms,
53
+ vertexShader: cloudShader.vertexShader,
54
+ fragmentShader: cloudShader.fragmentShader,
55
+ side: 2,
56
+ transparent: true,
57
+ depthWrite: false
58
+ });
59
+ _this.mesh.scale.set(997, 997, 997);
60
+ return _this;
61
+ }
62
+
63
+ /**
64
+ * 设置天气的Uniforms
65
+ * @param option
66
+ */
67
+ _createClass(CloudMesh, [{
68
+ key: "setUniforms",
69
+ value: function setUniforms(option) {
70
+ var _this2 = this;
71
+ Object.assign(this.option, option);
72
+ Object.keys(option).forEach(function (key) {
73
+ _this2.uniforms[key] = {
74
+ value: option[key]
75
+ };
76
+ });
77
+ }
78
+ }, {
79
+ key: "setAlpha",
80
+ value: function setAlpha(alpha) {
81
+ this.setUniforms({
82
+ cloudalpha: alpha
83
+ });
84
+ }
85
+ }, {
86
+ key: "setScale",
87
+ value: function setScale(scale) {
88
+ this.setUniforms({
89
+ cloudscale: scale
90
+ });
91
+ }
92
+ }, {
93
+ key: "setSpeed",
94
+ value: function setSpeed(speed) {
95
+ this.setUniforms({
96
+ speed: speed
97
+ });
98
+ }
99
+ }, {
100
+ key: "setFlash",
101
+ value: function setFlash(flash) {
102
+ this.setUniforms({
103
+ flash: flash
104
+ });
105
+ }
106
+ }, {
107
+ key: "setEffect",
108
+ value: function setEffect(type, ops) {
109
+ var density = CloudDensity[type] || {};
110
+ this.setUniforms(_objectSpread(_objectSpread({}, density), ops));
111
+ }
112
+ }, {
113
+ key: "update",
114
+ value: function update() {
115
+ var iTime = this.uniforms.iTime;
116
+ iTime.value += 0.01;
117
+ }
118
+ }]);
119
+ return CloudMesh;
120
+ }(Mesh);
121
+ export default CloudMesh;
122
+ //# sourceMappingURL=CloudMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Mesh","RepeatWrapping","ShaderMaterial","TextureLoader","cloudShader","CloudDensity","textureLoader","_defaultOption","texture1","load","texture2","duration","cloudDensity","cloudDensity2","cloudalpha","cloudscale","speed","color","flash","CloudMesh","mesh","option","wrapS","wrapT","setUniforms","iTime","children","material","uniforms","vertexShader","fragmentShader","side","transparent","depthWrite","scale","set","Object","assign","keys","forEach","key","value","alpha","type","ops","density"],"sources":["../../../src/weather/objects/CloudMesh.ts"],"sourcesContent":["import type { Group, Texture } from '@anov/3d-core'\nimport { Mesh, RepeatWrapping, ShaderMaterial, TextureLoader, use } from '@anov/3d-core'\nimport cloudShader from '../shaders/cloud'\nimport type { ICloudOption } from '../utils/constant'\nimport { CloudDensity } from '../utils/constant'\n\nconst textureLoader = new TextureLoader()\n\nconst _defaultOption: ICloudOption = {\n texture1: textureLoader.load('./T_soft_smoke.png'),\n texture2: textureLoader.load('./T_TileNoise.png'),\n duration: 2,\n cloudDensity: 0.02,\n cloudDensity2: 1.6,\n cloudalpha: 0.8,\n cloudscale: 8.0,\n speed: 0.3,\n color: [0.9, 0.9, 0.9],\n flash: 0.3,\n}\n\nclass CloudMesh extends Mesh {\n option: ICloudOption = _defaultOption\n\n uniforms: any = {}\n mesh!: Group\n loaded!: Promise<Boolean>\n\n constructor(mesh: Group) {\n super()\n this.mesh = mesh\n if (this.option.texture1)\n this.option.texture1.wrapS = this.option.texture1.wrapT = RepeatWrapping\n if (this.option.texture2)\n this.option.texture2.wrapS = this.option.texture2.wrapT = RepeatWrapping\n this.setUniforms({\n ...this.option,\n iTime: 0,\n })\n // @ts-ignore\n this.mesh.children[0].material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: cloudShader.vertexShader,\n fragmentShader: cloudShader.fragmentShader,\n side: 2,\n transparent: true,\n depthWrite: false,\n })\n this.mesh.scale.set(997, 997, 997)\n }\n\n /**\n * 设置天气的Uniforms\n * @param option\n */\n private setUniforms(option: ICloudOption) {\n Object.assign(this.option, option)\n\n Object.keys(option).forEach((key: string) => {\n this.uniforms[key] = { value: option[key] }\n })\n }\n\n public setAlpha(alpha: number) {\n this.setUniforms({ cloudalpha: alpha })\n }\n\n public setScale(scale: number) {\n this.setUniforms({ cloudscale: scale })\n }\n\n public setSpeed(speed: number) {\n this.setUniforms({ speed })\n }\n\n public setFlash(flash: number) {\n this.setUniforms({ flash })\n }\n\n public setEffect(type: string, ops: ICloudOption) {\n const density = CloudDensity[type] || {}\n this.setUniforms({ ...density, ...ops })\n }\n\n public update() {\n const { iTime } = this.uniforms\n iTime.value += 0.01\n }\n}\n\nexport default CloudMesh"],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import { Mesh } from '@anov/3d-core';
2
- interface Fog2DMeshOptions {
3
- color?: [number, number, number];
4
- alpha?: number;
5
- speed?: number;
6
- }
2
+ import type { IFogOption } from '../utils/constant';
7
3
  declare class Fog2DMesh extends Mesh {
8
- private speed;
9
- constructor(ops?: Fog2DMeshOptions);
4
+ option: IFogOption;
5
+ uniforms: any;
6
+ constructor(ops?: IFogOption);
7
+ private setUniforms;
10
8
  setColor(color: [number, number, number]): void;
11
9
  setAlpha(alpha: number): void;
12
10
  setSpeed(speed: number): void;
11
+ update(): void;
13
12
  }
14
13
  export default Fog2DMesh;
@@ -0,0 +1,94 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
8
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
11
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ import { Mesh, PlaneGeometry, ShaderMaterial } from '@anov/3d-core';
18
+ import fogShader from "../shaders/fog";
19
+ var _defaultOption = {
20
+ fogcolor: [0.9, 0.9, 0.9],
21
+ alpha: 0.5,
22
+ speed: 0.01
23
+ };
24
+ var Fog2DMesh = /*#__PURE__*/function (_Mesh) {
25
+ _inherits(Fog2DMesh, _Mesh);
26
+ var _super = _createSuper(Fog2DMesh);
27
+ function Fog2DMesh(ops) {
28
+ var _this;
29
+ _classCallCheck(this, Fog2DMesh);
30
+ _this = _super.call(this);
31
+ _defineProperty(_assertThisInitialized(_this), "option", _defaultOption);
32
+ _defineProperty(_assertThisInitialized(_this), "uniforms", void 0);
33
+ _this.geometry = new PlaneGeometry(10, 10);
34
+ Object.assign(_this.option, ops);
35
+ _this.setUniforms(_objectSpread(_objectSpread({}, _this.option), {}, {
36
+ iTime: 0
37
+ }));
38
+ _this.material = new ShaderMaterial({
39
+ uniforms: _this.uniforms,
40
+ vertexShader: fogShader.vertexShader,
41
+ fragmentShader: fogShader.fragmentShader,
42
+ side: 2,
43
+ transparent: true,
44
+ depthWrite: false
45
+ });
46
+ _this.renderOrder = 1;
47
+ return _this;
48
+ }
49
+ _createClass(Fog2DMesh, [{
50
+ key: "setUniforms",
51
+ value: function setUniforms(option) {
52
+ var _this2 = this;
53
+ if (!this.uniforms) this.uniforms = {};
54
+ Object.assign(this.option, option);
55
+ Object.keys(option).forEach(function (key) {
56
+ _this2.uniforms[key] = {
57
+ value: option[key]
58
+ };
59
+ });
60
+ }
61
+ }, {
62
+ key: "setColor",
63
+ value: function setColor(color) {
64
+ this.setUniforms({
65
+ fogcolor: color
66
+ });
67
+ }
68
+ }, {
69
+ key: "setAlpha",
70
+ value: function setAlpha(alpha) {
71
+ this.setUniforms({
72
+ alpha: alpha
73
+ });
74
+ }
75
+ }, {
76
+ key: "setSpeed",
77
+ value: function setSpeed(speed) {
78
+ this.setUniforms({
79
+ speed: speed
80
+ });
81
+ }
82
+ }, {
83
+ key: "update",
84
+ value: function update() {
85
+ var _this$option$speed = this.option.speed,
86
+ speed = _this$option$speed === void 0 ? 0.01 : _this$option$speed;
87
+ var iTime = this.uniforms.iTime;
88
+ iTime.value += speed;
89
+ }
90
+ }]);
91
+ return Fog2DMesh;
92
+ }(Mesh);
93
+ export default Fog2DMesh;
94
+ //# sourceMappingURL=Fog2DMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Mesh","PlaneGeometry","ShaderMaterial","fogShader","_defaultOption","fogcolor","alpha","speed","Fog2DMesh","ops","geometry","Object","assign","option","setUniforms","iTime","material","uniforms","vertexShader","fragmentShader","side","transparent","depthWrite","renderOrder","keys","forEach","key","value","color"],"sources":["../../../src/weather/objects/Fog2DMesh.ts"],"sourcesContent":["import { Mesh, PlaneGeometry, ShaderMaterial, use } from '@anov/3d-core'\nimport fogShader from '../shaders/fog'\nimport type { IFogOption } from '../utils/constant'\n\nconst _defaultOption: IFogOption = {\n fogcolor: [0.9, 0.9, 0.9],\n alpha: 0.5,\n speed: 0.01,\n}\n\nclass Fog2DMesh extends Mesh {\n option: IFogOption = _defaultOption\n uniforms: any\n\n constructor(ops?: IFogOption) {\n super()\n this.geometry = new PlaneGeometry(10, 10)\n\n Object.assign(this.option, ops)\n this.setUniforms({ ...this.option, iTime: 0 })\n\n this.material = new ShaderMaterial({\n uniforms: this.uniforms,\n vertexShader: fogShader.vertexShader,\n fragmentShader: fogShader.fragmentShader,\n side: 2,\n transparent: true,\n depthWrite: false,\n })\n this.renderOrder = 1\n }\n\n private setUniforms(option: IFogOption) {\n if (!this.uniforms)\n this.uniforms = {}\n\n Object.assign(this.option, option)\n\n Object.keys(option).forEach((key: string) => {\n this.uniforms[key] = { value: option[key] }\n })\n }\n\n setColor(color: [number, number, number]) {\n this.setUniforms({ fogcolor: color })\n }\n\n setAlpha(alpha: number) {\n this.setUniforms({ alpha })\n }\n\n setSpeed(speed: number) {\n this.setUniforms({ speed })\n }\n\n update() {\n const { speed = 0.01 } = this.option\n const { iTime } = this.uniforms\n iTime.value += speed\n }\n}\n\nexport default Fog2DMesh"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAASA,IAAI,EAAEC,aAAa,EAAEC,cAAc,QAAa,eAAe;AACxE,OAAOC,SAAS;AAGhB,IAAMC,cAA0B,GAAG;EACjCC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACzBC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;AACT,CAAC;AAAA,IAEKC,SAAS;EAAA;EAAA;EAIb,mBAAYC,GAAgB,EAAE;IAAA;IAAA;IAC5B;IAAO,yDAJYL,cAAc;IAAA;IAKjC,MAAKM,QAAQ,GAAG,IAAIT,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;IAEzCU,MAAM,CAACC,MAAM,CAAC,MAAKC,MAAM,EAAEJ,GAAG,CAAC;IAC/B,MAAKK,WAAW,iCAAM,MAAKD,MAAM;MAAEE,KAAK,EAAE;IAAC,GAAG;IAE9C,MAAKC,QAAQ,GAAG,IAAId,cAAc,CAAC;MACjCe,QAAQ,EAAE,MAAKA,QAAQ;MACvBC,YAAY,EAAEf,SAAS,CAACe,YAAY;MACpCC,cAAc,EAAEhB,SAAS,CAACgB,cAAc;MACxCC,IAAI,EAAE,CAAC;MACPC,WAAW,EAAE,IAAI;MACjBC,UAAU,EAAE;IACd,CAAC,CAAC;IACF,MAAKC,WAAW,GAAG,CAAC;IAAA;EACtB;EAAC;IAAA;IAAA,OAED,qBAAoBV,MAAkB,EAAE;MAAA;MACtC,IAAI,CAAC,IAAI,CAACI,QAAQ,EAChB,IAAI,CAACA,QAAQ,GAAG,CAAC,CAAC;MAEpBN,MAAM,CAACC,MAAM,CAAC,IAAI,CAACC,MAAM,EAAEA,MAAM,CAAC;MAElCF,MAAM,CAACa,IAAI,CAACX,MAAM,CAAC,CAACY,OAAO,CAAC,UAACC,GAAW,EAAK;QAC3C,MAAI,CAACT,QAAQ,CAACS,GAAG,CAAC,GAAG;UAAEC,KAAK,EAAEd,MAAM,CAACa,GAAG;QAAE,CAAC;MAC7C,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,kBAASE,KAA+B,EAAE;MACxC,IAAI,CAACd,WAAW,CAAC;QAAET,QAAQ,EAAEuB;MAAM,CAAC,CAAC;IACvC;EAAC;IAAA;IAAA,OAED,kBAAStB,KAAa,EAAE;MACtB,IAAI,CAACQ,WAAW,CAAC;QAAER,KAAK,EAALA;MAAM,CAAC,CAAC;IAC7B;EAAC;IAAA;IAAA,OAED,kBAASC,KAAa,EAAE;MACtB,IAAI,CAACO,WAAW,CAAC;QAAEP,KAAK,EAALA;MAAM,CAAC,CAAC;IAC7B;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,yBAAyB,IAAI,CAACM,MAAM,CAA5BN,KAAK;QAALA,KAAK,mCAAG,IAAI;MACpB,IAAQQ,KAAK,GAAK,IAAI,CAACE,QAAQ,CAAvBF,KAAK;MACbA,KAAK,CAACY,KAAK,IAAIpB,KAAK;IACtB;EAAC;EAAA;AAAA,EAjDqBP,IAAI;AAoD5B,eAAeQ,SAAS"}
@@ -0,0 +1,7 @@
1
+ import type { Group } from '@anov/3d-core';
2
+ import { Mesh } from '@anov/3d-core';
3
+ declare class SkyMesh extends Mesh {
4
+ mesh: Group;
5
+ constructor(mesh: Group);
6
+ }
7
+ export default SkyMesh;
@@ -1,7 +1,7 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
2
  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); } }
4
3
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
5
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
6
6
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
7
7
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
@@ -12,66 +12,30 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12
12
  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; }
13
13
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
14
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
15
- import { Mesh, PlaneGeometry, ShaderMaterial, use } from '@anov/3d-core';
16
- import { frag as fragmentShader, vert as vertexShader } from "./glsl/fog";
17
- var fog2dShaderPass = {
18
- uniforms: {
19
- iTime: {
20
- value: 0
21
- },
22
- fogcolor: {
23
- value: [0.9, 0.9, 0.9]
24
- },
25
- alpha: {
26
- value: 0.5
27
- }
28
- },
29
- vertexShader: vertexShader,
30
- fragmentShader: fragmentShader
31
- };
32
- var Fog2DMesh = /*#__PURE__*/function (_Mesh) {
33
- _inherits(Fog2DMesh, _Mesh);
34
- var _super = _createSuper(Fog2DMesh);
35
- function Fog2DMesh(ops) {
15
+ import { Mesh, ShaderMaterial } from '@anov/3d-core';
16
+ import skyShader from "../shaders/sky";
17
+ var SkyMesh = /*#__PURE__*/function (_Mesh) {
18
+ _inherits(SkyMesh, _Mesh);
19
+ var _super = _createSuper(SkyMesh);
20
+ function SkyMesh(mesh) {
36
21
  var _this;
37
- _classCallCheck(this, Fog2DMesh);
22
+ _classCallCheck(this, SkyMesh);
38
23
  _this = _super.call(this);
39
- _defineProperty(_assertThisInitialized(_this), "speed", 0.01);
40
- _this.geometry = new PlaneGeometry(10, 10);
41
- fog2dShaderPass.uniforms.fogcolor.value = (ops === null || ops === void 0 ? void 0 : ops.color) || [0.9, 0.9, 0.9];
42
- fog2dShaderPass.uniforms.alpha.value = (ops === null || ops === void 0 ? void 0 : ops.alpha) || 0.5;
43
- _this.speed = (ops === null || ops === void 0 ? void 0 : ops.speed) || 0.01;
44
- _this.material = new ShaderMaterial({
45
- uniforms: fog2dShaderPass.uniforms,
46
- vertexShader: fog2dShaderPass.vertexShader,
47
- fragmentShader: fog2dShaderPass.fragmentShader,
24
+ _defineProperty(_assertThisInitialized(_this), "mesh", void 0);
25
+ _this.mesh = mesh;
26
+ // @ts-ignore
27
+ _this.mesh.children[0].material = new ShaderMaterial({
28
+ vertexShader: skyShader.vertexShader,
29
+ fragmentShader: skyShader.fragmentShader,
48
30
  side: 2,
49
31
  transparent: true,
50
32
  depthWrite: false
51
33
  });
52
- _this.renderOrder = 1;
53
- use.useframe(function () {
54
- fog2dShaderPass.uniforms.iTime.value += _this.speed;
55
- });
34
+ _this.mesh.scale.set(1000, 1000, 1000);
35
+ _this.mesh.renderOrder = -1;
56
36
  return _this;
57
37
  }
58
- _createClass(Fog2DMesh, [{
59
- key: "setColor",
60
- value: function setColor(color) {
61
- fog2dShaderPass.uniforms.fogcolor.value = color;
62
- }
63
- }, {
64
- key: "setAlpha",
65
- value: function setAlpha(alpha) {
66
- fog2dShaderPass.uniforms.alpha.value = alpha;
67
- }
68
- }, {
69
- key: "setSpeed",
70
- value: function setSpeed(speed) {
71
- this.speed = speed;
72
- }
73
- }]);
74
- return Fog2DMesh;
38
+ return _createClass(SkyMesh);
75
39
  }(Mesh);
76
- export default Fog2DMesh;
77
- //# sourceMappingURL=fog2DMesh.js.map
40
+ export default SkyMesh;
41
+ //# sourceMappingURL=SkyMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Mesh","ShaderMaterial","skyShader","SkyMesh","mesh","children","material","vertexShader","fragmentShader","side","transparent","depthWrite","scale","set","renderOrder"],"sources":["../../../src/weather/objects/SkyMesh.ts"],"sourcesContent":["import type { Group } from '@anov/3d-core'\nimport { Mesh, ShaderMaterial } from '@anov/3d-core'\nimport skyShader from '../shaders/sky'\n\nclass SkyMesh extends Mesh {\n mesh!: Group\n\n constructor(mesh: Group) {\n super()\n this.mesh = mesh\n // @ts-ignore\n this.mesh.children[0].material = new ShaderMaterial({\n vertexShader: skyShader.vertexShader,\n fragmentShader: skyShader.fragmentShader,\n side: 2,\n transparent: true,\n depthWrite: false,\n })\n this.mesh.scale.set(1000, 1000, 1000)\n this.mesh.renderOrder = -1\n }\n}\n\nexport default SkyMesh"],"mappings":";;;;;;;;;;;;;;AACA,SAASA,IAAI,EAAEC,cAAc,QAAQ,eAAe;AACpD,OAAOC,SAAS;AAAsB,IAEhCC,OAAO;EAAA;EAAA;EAGX,iBAAYC,IAAW,EAAE;IAAA;IAAA;IACvB;IAAO;IACP,MAAKA,IAAI,GAAGA,IAAI;IAChB;IACA,MAAKA,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC,CAACC,QAAQ,GAAG,IAAIL,cAAc,CAAC;MAClDM,YAAY,EAAEL,SAAS,CAACK,YAAY;MACpCC,cAAc,EAAEN,SAAS,CAACM,cAAc;MACxCC,IAAI,EAAE,CAAC;MACPC,WAAW,EAAE,IAAI;MACjBC,UAAU,EAAE;IACd,CAAC,CAAC;IACF,MAAKP,IAAI,CAACQ,KAAK,CAACC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACrC,MAAKT,IAAI,CAACU,WAAW,GAAG,CAAC,CAAC;IAAA;EAC5B;EAAC;AAAA,EAhBmBd,IAAI;AAmB1B,eAAeG,OAAO"}
@@ -0,0 +1,17 @@
1
+ import { Points } from '@anov/3d-core';
2
+ import type { ISnowOption } from '../utils/constant';
3
+ declare class SnowMesh extends Points {
4
+ option: ISnowOption;
5
+ constructor(opt?: ISnowOption);
6
+ private getPointGeometry;
7
+ setIcon(icon: string): void;
8
+ setSize(size: number): void;
9
+ setCount(count: number): void;
10
+ setRange(range: number): void;
11
+ setSpeed(speed: number | [number, number, number]): void;
12
+ setEffect(ops: ISnowOption): void;
13
+ stop(): void;
14
+ continue(): void;
15
+ update(): void;
16
+ }
17
+ export default SnowMesh;
@@ -0,0 +1,163 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
10
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
12
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
15
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
16
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
17
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
18
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
20
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
21
+ import { BufferGeometry, Float32BufferAttribute, Points, PointsMaterial, TextureLoader } from '@anov/3d-core';
22
+ import { Snow_Icon } from "../utils/constant";
23
+ var _defaultOption = {
24
+ range: 1000,
25
+ count: 1000,
26
+ opacity: 0.6,
27
+ icon: Snow_Icon,
28
+ size: 10,
29
+ speed: [0, 2, 0]
30
+ };
31
+ var SnowMesh = /*#__PURE__*/function (_Points) {
32
+ _inherits(SnowMesh, _Points);
33
+ var _super = _createSuper(SnowMesh);
34
+ function SnowMesh() {
35
+ var _this;
36
+ var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37
+ _classCallCheck(this, SnowMesh);
38
+ _this = _super.call(this);
39
+ _defineProperty(_assertThisInitialized(_this), "option", _defaultOption);
40
+ Object.assign(_this.option, opt);
41
+ var _this$option = _this.option,
42
+ range = _this$option.range,
43
+ count = _this$option.count,
44
+ size = _this$option.size,
45
+ icon = _this$option.icon,
46
+ opacity = _this$option.opacity;
47
+ // Create the geometry and material for the snow particles
48
+ var material = new PointsMaterial({
49
+ size: size,
50
+ map: new TextureLoader().load(icon),
51
+ transparent: true,
52
+ opacity: opacity,
53
+ depthTest: false
54
+ });
55
+ _this.geometry = _this.getPointGeometry(count, range);
56
+ _this.material = material;
57
+ _this.renderOrder = 1;
58
+ return _this;
59
+ }
60
+ _createClass(SnowMesh, [{
61
+ key: "getPointGeometry",
62
+ value: function getPointGeometry(count, range) {
63
+ var bufferGeometry = new BufferGeometry();
64
+ var vertices = [];
65
+ for (var i = 0; i < count; i++) {
66
+ vertices.push(Math.random() * range - range / 2, Math.random() * range, Math.random() * range - range / 2);
67
+ }
68
+ bufferGeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));
69
+ return bufferGeometry;
70
+ }
71
+ }, {
72
+ key: "setIcon",
73
+ value: function setIcon(icon) {
74
+ this.option.icon = icon;
75
+ this.material.map = new TextureLoader().load(icon);
76
+ }
77
+ }, {
78
+ key: "setSize",
79
+ value: function setSize(size) {
80
+ this.option.size = size;
81
+ this.material.size = size;
82
+ }
83
+ }, {
84
+ key: "setCount",
85
+ value: function setCount(count) {
86
+ this.option.count = count;
87
+ this.geometry = this.getPointGeometry(count, this.option.range);
88
+ }
89
+ }, {
90
+ key: "setRange",
91
+ value: function setRange(range) {
92
+ this.option.range = range;
93
+ this.geometry = this.getPointGeometry(this.option.count, range);
94
+ }
95
+ }, {
96
+ key: "setSpeed",
97
+ value: function setSpeed(speed) {
98
+ if (typeof speed === 'number') this.option.speed = [0, speed, 0];else this.option.speed = speed;
99
+ }
100
+ }, {
101
+ key: "setEffect",
102
+ value: function setEffect(ops) {
103
+ var _this2 = this;
104
+ var icon = ops.icon,
105
+ size = ops.size,
106
+ count = ops.count,
107
+ speed = ops.speed,
108
+ range = ops.range;
109
+ Object.keys(ops).forEach(function (key) {
110
+ switch (key) {
111
+ case 'icon':
112
+ _this2.setIcon(icon);
113
+ break;
114
+ case 'size':
115
+ _this2.setSize(size);
116
+ break;
117
+ case 'range':
118
+ _this2.setRange(range);
119
+ break;
120
+ case 'count':
121
+ _this2.setCount(count);
122
+ break;
123
+ case 'speed':
124
+ _this2.setSpeed(speed);
125
+ break;
126
+ }
127
+ });
128
+ }
129
+ }, {
130
+ key: "stop",
131
+ value: function stop() {
132
+ this.visible = false;
133
+ }
134
+ }, {
135
+ key: "continue",
136
+ value: function _continue() {
137
+ this.visible = true;
138
+ }
139
+ }, {
140
+ key: "update",
141
+ value: function update() {
142
+ var positions = this.geometry.attributes.position.array;
143
+ var _this$option2 = this.option,
144
+ speed = _this$option2.speed,
145
+ range = _this$option2.range;
146
+ var _ref = speed,
147
+ _ref2 = _slicedToArray(_ref, 3),
148
+ x = _ref2[0],
149
+ y = _ref2[1],
150
+ z = _ref2[2];
151
+ for (var i = 0; i < positions.length; i += 3) {
152
+ positions[i] += x;
153
+ positions[i + 1] -= y;
154
+ positions[i + 2] += z;
155
+ if (positions[i + 1] <= 0) positions[i + 1] = range / 2;
156
+ }
157
+ this.geometry.attributes.position.needsUpdate = true;
158
+ }
159
+ }]);
160
+ return SnowMesh;
161
+ }(Points);
162
+ export default SnowMesh;
163
+ //# sourceMappingURL=SnowMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BufferGeometry","Float32BufferAttribute","Points","PointsMaterial","TextureLoader","Snow_Icon","_defaultOption","range","count","opacity","icon","size","speed","SnowMesh","opt","Object","assign","option","material","map","load","transparent","depthTest","geometry","getPointGeometry","renderOrder","bufferGeometry","vertices","i","push","Math","random","setAttribute","ops","keys","forEach","key","setIcon","setSize","setRange","setCount","setSpeed","visible","positions","attributes","position","array","x","y","z","length","needsUpdate"],"sources":["../../../src/weather/objects/SnowMesh.ts"],"sourcesContent":["import { BufferGeometry, Float32BufferAttribute, Points, PointsMaterial, TextureLoader, Vector3, use } from '@anov/3d-core'\nimport type { ISnowOption } from '../utils/constant'\nimport { Snow_Icon } from '../utils/constant'\n\nconst _defaultOption: ISnowOption = {\n range: 1000,\n count: 1000,\n opacity: 0.6,\n icon: Snow_Icon,\n size: 10,\n speed: [0, 2, 0],\n}\n\nclass SnowMesh extends Points {\n option: ISnowOption = _defaultOption\n\n constructor(opt: ISnowOption = {}) {\n super()\n Object.assign(this.option, opt)\n\n const { range, count, size, icon, opacity } = this.option\n // Create the geometry and material for the snow particles\n const material = new PointsMaterial({\n size,\n map: new TextureLoader().load(icon!),\n transparent: true,\n opacity,\n depthTest: false,\n })\n this.geometry = this.getPointGeometry(count!, range!)\n this.material = material\n\n this.renderOrder = 1\n }\n\n private getPointGeometry(count: number, range: number) {\n const bufferGeometry = new BufferGeometry()\n const vertices = []\n\n for (let i = 0; i < count!; i++) {\n vertices.push(\n Math.random() * range! - range! / 2,\n Math.random() * range!,\n Math.random() * range! - range! / 2,\n )\n }\n bufferGeometry.setAttribute('position', new Float32BufferAttribute(vertices, 3))\n return bufferGeometry\n }\n\n setIcon(icon: string) {\n this.option.icon = icon;\n (this.material as PointsMaterial).map = new TextureLoader().load(icon)\n }\n\n setSize(size: number) {\n this.option.size = size;\n (this.material as PointsMaterial).size = size\n }\n\n setCount(count: number) {\n this.option.count = count\n this.geometry = this.getPointGeometry(count!, this.option.range!)\n }\n\n setRange(range: number) {\n this.option.range = range\n this.geometry = this.getPointGeometry(this.option.count!, range!)\n }\n\n setSpeed(speed: number | [number, number, number]) {\n if (typeof speed === 'number')\n this.option.speed = [0, speed, 0]\n else\n this.option.speed = speed\n }\n\n public setEffect(ops: ISnowOption) {\n const { icon, size, count, speed, range } = ops\n Object.keys(ops).forEach((key: string) => {\n switch (key) {\n case 'icon':\n this.setIcon(icon!)\n break\n case 'size':\n this.setSize(size!)\n break\n case 'range':\n this.setRange(range!)\n break\n case 'count':\n this.setCount(count!)\n break\n case 'speed':\n this.setSpeed(speed!)\n break\n }\n })\n }\n\n stop() {\n this.visible = false\n }\n\n continue() {\n this.visible = true\n }\n\n update() {\n const positions = this.geometry.attributes.position.array\n\n const { speed, range } = this.option\n const [x, y, z] = speed!\n\n for (let i = 0; i < positions.length; i += 3) {\n positions[i] += x\n positions[i + 1] -= y\n positions[i + 2] += z\n\n if (positions[i + 1] <= 0)\n positions[i + 1] = range! / 2\n }\n\n this.geometry.attributes.position.needsUpdate = true\n }\n}\n\nexport default SnowMesh"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ declare const CloudShader: {
2
+ uniforms: {
3
+ texture1: {
4
+ value: null;
5
+ };
6
+ texture2: {
7
+ value: null;
8
+ };
9
+ iTime: {
10
+ value: number;
11
+ };
12
+ cloudDensity: {
13
+ value: number;
14
+ };
15
+ cloudDensity2: {
16
+ value: number;
17
+ };
18
+ cloudalpha: {
19
+ value: number;
20
+ };
21
+ cloudscale: {
22
+ value: number;
23
+ };
24
+ speed: {
25
+ value: number;
26
+ };
27
+ color: {
28
+ value: number[];
29
+ };
30
+ flash: {
31
+ value: number;
32
+ };
33
+ };
34
+ vertexShader: string;
35
+ fragmentShader: string;
36
+ };
37
+ export default CloudShader;