@anov/3d 0.0.4-alpha24 → 0.0.4-alpha25

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 (69) hide show
  1. package/dist/applicationApi.js +1 -1
  2. package/dist/applicationApi.js.map +1 -1
  3. package/dist/factory/3d.d.ts +51 -0
  4. package/dist/factory/3d.js +203 -0
  5. package/dist/factory/3d.js.map +1 -0
  6. package/dist/factory/globalData.d.ts +1 -0
  7. package/dist/factory/globalData.js +2 -0
  8. package/dist/factory/globalData.js.map +1 -0
  9. package/dist/factory/regionData.d.ts +26 -0
  10. package/dist/factory/regionData.js +130 -0
  11. package/dist/factory/regionData.js.map +1 -0
  12. package/dist/factory/unit/areaBoundingBox.d.ts +7 -0
  13. package/dist/factory/unit/areaBoundingBox.js +28 -0
  14. package/dist/factory/unit/areaBoundingBox.js.map +1 -0
  15. package/dist/factory/unit/circle.d.ts +15 -0
  16. package/dist/factory/unit/circle.js +88 -0
  17. package/dist/factory/unit/circle.js.map +1 -0
  18. package/dist/factory/unit/cylinder.d.ts +18 -0
  19. package/dist/factory/unit/cylinder.js +125 -0
  20. package/dist/factory/unit/cylinder.js.map +1 -0
  21. package/dist/factory/unit/glsl/wall/fragmentShader.glsl +30 -0
  22. package/dist/factory/unit/glsl/wall/vertexShader.glsl +6 -0
  23. package/dist/factory/unit/index.d.ts +2 -0
  24. package/dist/factory/unit/index.js +61 -0
  25. package/dist/factory/unit/index.js.map +1 -0
  26. package/dist/factory/unit/line.d.ts +13 -0
  27. package/dist/factory/unit/line.js +96 -0
  28. package/dist/factory/unit/line.js.map +1 -0
  29. package/dist/factory/unit/poi.d.ts +15 -0
  30. package/dist/factory/unit/poi.js +140 -0
  31. package/dist/factory/unit/poi.js.map +1 -0
  32. package/dist/factory/unit/point.d.ts +10 -0
  33. package/dist/factory/unit/point.js +71 -0
  34. package/dist/factory/unit/point.js.map +1 -0
  35. package/dist/factory/unit/wall.d.ts +14 -0
  36. package/dist/factory/unit/wall.js +113 -0
  37. package/dist/factory/unit/wall.js.map +1 -0
  38. package/dist/factory/utils/areaBoundingBox.d.ts +14 -0
  39. package/dist/factory/utils/areaBoundingBox.js +39 -0
  40. package/dist/factory/utils/areaBoundingBox.js.map +1 -0
  41. package/dist/factory/utils/base64.d.ts +1 -0
  42. package/dist/factory/utils/base64.js +2 -0
  43. package/dist/factory/utils/base64.js.map +1 -0
  44. package/dist/factory/utils/finirMaterial.d.ts +3 -0
  45. package/dist/factory/utils/finirMaterial.js +39 -0
  46. package/dist/factory/utils/finirMaterial.js.map +1 -0
  47. package/dist/factory/utils/fontMesh.d.ts +10 -0
  48. package/dist/factory/utils/fontMesh.js +48 -0
  49. package/dist/factory/utils/fontMesh.js.map +1 -0
  50. package/dist/factory/utils/index.d.ts +2 -0
  51. package/dist/factory/utils/index.js +24 -0
  52. package/dist/factory/utils/index.js.map +1 -0
  53. package/dist/factory/utils/switchMaterial.d.ts +17 -0
  54. package/dist/factory/utils/switchMaterial.js +108 -0
  55. package/dist/factory/utils/switchMaterial.js.map +1 -0
  56. package/dist/module/environment/index.d.ts +4 -1
  57. package/dist/module/environment/index.js +7 -2
  58. package/dist/module/environment/index.js.map +1 -1
  59. package/dist/module/environment/time/index.d.ts +3 -1
  60. package/dist/module/environment/time/index.js.map +1 -1
  61. package/dist/module/model/index.js +6 -0
  62. package/dist/module/model/index.js.map +1 -1
  63. package/dist/module/scene/index.d.ts +7 -3
  64. package/dist/module/scene/index.js +66 -36
  65. package/dist/module/scene/index.js.map +1 -1
  66. package/dist/sdkEntry.d.ts +5 -2
  67. package/dist/sdkEntry.js +85 -65
  68. package/dist/sdkEntry.js.map +1 -1
  69. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Color","MeshStandardMaterial","ShaderMaterial","Vector3","finirMaterialV2","uniforms","edgeColor","value","edgeThickness","reflectionStrength","vertexShader","fragmentShader","transparent","depthWrite","finirMaterialV1","opacity","onBeforeCompile","shader","rimColor","rimPower","replace","join"],"sources":["../../../src/factory/utils/finirMaterial.ts"],"sourcesContent":["import { Color, MeshStandardMaterial, ShaderMaterial, Vector3 } from '@anov/3d-core'\n\nexport const finirMaterialV2 = new ShaderMaterial({\n uniforms: {\n // 在这里定义uniform变量,用于控制透明度、边缘和反光效果\n edgeColor: { value: new Vector3(1.0, 0.0, 0.0) }, // 边缘颜色\n edgeThickness: { value: 0.03 }, // 边缘厚度0.05\n reflectionStrength: { value: 100 }, // 反光强度0.9\n },\n vertexShader: `\n varying vec3 vNormal;\n\n void main() {\n vNormal = normal;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: `\n varying vec3 vNormal;\n uniform vec3 edgeColor;\n uniform float edgeThickness;\n uniform float reflectionStrength;\n\n void main() {\n // 计算透明度\n float alpha = 0.9; // 透明度的基础值\n\n // 计算边缘效果\n float edge = fwidth(length(vNormal));\n alpha *= smoothstep(0.0, edgeThickness, edge);\n\n // 计算反光效果\n vec3 reflection = reflect(normalize(-vNormal), vec3(0.455, 0.749, 0.890));\n float reflectionIntensity = max(dot(reflection, normalize(-vNormal)), 0.0);\n vec3 reflectionColor = reflectionStrength * reflectionIntensity * edgeColor;\n\n // 最终颜色设置为\"#74bfe3\"\n vec3 finalColor = vec3(0.8, 0.25, 0.145); // \"#74bfe3\"的RGB值\n finalColor += reflectionColor; // 添加反光效果\n\n // 设置透明度\n gl_FragColor = vec4(finalColor, alpha);\n }\n `,\n transparent: true,\n depthWrite: false,\n})\n\nexport const finirMaterialV1 = new MeshStandardMaterial({ /// /这个没有沟边粗细\n opacity: 0.0,\n transparent: true,\n depthWrite: false,\n})\n\nfinirMaterialV1.onBeforeCompile = (shader) => {\n shader.uniforms.rimColor = { value: new Color('#99C9E3') }\n shader.uniforms.rimPower = { value: 0.9 }\n shader.fragmentShader = shader.fragmentShader.replace(\n 'void main() {',\n [\n 'uniform vec3 rimColor;',\n ' uniform float rimPower;',\n 'void main() {',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor;\n vec3 fresnelall =rimPower*dotNV*rimColor;\n gl_FragColor.a +=(fresnelall.r+fresnelall.g+fresnelall.b)/3.;`,\n\n )\n}"],"mappings":"AAAA,SAASA,KAAK,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,OAAO,QAAQ,eAAe;AAEpF,OAAO,IAAMC,eAAe,GAAG,IAAIF,cAAc,CAAC;EAChDG,QAAQ,EAAE;IACR;IACAC,SAAS,EAAE;MAAEC,KAAK,EAAE,IAAIJ,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;IAAE,CAAC;IAAE;IAClDK,aAAa,EAAE;MAAED,KAAK,EAAE;IAAK,CAAC;IAAE;IAChCE,kBAAkB,EAAE;MAAEF,KAAK,EAAE;IAAI,CAAC,CAAE;EACtC,CAAC;;EACDG,YAAY,qRAOK;EACjBC,cAAc,g6CA0BG;EACjBC,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,OAAO,IAAMC,eAAe,GAAG,IAAIb,oBAAoB,CAAC;EAAE;EACxDc,OAAO,EAAE,GAAG;EACZH,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEFC,eAAe,CAACE,eAAe,GAAG,UAACC,MAAM,EAAK;EAC5CA,MAAM,CAACZ,QAAQ,CAACa,QAAQ,GAAG;IAAEX,KAAK,EAAE,IAAIP,KAAK,CAAC,SAAS;EAAE,CAAC;EAC1DiB,MAAM,CAACZ,QAAQ,CAACc,QAAQ,GAAG;IAAEZ,KAAK,EAAE;EAAI,CAAC;EACzCU,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,eAAe,EACf,CACE,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,CAChB,CAACC,IAAI,CAAC,IAAI,CAAC,CACb;EACDJ,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,+BAA+B,0RAOhC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Vector3 } from '@anov/3d-core';
2
+ import { Color, Mesh } from '@anov/3d-core';
3
+ declare type FontMeshOption = {
4
+ position: Vector3;
5
+ color?: Color;
6
+ size?: number;
7
+ rotate?: number;
8
+ };
9
+ declare const createFontMesh: (text: string, options: FontMeshOption) => Promise<Mesh>;
10
+ export default createFontMesh;
@@ -0,0 +1,48 @@
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
+ 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
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ 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; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ 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); }
8
+ import { Color, Mesh, MeshBasicMaterial, lib } from '@anov/3d-core';
9
+ var FontLoader = lib.FontLoader,
10
+ TextGeometry = lib.TextGeometry;
11
+ var Font = /*#__PURE__*/function () {
12
+ function Font() {
13
+ _classCallCheck(this, Font);
14
+ _defineProperty(this, "font", void 0);
15
+ this.font = null;
16
+ }
17
+ _createClass(Font, [{
18
+ key: "createText",
19
+ value: function createText(text, options) {
20
+ var _this = this;
21
+ return new Promise(function (res) {
22
+ var loader = new FontLoader();
23
+ loader.load('./font.json', function (font) {
24
+ var _options$size;
25
+ _this.font = font;
26
+ var geometry = new TextGeometry(text, {
27
+ font: _this.font,
28
+ size: (_options$size = options.size) !== null && _options$size !== void 0 ? _options$size : 10,
29
+ height: 0.1
30
+ });
31
+ var mesh = new Mesh(geometry, new MeshBasicMaterial({
32
+ depthTest: true,
33
+ color: new Color('#000')
34
+ }));
35
+ mesh.position.copy(options.position);
36
+ res(mesh);
37
+ });
38
+ });
39
+ }
40
+ }]);
41
+ return Font;
42
+ }();
43
+ var font = new Font();
44
+ var createFontMesh = function createFontMesh(text, options) {
45
+ return font.createText(text, options);
46
+ };
47
+ export default createFontMesh;
48
+ //# sourceMappingURL=fontMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Color","Mesh","MeshBasicMaterial","lib","FontLoader","TextGeometry","Font","font","text","options","Promise","res","loader","load","geometry","size","height","mesh","depthTest","color","position","copy","createFontMesh","createText"],"sources":["../../../src/factory/utils/fontMesh.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport { Color, Mesh, MeshBasicMaterial, lib } from '@anov/3d-core'\n\nconst { FontLoader, TextGeometry } = lib\n\ntype FontMeshOption = {\n position: Vector3\n color?: Color\n size?: number\n rotate?: number\n}\n\nclass Font {\n font: lib.Font | null\n\n constructor() {\n this.font = null\n }\n\n createText(text: string, options: FontMeshOption) {\n return new Promise((res) => {\n const loader = new FontLoader()\n loader.load('./font.json', (font) => {\n this.font = font\n\n const geometry = new TextGeometry(text, {\n font: this.font,\n size: options.size ?? 10,\n height: 0.1,\n })\n\n const mesh = new Mesh(geometry, new MeshBasicMaterial({\n depthTest: true,\n color: new Color('#000'),\n }))\n\n mesh.position.copy(options.position)\n res(mesh)\n })\n })\n }\n}\n\nconst font = new Font()\n\nconst createFontMesh = (text: string, options: FontMeshOption) => {\n return font.createText(text, options) as Promise<Mesh>\n}\n\nexport default createFontMesh\n"],"mappings":";;;;;;;AACA,SAASA,KAAK,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,GAAG,QAAQ,eAAe;AAEnE,IAAQC,UAAU,GAAmBD,GAAG,CAAhCC,UAAU;EAAEC,YAAY,GAAKF,GAAG,CAApBE,YAAY;AAAQ,IASlCC,IAAI;EAGR,gBAAc;IAAA;IAAA;IACZ,IAAI,CAACC,IAAI,GAAG,IAAI;EAClB;EAAC;IAAA;IAAA,OAED,oBAAWC,IAAY,EAAEC,OAAuB,EAAE;MAAA;MAChD,OAAO,IAAIC,OAAO,CAAC,UAACC,GAAG,EAAK;QAC1B,IAAMC,MAAM,GAAG,IAAIR,UAAU,EAAE;QAC/BQ,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE,UAACN,IAAI,EAAK;UAAA;UACnC,KAAI,CAACA,IAAI,GAAGA,IAAI;UAEhB,IAAMO,QAAQ,GAAG,IAAIT,YAAY,CAACG,IAAI,EAAE;YACtCD,IAAI,EAAE,KAAI,CAACA,IAAI;YACfQ,IAAI,mBAAEN,OAAO,CAACM,IAAI,yDAAI,EAAE;YACxBC,MAAM,EAAE;UACV,CAAC,CAAC;UAEF,IAAMC,IAAI,GAAG,IAAIhB,IAAI,CAACa,QAAQ,EAAE,IAAIZ,iBAAiB,CAAC;YACpDgB,SAAS,EAAE,IAAI;YACfC,KAAK,EAAE,IAAInB,KAAK,CAAC,MAAM;UACzB,CAAC,CAAC,CAAC;UAEHiB,IAAI,CAACG,QAAQ,CAACC,IAAI,CAACZ,OAAO,CAACW,QAAQ,CAAC;UACpCT,GAAG,CAACM,IAAI,CAAC;QACX,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAGH,IAAMV,IAAI,GAAG,IAAID,IAAI,EAAE;AAEvB,IAAMgB,cAAc,GAAG,SAAjBA,cAAc,CAAId,IAAY,EAAEC,OAAuB,EAAK;EAChE,OAAOF,IAAI,CAACgB,UAAU,CAACf,IAAI,EAAEC,OAAO,CAAC;AACvC,CAAC;AAED,eAAea,cAAc"}
@@ -0,0 +1,2 @@
1
+ export declare const debounce: (fn: Function, delay?: number) => (this: any, ...args: any[]) => void;
2
+ export declare const lookAtOnYAxis: (mesh: any, targetPosition: any) => void;
@@ -0,0 +1,24 @@
1
+ import { Vector3 } from '@anov/3d-core';
2
+ export var debounce = function debounce(fn) {
3
+ var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
4
+ var timer;
5
+ return function () {
6
+ var _this = this;
7
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
8
+ args[_key] = arguments[_key];
9
+ }
10
+ clearTimeout(timer);
11
+ timer = setTimeout(function () {
12
+ fn.apply(_this, args);
13
+ }, delay);
14
+ };
15
+ };
16
+ export var lookAtOnYAxis = function lookAtOnYAxis(mesh, targetPosition) {
17
+ var direction = new Vector3().subVectors(targetPosition, mesh.position);
18
+ direction.y = 0;
19
+ direction.normalize();
20
+ var rotationY = Math.atan2(-direction.z, direction.x);
21
+ rotationY -= Math.PI / 2;
22
+ mesh.rotation.y = rotationY + Math.PI;
23
+ };
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Vector3","debounce","fn","delay","timer","args","clearTimeout","setTimeout","apply","lookAtOnYAxis","mesh","targetPosition","direction","subVectors","position","y","normalize","rotationY","Math","atan2","z","x","PI","rotation"],"sources":["../../../src/factory/utils/index.ts"],"sourcesContent":["import { Vector3 } from '@anov/3d-core'\n\nexport const debounce = (fn: Function, delay = 20) => {\n let timer: number\n\n return function (this: any, ...args: any[]) {\n clearTimeout(timer)\n\n timer = setTimeout(() => {\n fn.apply(this, args)\n }, delay) as unknown as number\n }\n}\n\nexport const lookAtOnYAxis = (mesh, targetPosition) => {\n const direction = new Vector3().subVectors(targetPosition, mesh.position)\n direction.y = 0\n direction.normalize()\n\n let rotationY = Math.atan2(-direction.z, direction.x)\n\n rotationY -= Math.PI / 2\n\n mesh.rotation.y = rotationY + Math.PI\n}"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AAEvC,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,CAAIC,EAAY,EAAiB;EAAA,IAAfC,KAAK,uEAAG,EAAE;EAC/C,IAAIC,KAAa;EAEjB,OAAO,YAAqC;IAAA;IAAA,kCAAbC,IAAI;MAAJA,IAAI;IAAA;IACjCC,YAAY,CAACF,KAAK,CAAC;IAEnBA,KAAK,GAAGG,UAAU,CAAC,YAAM;MACvBL,EAAE,CAACM,KAAK,CAAC,KAAI,EAAEH,IAAI,CAAC;IACtB,CAAC,EAAEF,KAAK,CAAsB;EAChC,CAAC;AACH,CAAC;AAED,OAAO,IAAMM,aAAa,GAAG,SAAhBA,aAAa,CAAIC,IAAI,EAAEC,cAAc,EAAK;EACrD,IAAMC,SAAS,GAAG,IAAIZ,OAAO,EAAE,CAACa,UAAU,CAACF,cAAc,EAAED,IAAI,CAACI,QAAQ,CAAC;EACzEF,SAAS,CAACG,CAAC,GAAG,CAAC;EACfH,SAAS,CAACI,SAAS,EAAE;EAErB,IAAIC,SAAS,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACP,SAAS,CAACQ,CAAC,EAAER,SAAS,CAACS,CAAC,CAAC;EAErDJ,SAAS,IAAIC,IAAI,CAACI,EAAE,GAAG,CAAC;EAExBZ,IAAI,CAACa,QAAQ,CAACR,CAAC,GAAGE,SAAS,GAAGC,IAAI,CAACI,EAAE;AACvC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Material, Object3D } from '@anov/3d-core';
2
+ declare type SwitchMaterialOptions = {
3
+ speed?: number;
4
+ start?: number;
5
+ end?: number;
6
+ callback?: () => void;
7
+ };
8
+ /**
9
+ * todo 代码合并
10
+ * @param mesh
11
+ * @param material
12
+ * @param options
13
+ */
14
+ declare const switchMaterialV2: (mesh: Object3D<import("@anov/3d-core").Event> & {
15
+ material: Material;
16
+ }, material: Material, options?: SwitchMaterialOptions) => void;
17
+ export default switchMaterialV2;
@@ -0,0 +1,108 @@
1
+ import { Vector3, use } from '@anov/3d-core';
2
+ var switchMaterial = function switchMaterial(mesh, material, options) {
3
+ var lastMaterial = mesh.material.clone();
4
+ var currentMaterial = mesh.material.clone();
5
+ var _ref = options || {},
6
+ _ref$speed = _ref.speed,
7
+ speed = _ref$speed === void 0 ? 10 : _ref$speed,
8
+ _ref$start = _ref.start,
9
+ start = _ref$start === void 0 ? 0 : _ref$start,
10
+ _ref$end = _ref.end,
11
+ end = _ref$end === void 0 ? 100 : _ref$end;
12
+ currentMaterial.transparent = true;
13
+ var oldShader;
14
+ currentMaterial.onBeforeCompile = function (shader) {
15
+ oldShader = shader;
16
+ shader.uniforms.time = {
17
+ value: 0.0
18
+ };
19
+ shader.uniforms.min_length = {
20
+ value: start
21
+ };
22
+ shader.uniforms.speed = {
23
+ value: 1.0
24
+ };
25
+ shader.vertexShader = shader.vertexShader.replace('void main() {', ['varying vec4 v_position;', 'varying vec3 vWorldPosition; ', 'void main() {', ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);', ' vWorldPosition = worldPosition1.xyz;', ' v_position = vec4(position, 1.0); '].join('\n'));
26
+ shader.fragmentShader = shader.fragmentShader.replace('void main() {', "\n varying vec4 v_position;\n uniform float time;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n ");
27
+ shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', "\n #include <dithering_fragment>\n float median = min_length + time * speed;\n if(vWorldPosition.x < median) {\n gl_FragColor.a = 0.0;\n }\n ");
28
+ };
29
+ mesh.material = currentMaterial;
30
+ var cancellation = use.useframe(function () {
31
+ if (oldShader) {
32
+ oldShader.uniforms.time.value += speed;
33
+ var worldPosition = new Vector3();
34
+ mesh.getWorldPosition(worldPosition);
35
+ if (worldPosition.x < start + oldShader.uniforms.time.value) currentMaterial.depthWrite = false;
36
+ if (oldShader.uniforms.time.value > end) {
37
+ (options === null || options === void 0 ? void 0 : options.callback) && options.callback();
38
+ setTimeout(function () {
39
+ mesh.material = lastMaterial;
40
+ oldShader.uniforms.time.value = 0;
41
+ }, 100);
42
+ cancellation();
43
+ }
44
+ }
45
+ });
46
+ };
47
+
48
+ /**
49
+ * todo 代码合并
50
+ * @param mesh
51
+ * @param material
52
+ * @param options
53
+ */
54
+ var switchMaterialV2 = function switchMaterialV2(mesh, material, options) {
55
+ var lastMaterial = mesh.material.clone();
56
+ var currentMaterial = mesh.material.clone();
57
+ var _ref2 = options || {},
58
+ _ref2$speed = _ref2.speed,
59
+ speed = _ref2$speed === void 0 ? 10 : _ref2$speed,
60
+ _ref2$start = _ref2.start,
61
+ start = _ref2$start === void 0 ? 0 : _ref2$start,
62
+ _ref2$end = _ref2.end,
63
+ end = _ref2$end === void 0 ? 100 : _ref2$end;
64
+ currentMaterial.transparent = true;
65
+ var oldShader;
66
+ currentMaterial.onBeforeCompile = function (shader) {
67
+ oldShader = shader;
68
+ shader.uniforms.time = {
69
+ value: 0.0
70
+ };
71
+ shader.uniforms.min_length = {
72
+ value: 0
73
+ };
74
+ shader.uniforms.speed = {
75
+ value: 1.0
76
+ };
77
+ shader.uniforms.center = {
78
+ value: {
79
+ x: 0,
80
+ y: 0,
81
+ z: 0
82
+ }
83
+ };
84
+ shader.vertexShader = shader.vertexShader.replace('void main() {', ['varying vec4 v_position;', 'varying vec3 vWorldPosition; ', 'void main() {', ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);', ' vWorldPosition = worldPosition1.xyz;', ' v_position = vec4(position, 1.0); '].join('\n'));
85
+ shader.fragmentShader = shader.fragmentShader.replace('void main() {', "\n varying vec4 v_position;\n uniform float time;\n uniform float center;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n ");
86
+ shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', "\n #include <dithering_fragment>\n float median = min_length + time * speed;\n\n if(distance(vec3(vWorldPosition.x,0,vWorldPosition.z), vec3(0,0,0)) < median) {\n gl_FragColor.a = 0.0;\n }\n ");
87
+ };
88
+ mesh.material = currentMaterial;
89
+ var cancellation = use.useframe(function () {
90
+ if (oldShader) {
91
+ oldShader.uniforms.time.value += speed;
92
+ var worldPosition = new Vector3();
93
+ mesh.getWorldPosition(worldPosition);
94
+ worldPosition.distanceTo(new Vector3(0, 0, 0));
95
+ if (worldPosition.distanceTo(new Vector3(0, 0, 0)) < oldShader.uniforms.time.value) currentMaterial.depthWrite = false;
96
+ if (oldShader.uniforms.time.value > end) {
97
+ (options === null || options === void 0 ? void 0 : options.callback) && options.callback();
98
+ setTimeout(function () {
99
+ mesh.material = lastMaterial;
100
+ oldShader.uniforms.time.value = 0;
101
+ }, 100);
102
+ cancellation();
103
+ }
104
+ }
105
+ });
106
+ };
107
+ export default switchMaterialV2;
108
+ //# sourceMappingURL=switchMaterial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Vector3","use","switchMaterial","mesh","material","options","lastMaterial","clone","currentMaterial","speed","start","end","transparent","oldShader","onBeforeCompile","shader","uniforms","time","value","min_length","vertexShader","replace","join","fragmentShader","cancellation","useframe","worldPosition","getWorldPosition","x","depthWrite","callback","setTimeout","switchMaterialV2","center","y","z","distanceTo"],"sources":["../../../src/factory/utils/switchMaterial.ts"],"sourcesContent":["import type { Material, Object3D, Shader } from '@anov/3d-core'\nimport { Vector3, use } from '@anov/3d-core'\n\ntype SwitchMaterialOptions = {\n speed?: number\n start?: number\n end?: number\n callback?: () => void\n}\n\nconst switchMaterial = (mesh: Object3D & { material: Material }, material: Material, options?: SwitchMaterialOptions) => {\n const lastMaterial = mesh.material.clone()\n const currentMaterial = mesh.material.clone()\n\n const { speed = 10, start = 0, end = 100 } = options || {}\n\n currentMaterial.transparent = true\n\n let oldShader: Shader\n\n currentMaterial.onBeforeCompile = (shader) => {\n oldShader = shader\n shader.uniforms.time = { value: 0.0 }\n shader.uniforms.min_length = { value: start }\n shader.uniforms.speed = { value: 1.0 }\n shader.vertexShader = shader.vertexShader.replace(\n 'void main() {',\n [\n 'varying vec4 v_position;',\n 'varying vec3 vWorldPosition; ',\n 'void main() {',\n ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);',\n ' vWorldPosition = worldPosition1.xyz;',\n ' v_position = vec4(position, 1.0); ',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace('void main() {',\n `\n varying vec4 v_position;\n uniform float time;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n `)\n\n shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n float median = min_length + time * speed;\n if(vWorldPosition.x < median) {\n gl_FragColor.a = 0.0;\n }\n `)\n }\n\n mesh.material = currentMaterial\n\n const cancellation = use.useframe(() => {\n if (oldShader) {\n oldShader.uniforms.time.value += speed\n\n const worldPosition = new Vector3()\n\n mesh.getWorldPosition(worldPosition)\n\n if (worldPosition.x < start + oldShader.uniforms.time.value)\n currentMaterial.depthWrite = false\n\n if (oldShader.uniforms.time.value > end) {\n options?.callback && options.callback()\n\n setTimeout(() => {\n mesh.material = lastMaterial\n oldShader.uniforms.time.value = 0\n }, 100)\n\n cancellation()\n }\n }\n })\n}\n\n/**\n * todo 代码合并\n * @param mesh\n * @param material\n * @param options\n */\nconst switchMaterialV2 = (mesh: Object3D & { material: Material }, material: Material, options?: SwitchMaterialOptions) => {\n const lastMaterial = mesh.material.clone()\n const currentMaterial = mesh.material.clone()\n\n const { speed = 10, start = 0, end = 100 } = options || {}\n\n currentMaterial.transparent = true\n\n let oldShader: Shader\n\n currentMaterial.onBeforeCompile = (shader) => {\n oldShader = shader\n shader.uniforms.time = { value: 0.0 }\n shader.uniforms.min_length = { value: 0 }\n shader.uniforms.speed = { value: 1.0 }\n shader.uniforms.center = { value: { x: 0, y: 0, z: 0 } }\n shader.vertexShader = shader.vertexShader.replace(\n 'void main() {',\n [\n 'varying vec4 v_position;',\n 'varying vec3 vWorldPosition; ',\n 'void main() {',\n ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);',\n ' vWorldPosition = worldPosition1.xyz;',\n ' v_position = vec4(position, 1.0); ',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace('void main() {',\n `\n varying vec4 v_position;\n uniform float time;\n uniform float center;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n `)\n\n shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n float median = min_length + time * speed;\n\n if(distance(vec3(vWorldPosition.x,0,vWorldPosition.z), vec3(0,0,0)) < median) {\n gl_FragColor.a = 0.0;\n }\n `)\n }\n\n mesh.material = currentMaterial\n\n const cancellation = use.useframe(() => {\n if (oldShader) {\n oldShader.uniforms.time.value += speed\n\n const worldPosition = new Vector3()\n\n mesh.getWorldPosition(worldPosition)\n\n worldPosition.distanceTo(new Vector3(0, 0, 0))\n\n if (worldPosition.distanceTo(new Vector3(0, 0, 0)) < oldShader.uniforms.time.value)\n currentMaterial.depthWrite = false\n\n if (oldShader.uniforms.time.value > end) {\n options?.callback && options.callback()\n\n setTimeout(() => {\n mesh.material = lastMaterial\n oldShader.uniforms.time.value = 0\n }, 100)\n\n cancellation()\n }\n }\n })\n}\n\nexport default switchMaterialV2"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Vector3 } from '@anov/3d-core';
1
2
  declare type EnvironmentOptions = {
2
3
  weather?: string;
3
4
  time?: number;
@@ -10,7 +11,9 @@ declare class Environment {
10
11
  private cloudReturn;
11
12
  private sky;
12
13
  private renderer;
13
- constructor(opts?: EnvironmentOptions);
14
+ private changeSceneEnvironment;
15
+ sunPosition: Vector3;
16
+ constructor(changeSceneEnvironment: (openFlag?: boolean) => void, opts?: EnvironmentOptions);
14
17
  private initConfigSet;
15
18
  private setWeatherStrategy;
16
19
  /**
@@ -15,7 +15,7 @@ import { use } from '@anov/3d-core';
15
15
  import { createRain, createSkyCloud, createSnow } from '@anov/3d-ability';
16
16
  import createTimeSkySystem from "./time";
17
17
  var Environment = /*#__PURE__*/function () {
18
- function Environment(opts) {
18
+ function Environment(changeSceneEnvironment, opts) {
19
19
  var _this = this;
20
20
  _classCallCheck(this, Environment);
21
21
  _defineProperty(this, "opts", void 0);
@@ -25,6 +25,8 @@ var Environment = /*#__PURE__*/function () {
25
25
  _defineProperty(this, "cloudReturn", null);
26
26
  _defineProperty(this, "sky", void 0);
27
27
  _defineProperty(this, "renderer", void 0);
28
+ _defineProperty(this, "changeSceneEnvironment", void 0);
29
+ _defineProperty(this, "sunPosition", void 0);
28
30
  _defineProperty(this, "setWeatherStrategy", {
29
31
  Snow: function Snow() {
30
32
  !_this.snow && (_this.snow = createSnow(15, 10000, {
@@ -61,12 +63,14 @@ var Environment = /*#__PURE__*/function () {
61
63
  }
62
64
  }
63
65
  });
64
- var _createTimeSkySystem = createTimeSkySystem(new Date(), 40, 116, 200),
66
+ this.changeSceneEnvironment = changeSceneEnvironment;
67
+ var _createTimeSkySystem = createTimeSkySystem(new Date(), 40, 116, 100),
65
68
  _createTimeSkySystem2 = _slicedToArray(_createTimeSkySystem, 3),
66
69
  setDate = _createTimeSkySystem2[0],
67
70
  sun = _createTimeSkySystem2[1],
68
71
  sky = _createTimeSkySystem2[2];
69
72
  this.renderer = use.useScene().renderer;
73
+ this.sunPosition = sun.position;
70
74
  this.setDate = setDate;
71
75
  this.sky = sky;
72
76
  this.opts = opts;
@@ -101,6 +105,7 @@ var Environment = /*#__PURE__*/function () {
101
105
  date.setHours(0, 0, 0, 0);
102
106
  date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400));
103
107
  this.setDate(date);
108
+ if (this.sunPosition.y <= 0) this.changeSceneEnvironment(false);else this.changeSceneEnvironment(true);
104
109
  return {
105
110
  newTime: params.time
106
111
  };
@@ -1 +1 @@
1
- {"version":3,"names":["use","createRain","createSkyCloud","createSnow","createTimeSkySystem","Environment","opts","Snow","snow","x","y","z","renderer","toneMappingExposure","Rain","rain","Cloudy","cloudReturn","Clear_Skies","_","clear","Date","setDate","sun","sky","useScene","initConfigSet","weather","time","setWeather","weatherType","duration","setTime","params","undefined","Error","date","setHours","getTime","Math","floor","newTime","setWeatherStrategy"],"sources":["../../../src/module/environment/index.ts"],"sourcesContent":["import type { Vector3, WebGLRenderer, lib } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport type { Rain, Snow } from '@anov/3d-ability'\nimport { createRain, createSkyCloud, createSnow } from '@anov/3d-ability'\nimport createTimeSkySystem from './time'\n\ntype EnvironmentOptions = {\n weather?: string\n time?: number\n}\n\nclass Environment {\n private opts?: EnvironmentOptions\n private setDate: (currentDate?: Date | undefined) => Vector3\n private snow: any = null\n private rain: any = null\n private cloudReturn: ReturnType<typeof createSkyCloud> | null = null\n private sky: lib.Sky\n private renderer: WebGLRenderer\n\n constructor(opts?: EnvironmentOptions) {\n const [setDate, sun, sky] = createTimeSkySystem(new Date(), 40, 116, 200)\n this.renderer = use.useScene().renderer!\n\n this.setDate = setDate as any\n this.sky = sky\n\n this.opts = opts\n this.initConfigSet()\n }\n\n private initConfigSet() {\n const { weather, time } = this.opts as Required<EnvironmentOptions>\n\n this.setWeather({ weatherType: weather ?? 'Snow', duration: 0 })\n this.setTime({ time: time ?? 1700, duration: 0 })\n }\n\n private setWeatherStrategy = {\n Snow: () => {\n !this.snow && (this.snow = createSnow(15, 10000, { x: 0, y: 3, z: 0 }, 0.5, 50000))\n this.snow[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Rain: () => {\n !this.rain && (this.rain = createRain(4, 10000, { x: 0, y: 10, z: 0 }, 0.8, 100000))\n this.rain[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Cloudy: () => {\n !this.cloudReturn && (this.cloudReturn = createSkyCloud())\n },\n Clear_Skies: () => {\n this.snow?.[1]()\n this.rain?.[1]()\n this.renderer.toneMappingExposure = 0.6\n\n if (this.cloudReturn) {\n const [_, clear] = this.cloudReturn\n clear()\n this.cloudReturn = null\n }\n },\n }\n\n /**\n * setTime\n * @param newTime\n * @param changeTime\n */\n setTime(params: { time: number; duration?: number }) {\n if (params.time === undefined || (params.time > 2400 && params.time < 0))\n throw new Error('time must be between 0 and 2400')\n\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400))\n this.setDate(date)\n\n return {\n newTime: params.time,\n }\n }\n\n /**\n * setWeather\n * @param type\n * @param changeTime\n */\n setWeather(params: { weatherType: string; duration?: number }) {\n // @ts-ignore\n this.setWeatherStrategy[params.weatherType]()\n\n return {\n weatherType: params.weatherType,\n }\n }\n}\n\nexport default Environment"],"mappings":"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"}
1
+ {"version":3,"names":["use","createRain","createSkyCloud","createSnow","createTimeSkySystem","Environment","changeSceneEnvironment","opts","Snow","snow","x","y","z","renderer","toneMappingExposure","Rain","rain","Cloudy","cloudReturn","Clear_Skies","_","clear","Date","setDate","sun","sky","useScene","sunPosition","position","initConfigSet","weather","time","setWeather","weatherType","duration","setTime","params","undefined","Error","date","setHours","getTime","Math","floor","newTime","setWeatherStrategy"],"sources":["../../../src/module/environment/index.ts"],"sourcesContent":["import type { Vector3, WebGLRenderer, lib } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport { createRain, createSkyCloud, createSnow } from '@anov/3d-ability'\nimport createTimeSkySystem from './time'\n\ntype EnvironmentOptions = {\n weather?: string\n time?: number\n}\n\nclass Environment {\n private opts?: EnvironmentOptions\n private setDate: (currentDate?: Date | undefined) => Vector3\n private snow: any = null\n private rain: any = null\n private cloudReturn: ReturnType<typeof createSkyCloud> | null = null\n private sky: lib.Sky\n private renderer: WebGLRenderer\n private changeSceneEnvironment: (openFlag?: boolean) => void\n sunPosition: Vector3\n\n constructor(changeSceneEnvironment: (openFlag?: boolean) => void, opts?: EnvironmentOptions) {\n this.changeSceneEnvironment = changeSceneEnvironment\n const [setDate, sun, sky] = createTimeSkySystem(new Date(), 40, 116, 100)\n this.renderer = use.useScene().renderer!\n this.sunPosition = sun.position\n this.setDate = setDate as any\n this.sky = sky\n\n this.opts = opts\n this.initConfigSet()\n }\n\n private initConfigSet() {\n const { weather, time } = this.opts as Required<EnvironmentOptions>\n\n this.setWeather({ weatherType: weather ?? 'Snow', duration: 0 })\n this.setTime({ time: time ?? 1700, duration: 0 })\n }\n\n private setWeatherStrategy = {\n Snow: () => {\n !this.snow && (this.snow = createSnow(15, 10000, { x: 0, y: 3, z: 0 }, 0.5, 50000))\n this.snow[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Rain: () => {\n !this.rain && (this.rain = createRain(4, 10000, { x: 0, y: 10, z: 0 }, 0.8, 100000))\n this.rain[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Cloudy: () => {\n !this.cloudReturn && (this.cloudReturn = createSkyCloud())\n },\n Clear_Skies: () => {\n this.snow?.[1]()\n this.rain?.[1]()\n this.renderer.toneMappingExposure = 0.6\n\n if (this.cloudReturn) {\n const [_, clear] = this.cloudReturn\n clear()\n this.cloudReturn = null\n }\n },\n }\n\n /**\n * setTime\n * @param newTime\n * @param changeTime\n */\n setTime(params: { time: number; duration?: number }) {\n if (params.time === undefined || (params.time > 2400 && params.time < 0))\n throw new Error('time must be between 0 and 2400')\n\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400))\n this.setDate(date)\n\n if (this.sunPosition.y <= 0)\n this.changeSceneEnvironment(false)\n\n else\n this.changeSceneEnvironment(true)\n\n return {\n newTime: params.time,\n }\n }\n\n /**\n * setWeather\n * @param type\n * @param changeTime\n */\n setWeather(params: { weatherType: string; duration?: number }) {\n // @ts-ignore\n this.setWeatherStrategy[params.weatherType]()\n\n return {\n weatherType: params.weatherType,\n }\n }\n}\n\nexport default Environment"],"mappings":"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"}
@@ -6,5 +6,7 @@
6
6
  * @param sunRadius
7
7
  * @returns
8
8
  */
9
- declare const createTimeSkySystem: (date: Date, latitude?: number, longitude?: number, sunRadius?: number) => any[];
9
+ declare const createTimeSkySystem: (date: Date, latitude?: number, longitude?: number, sunRadius?: number) => [(currentDate?: Date | undefined) => import("@anov/3d-core").Vector3, import("@anov/3d-core/dist/core/group").default & {
10
+ sunPosition: import("@anov/3d-core").Vector3;
11
+ }, any];
10
12
  export default createTimeSkySystem;
@@ -1 +1 @@
1
- {"version":3,"names":["createSkySystem","createTimeSkySystem","date","latitude","longitude","sunRadius","setDate","sun","sky"],"sources":["../../../../src/module/environment/time/index.ts"],"sourcesContent":["import { createSkySystem } from '@anov/3d-ability'\n\n/**\n * create time sky system\n * @param date\n * @param latitude\n * @param longitude\n * @param sunRadius\n * @returns\n */\nconst createTimeSkySystem = (date: Date, latitude = 40, longitude = 116, sunRadius = 100) => {\n const [setDate, sun, sky] = createSkySystem(date, latitude, longitude, sunRadius)\n\n return [setDate, sun, sky]\n}\n\nexport default createTimeSkySystem"],"mappings":";;;;;;AAAA,SAASA,eAAe,QAAQ,kBAAkB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIC,IAAU,EAAsD;EAAA,IAApDC,QAAQ,uEAAG,EAAE;EAAA,IAAEC,SAAS,uEAAG,GAAG;EAAA,IAAEC,SAAS,uEAAG,GAAG;EACtF,uBAA4BL,eAAe,CAACE,IAAI,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,CAAC;IAAA;IAA1EC,OAAO;IAAEC,GAAG;IAAEC,GAAG;EAExB,OAAO,CAACF,OAAO,EAAEC,GAAG,EAAEC,GAAG,CAAC;AAC5B,CAAC;AAED,eAAeP,mBAAmB"}
1
+ {"version":3,"names":["createSkySystem","createTimeSkySystem","date","latitude","longitude","sunRadius","setDate","sun","sky"],"sources":["../../../../src/module/environment/time/index.ts"],"sourcesContent":["import { createSkySystem } from '@anov/3d-ability'\n\n/**\n * create time sky system\n * @param date\n * @param latitude\n * @param longitude\n * @param sunRadius\n * @returns\n */\nconst createTimeSkySystem = (date: Date, latitude = 40, longitude = 116, sunRadius = 100) => {\n const [setDate, sun, sky] = createSkySystem(date, latitude, longitude, sunRadius)\n\n return [setDate, sun, sky] as [typeof setDate, typeof sun, typeof sky]\n}\n\nexport default createTimeSkySystem"],"mappings":";;;;;;AAAA,SAASA,eAAe,QAAQ,kBAAkB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIC,IAAU,EAAsD;EAAA,IAApDC,QAAQ,uEAAG,EAAE;EAAA,IAAEC,SAAS,uEAAG,GAAG;EAAA,IAAEC,SAAS,uEAAG,GAAG;EACtF,uBAA4BL,eAAe,CAACE,IAAI,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,CAAC;IAAA;IAA1EC,OAAO;IAAEC,GAAG;IAAEC,GAAG;EAExB,OAAO,CAACF,OAAO,EAAEC,GAAG,EAAEC,GAAG,CAAC;AAC5B,CAAC;AAED,eAAeP,mBAAmB"}
@@ -66,6 +66,12 @@ var Model = /*#__PURE__*/function () {
66
66
  if (fileFormat === 'glb' || fileFormat === 'gltf') {
67
67
  modelLoader.loadGLTF(lastSource, false, true, './draco/', function (model) {
68
68
  model.scene.position.set(position.x, position.y, position.z);
69
+ model.scene.traverse(function (child) {
70
+ if (child.type === 'Mesh') {
71
+ child.castShadow = true;
72
+ child.receiveShadow = true;
73
+ }
74
+ });
69
75
  _this.scene.add(model.scene);
70
76
  return model;
71
77
  }, onProgress, onError);
@@ -1 +1 @@
1
- {"version":3,"names":["ModelLoader","Vector3","use","localforage","modelLoader","Model","useScene","scene","Error","source","isCache","position","onProgress","onError","fileFormat","split","pop","fetch","then","res","blob","setItem","getItem","lastSource","URL","createObjectURL","loadGLTF","model","set","x","y","z","add","loadFbx","undefined"],"sources":["../../../src/module/model/index.ts"],"sourcesContent":["import type { Scene } from '@anov/3d-core'\nimport { ModelLoader, Vector3, use } from '@anov/3d-core'\nimport localforage from 'localforage'\n\nconst modelLoader = new ModelLoader()\n\nclass Model {\n private scene: Scene\n constructor() {\n const { scene } = use.useScene()\n\n if (!scene)\n throw new Error('scene is not init')\n\n this.scene = scene\n }\n\n /**\n * model load ,now just to test\n * @param source\n * @param isCache\n * @param position\n * @param onProgress\n * @param onError\n */\n async load(source: string, isCache = true, position = new Vector3(0, 0, 0), onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void) {\n const fileFormat = source.split('.').pop()\n\n if (isCache) {\n fetch(source).then(res => res.blob()).then((blob) => {\n localforage.setItem(source, blob)\n })\n }\n\n const blob = await localforage.getItem(source) as Blob\n let lastSource = source\n\n if (blob && isCache)\n lastSource = URL.createObjectURL(blob)\n\n if (fileFormat === 'glb' || fileFormat === 'gltf') {\n modelLoader.loadGLTF(lastSource, false, true,\n './draco/',\n (model) => {\n model.scene.position.set(position.x, position.y, position.z)\n\n this.scene.add(model.scene)\n return model\n },\n onProgress,\n onError)\n }\n\n if (fileFormat === 'fbx') {\n modelLoader.loadFbx(lastSource, false, undefined, onProgress, onError).then((model) => {\n model.position.set(position.x, position.y, position.z)\n this.scene.add(model)\n })\n }\n }\n}\n\nexport default Model"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,GAAG,QAAQ,eAAe;AACzD,OAAOC,WAAW,MAAM,aAAa;AAErC,IAAMC,WAAW,GAAG,IAAIJ,WAAW,EAAE;AAAA,IAE/BK,KAAK;EAET,iBAAc;IAAA;IAAA;IACZ,oBAAkBH,GAAG,CAACI,QAAQ,EAAE;MAAxBC,KAAK,iBAALA,KAAK;IAEb,IAAI,CAACA,KAAK,EACR,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;IAEtC,IAAI,CAACD,KAAK,GAAGA,KAAK;EACpB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA;MAAA,uEAQA,iBAAWE,MAAc;QAAA;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAEC,OAAO,2DAAG,IAAI;cAAEC,QAAQ,2DAAG,IAAIV,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;cAAEW,UAA2C;cAAEC,OAAqC;cACtJC,UAAU,GAAGL,MAAM,CAACM,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE;cAE1C,IAAIN,OAAO,EAAE;gBACXO,KAAK,CAACR,MAAM,CAAC,CAACS,IAAI,CAAC,UAAAC,GAAG;kBAAA,OAAIA,GAAG,CAACC,IAAI,EAAE;gBAAA,EAAC,CAACF,IAAI,CAAC,UAACE,IAAI,EAAK;kBACnDjB,WAAW,CAACkB,OAAO,CAACZ,MAAM,EAAEW,IAAI,CAAC;gBACnC,CAAC,CAAC;cACJ;cAAC;cAAA,OAEkBjB,WAAW,CAACmB,OAAO,CAACb,MAAM,CAAC;YAAA;cAAxCW,IAAI;cACNG,UAAU,GAAGd,MAAM;cAEvB,IAAIW,IAAI,IAAIV,OAAO,EACjBa,UAAU,GAAGC,GAAG,CAACC,eAAe,CAACL,IAAI,CAAC;cAExC,IAAIN,UAAU,KAAK,KAAK,IAAIA,UAAU,KAAK,MAAM,EAAE;gBACjDV,WAAW,CAACsB,QAAQ,CAACH,UAAU,EAAE,KAAK,EAAE,IAAI,EAC1C,UAAU,EACV,UAACI,KAAK,EAAK;kBACTA,KAAK,CAACpB,KAAK,CAACI,QAAQ,CAACiB,GAAG,CAACjB,QAAQ,CAACkB,CAAC,EAAElB,QAAQ,CAACmB,CAAC,EAAEnB,QAAQ,CAACoB,CAAC,CAAC;kBAE5D,KAAI,CAACxB,KAAK,CAACyB,GAAG,CAACL,KAAK,CAACpB,KAAK,CAAC;kBAC3B,OAAOoB,KAAK;gBACd,CAAC,EACDf,UAAU,EACVC,OAAO,CAAC;cACZ;cAEA,IAAIC,UAAU,KAAK,KAAK,EAAE;gBACxBV,WAAW,CAAC6B,OAAO,CAACV,UAAU,EAAE,KAAK,EAAEW,SAAS,EAAEtB,UAAU,EAAEC,OAAO,CAAC,CAACK,IAAI,CAAC,UAACS,KAAK,EAAK;kBACrFA,KAAK,CAAChB,QAAQ,CAACiB,GAAG,CAACjB,QAAQ,CAACkB,CAAC,EAAElB,QAAQ,CAACmB,CAAC,EAAEnB,QAAQ,CAACoB,CAAC,CAAC;kBACtD,KAAI,CAACxB,KAAK,CAACyB,GAAG,CAACL,KAAK,CAAC;gBACvB,CAAC,CAAC;cACJ;YAAC;YAAA;cAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA;AAGH,eAAetB,KAAK"}
1
+ {"version":3,"names":["ModelLoader","Vector3","use","localforage","modelLoader","Model","useScene","scene","Error","source","isCache","position","onProgress","onError","fileFormat","split","pop","fetch","then","res","blob","setItem","getItem","lastSource","URL","createObjectURL","loadGLTF","model","set","x","y","z","traverse","child","type","castShadow","receiveShadow","add","loadFbx","undefined"],"sources":["../../../src/module/model/index.ts"],"sourcesContent":["import type { Scene } from '@anov/3d-core'\nimport { ModelLoader, Vector3, use } from '@anov/3d-core'\nimport localforage from 'localforage'\n\nconst modelLoader = new ModelLoader()\n\nclass Model {\n private scene: Scene\n constructor() {\n const { scene } = use.useScene()\n\n if (!scene)\n throw new Error('scene is not init')\n\n this.scene = scene\n }\n\n /**\n * model load ,now just to test\n * @param source\n * @param isCache\n * @param position\n * @param onProgress\n * @param onError\n */\n async load(source: string, isCache = true, position = new Vector3(0, 0, 0), onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void) {\n const fileFormat = source.split('.').pop()\n\n if (isCache) {\n fetch(source).then(res => res.blob()).then((blob) => {\n localforage.setItem(source, blob)\n })\n }\n\n const blob = await localforage.getItem(source) as Blob\n let lastSource = source\n\n if (blob && isCache)\n lastSource = URL.createObjectURL(blob)\n\n if (fileFormat === 'glb' || fileFormat === 'gltf') {\n modelLoader.loadGLTF(lastSource, false, true,\n './draco/',\n (model) => {\n model.scene.position.set(position.x, position.y, position.z)\n\n model.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n this.scene.add(model.scene)\n return model\n },\n onProgress,\n onError)\n }\n\n if (fileFormat === 'fbx') {\n modelLoader.loadFbx(lastSource, false, undefined, onProgress, onError).then((model) => {\n model.position.set(position.x, position.y, position.z)\n this.scene.add(model)\n })\n }\n }\n}\n\nexport default Model"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import type { GrowOption } from '@anov/3d-ability';
2
+ import type Factory3D from '../../factory/3d';
2
3
  export declare class Scene {
3
4
  private grow;
4
5
  private opt;
5
- constructor();
6
- growIn(opt: GrowOption): Promise<unknown>;
7
- growOut(opt?: GrowOption): Promise<unknown>;
6
+ private factory;
7
+ constructor(factory: Factory3D);
8
+ growInit(opt?: GrowOption): Promise<unknown>;
9
+ growIn(): Promise<unknown>;
10
+ growOut(): Promise<unknown>;
11
+ toPage(params: any): void;
8
12
  }
@@ -9,68 +9,98 @@ import { Grow } from '@anov/3d-ability';
9
9
  import { MessageType, sendToMessage } from "../../utils/messageFn";
10
10
  import { EMessageStatus } from "../../messageStatus";
11
11
  export var Scene = /*#__PURE__*/function () {
12
- function Scene() {
12
+ function Scene(factory) {
13
13
  _classCallCheck(this, Scene);
14
14
  _defineProperty(this, "grow", void 0);
15
15
  _defineProperty(this, "opt", void 0);
16
+ _defineProperty(this, "factory", void 0);
17
+ this.factory = factory;
16
18
  this.grow = null;
17
- this.opt = null;
19
+ this.opt = {};
18
20
  }
19
21
 
20
- // [API:场景进出场动画]
22
+ // [API:场景进出场初始化]
21
23
  _createClass(Scene, [{
22
- key: "growIn",
23
- value: function growIn(opt) {
24
+ key: "growInit",
25
+ value: function growInit(opt) {
24
26
  var _this = this;
25
- return new Promise(function (res, _) {
26
- Object.assign(_this.opt, opt, {
27
+ return new Promise(function (res) {
28
+ Object.assign(_this.opt, opt || {}, {
29
+ onGrowInitCompleted: function onGrowInitCompleted() {
30
+ console.log('------:onGrowInitCompleted');
31
+ sendToMessage(MessageType.Event, 'onGrowInitCompleted', EMessageStatus.Success);
32
+ },
27
33
  onGrowInStart: function onGrowInStart() {
28
- opt.onGrowInStart && opt.onGrowInStart();
34
+ console.log('------:onGrowInStart');
35
+
36
+ // opt.onGrowInStart && opt.onGrowInStart()
29
37
  sendToMessage(MessageType.Event, 'onGrowInStart', EMessageStatus.Success);
30
38
  },
31
39
  onGrowInCompleted: function onGrowInCompleted() {
32
- opt.onGrowInCompleted && opt.onGrowInCompleted();
40
+ console.log('------:onGrowInCompleted');
41
+
42
+ // opt.onGrowInCompleted && opt.onGrowInCompleted()
33
43
  sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success);
34
- res({
35
- success: true
36
- });
44
+ },
45
+ onGrowOutStart: function onGrowOutStart() {
46
+ // opt.onGrowOutStart && opt.onGrowOutStart()
47
+ console.log('------:onGrowOutStart');
48
+ sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success);
49
+ },
50
+ onGrowOutCompleted: function onGrowOutCompleted() {
51
+ // opt.onGrowOutCompleted && opt.onGrowOutCompleted()
52
+ console.log('------:onGrowOutCompleted');
53
+ sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success);
37
54
  }
38
55
  });
39
56
  _this.grow = new Grow(_this.opt);
40
- _this.grow.in();
57
+ res({
58
+ success: true
59
+ });
41
60
  });
42
61
  }
43
62
 
44
63
  // [API:场景进出场动画]
45
64
  }, {
46
- key: "growOut",
47
- value: function growOut(opt) {
65
+ key: "growIn",
66
+ value: function growIn() {
48
67
  var _this2 = this;
49
- return new Promise(function (res, _) {
50
- // 未设置进场,不处理
51
- if (_this2.grow) {
52
- Object.assign(_this2.opt, opt, {
53
- onGrowOutStart: function onGrowOutStart() {
54
- opt.onGrowOutStart && opt.onGrowOutStart();
55
- sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success);
56
- },
57
- onGrowOutCompleted: function onGrowOutCompleted() {
58
- opt.onGrowOutCompleted && opt.onGrowOutCompleted();
59
- sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success);
60
- res({
61
- success: true
62
- });
63
- }
68
+ return new Promise(function (res) {
69
+ // 未初始化,不处理
70
+ if (_this2.grow) _this2.grow.in(function () {
71
+ res({
72
+ success: true
64
73
  });
65
- _this2.grow.out();
66
- } else {
67
- // eslint-disable-next-line prefer-promise-reject-errors
68
- _({
69
- message: 'scene not gorwIn'
74
+ });else res({
75
+ message: ' not scene grow init'
76
+ });
77
+ });
78
+ }
79
+
80
+ // [API:场景进出场动画]
81
+ }, {
82
+ key: "growOut",
83
+ value: function growOut() {
84
+ var _this3 = this;
85
+ return new Promise(function (res) {
86
+ // 未初始化,不处理
87
+ if (_this3.grow) _this3.grow.out(function () {
88
+ res({
89
+ success: true
70
90
  });
71
- }
91
+ });else res({
92
+ message: ' not scene grow init'
93
+ });
72
94
  });
73
95
  }
96
+
97
+ // temporary solution by lM
98
+ }, {
99
+ key: "toPage",
100
+ value: function toPage(params) {
101
+ console.log('params:', params);
102
+ this.factory.toggleTag(params.name);
103
+ }
74
104
  }]);
75
105
  return Scene;
76
106
  }();
@@ -1 +1 @@
1
- {"version":3,"names":["Grow","MessageType","sendToMessage","EMessageStatus","Scene","grow","opt","Promise","res","_","Object","assign","onGrowInStart","Event","Success","onGrowInCompleted","success","in","onGrowOutStart","onGrowOutCompleted","out","message"],"sources":["../../../src/module/scene/index.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport type { GrowOption } from '@anov/3d-ability'\nimport { EEaseType, ESceneGrowType, Grow } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\n\nexport class Scene {\n private grow: Grow\n private opt: GrowOption\n\n constructor() {\n this.grow = null\n this.opt = null\n }\n\n // [API:场景进出场动画]\n growIn(opt: GrowOption) {\n return new Promise ((res, _) => {\n Object.assign(this.opt, opt,\n {\n onGrowInStart: () => {\n opt.onGrowInStart && opt.onGrowInStart()\n sendToMessage(MessageType.Event, 'onGrowInStart', EMessageStatus.Success)\n },\n onGrowInCompleted: () => {\n opt.onGrowInCompleted && opt.onGrowInCompleted()\n sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success)\n res({ success: true })\n },\n })\n\n this.grow = new Grow(this.opt)\n this.grow.in()\n })\n }\n\n // [API:场景进出场动画]\n growOut(opt?: GrowOption) {\n return new Promise ((res, _) => {\n // 未设置进场,不处理\n if (this.grow) {\n Object.assign(this.opt, opt,\n {\n onGrowOutStart: () => {\n opt.onGrowOutStart && opt.onGrowOutStart()\n sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success)\n },\n onGrowOutCompleted: () => {\n opt.onGrowOutCompleted && opt.onGrowOutCompleted()\n sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success)\n res({ success: true })\n },\n })\n this.grow.out()\n }\n else {\n // eslint-disable-next-line prefer-promise-reject-errors\n _({ message: 'scene not gorwIn' })\n }\n })\n }\n}\n"],"mappings":";;;;;;;AAEA,SAAoCA,IAAI,QAAQ,kBAAkB;AAClE,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AAEvB,WAAaC,KAAK;EAIhB,iBAAc;IAAA;IAAA;IAAA;IACZ,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB,IAAI,CAACC,GAAG,GAAG,IAAI;EACjB;;EAEA;EAAA;IAAA;IAAA,OACA,gBAAOA,GAAe,EAAE;MAAA;MACtB,OAAO,IAAIC,OAAO,CAAE,UAACC,GAAG,EAAEC,CAAC,EAAK;QAC9BC,MAAM,CAACC,MAAM,CAAC,KAAI,CAACL,GAAG,EAAEA,GAAG,EACzB;UACEM,aAAa,EAAE,yBAAM;YACnBN,GAAG,CAACM,aAAa,IAAIN,GAAG,CAACM,aAAa,EAAE;YACxCV,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,eAAe,EAAEV,cAAc,CAACW,OAAO,CAAC;UAC3E,CAAC;UACDC,iBAAiB,EAAE,6BAAM;YACvBT,GAAG,CAACS,iBAAiB,IAAIT,GAAG,CAACS,iBAAiB,EAAE;YAChDb,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,mBAAmB,EAAEV,cAAc,CAACW,OAAO,CAAC;YAC7EN,GAAG,CAAC;cAAEQ,OAAO,EAAE;YAAK,CAAC,CAAC;UACxB;QACF,CAAC,CAAC;QAEJ,KAAI,CAACX,IAAI,GAAG,IAAIL,IAAI,CAAC,KAAI,CAACM,GAAG,CAAC;QAC9B,KAAI,CAACD,IAAI,CAACY,EAAE,EAAE;MAChB,CAAC,CAAC;IACJ;;IAEA;EAAA;IAAA;IAAA,OACA,iBAAQX,GAAgB,EAAE;MAAA;MACxB,OAAO,IAAIC,OAAO,CAAE,UAACC,GAAG,EAAEC,CAAC,EAAK;QAC9B;QACA,IAAI,MAAI,CAACJ,IAAI,EAAE;UACbK,MAAM,CAACC,MAAM,CAAC,MAAI,CAACL,GAAG,EAAEA,GAAG,EACzB;YACEY,cAAc,EAAE,0BAAM;cACpBZ,GAAG,CAACY,cAAc,IAAIZ,GAAG,CAACY,cAAc,EAAE;cAC1ChB,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,gBAAgB,EAAEV,cAAc,CAACW,OAAO,CAAC;YAC5E,CAAC;YACDK,kBAAkB,EAAE,8BAAM;cACxBb,GAAG,CAACa,kBAAkB,IAAIb,GAAG,CAACa,kBAAkB,EAAE;cAClDjB,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,oBAAoB,EAAEV,cAAc,CAACW,OAAO,CAAC;cAC9EN,GAAG,CAAC;gBAAEQ,OAAO,EAAE;cAAK,CAAC,CAAC;YACxB;UACF,CAAC,CAAC;UACJ,MAAI,CAACX,IAAI,CAACe,GAAG,EAAE;QACjB,CAAC,MACI;UACH;UACAX,CAAC,CAAC;YAAEY,OAAO,EAAE;UAAmB,CAAC,CAAC;QACpC;MACF,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA"}
1
+ {"version":3,"names":["Grow","MessageType","sendToMessage","EMessageStatus","Scene","factory","grow","opt","Promise","res","Object","assign","onGrowInitCompleted","console","log","Event","Success","onGrowInStart","onGrowInCompleted","onGrowOutStart","onGrowOutCompleted","success","in","message","out","params","toggleTag","name"],"sources":["../../../src/module/scene/index.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport type { GrowOption } from '@anov/3d-ability'\nimport { EEaseType, ESceneGrowType, Grow } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Factory3D from '../../factory/3d'\n\nexport class Scene {\n private grow: Grow\n private opt: GrowOption\n private factory: Factory3D\n\n constructor(factory: Factory3D) {\n this.factory = factory\n this.grow = null\n this.opt = {}\n }\n\n // [API:场景进出场初始化]\n growInit(opt?: GrowOption) {\n return new Promise ((res) => {\n Object.assign(this.opt, opt || {},\n {\n onGrowInitCompleted: () => {\n console.log('------:onGrowInitCompleted')\n sendToMessage(MessageType.Event, 'onGrowInitCompleted', EMessageStatus.Success)\n },\n onGrowInStart: () => {\n console.log('------:onGrowInStart')\n\n // opt.onGrowInStart && opt.onGrowInStart()\n sendToMessage(MessageType.Event, 'onGrowInStart', EMessageStatus.Success)\n },\n onGrowInCompleted: () => {\n console.log('------:onGrowInCompleted')\n\n // opt.onGrowInCompleted && opt.onGrowInCompleted()\n sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success)\n },\n onGrowOutStart: () => {\n // opt.onGrowOutStart && opt.onGrowOutStart()\n console.log('------:onGrowOutStart')\n sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success)\n },\n onGrowOutCompleted: () => {\n // opt.onGrowOutCompleted && opt.onGrowOutCompleted()\n console.log('------:onGrowOutCompleted')\n sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success)\n },\n })\n this.grow = new Grow(this.opt)\n res({ success: true })\n })\n }\n\n // [API:场景进出场动画]\n growIn() {\n return new Promise ((res) => {\n // 未初始化,不处理\n if (this.grow)\n this.grow.in(() => { res({ success: true }) })\n else res({ message: ' not scene grow init' })\n })\n }\n\n // [API:场景进出场动画]\n growOut() {\n return new Promise ((res) => {\n // 未初始化,不处理\n if (this.grow)\n this.grow.out(() => { res({ success: true }) })\n else res({ message: ' not scene grow init' })\n })\n }\n\n // temporary solution by lM\n toPage(params: any) {\n console.log('params:', params)\n this.factory.toggleTag(params.name)\n }\n}\n"],"mappings":"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"}