@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.
- package/dist/applicationApi.js +1 -1
- package/dist/applicationApi.js.map +1 -1
- package/dist/factory/3d.d.ts +51 -0
- package/dist/factory/3d.js +203 -0
- package/dist/factory/3d.js.map +1 -0
- package/dist/factory/globalData.d.ts +1 -0
- package/dist/factory/globalData.js +2 -0
- package/dist/factory/globalData.js.map +1 -0
- package/dist/factory/regionData.d.ts +26 -0
- package/dist/factory/regionData.js +130 -0
- package/dist/factory/regionData.js.map +1 -0
- package/dist/factory/unit/areaBoundingBox.d.ts +7 -0
- package/dist/factory/unit/areaBoundingBox.js +28 -0
- package/dist/factory/unit/areaBoundingBox.js.map +1 -0
- package/dist/factory/unit/circle.d.ts +15 -0
- package/dist/factory/unit/circle.js +88 -0
- package/dist/factory/unit/circle.js.map +1 -0
- package/dist/factory/unit/cylinder.d.ts +18 -0
- package/dist/factory/unit/cylinder.js +125 -0
- package/dist/factory/unit/cylinder.js.map +1 -0
- package/dist/factory/unit/glsl/wall/fragmentShader.glsl +30 -0
- package/dist/factory/unit/glsl/wall/vertexShader.glsl +6 -0
- package/dist/factory/unit/index.d.ts +2 -0
- package/dist/factory/unit/index.js +61 -0
- package/dist/factory/unit/index.js.map +1 -0
- package/dist/factory/unit/line.d.ts +13 -0
- package/dist/factory/unit/line.js +96 -0
- package/dist/factory/unit/line.js.map +1 -0
- package/dist/factory/unit/poi.d.ts +15 -0
- package/dist/factory/unit/poi.js +140 -0
- package/dist/factory/unit/poi.js.map +1 -0
- package/dist/factory/unit/point.d.ts +10 -0
- package/dist/factory/unit/point.js +71 -0
- package/dist/factory/unit/point.js.map +1 -0
- package/dist/factory/unit/wall.d.ts +14 -0
- package/dist/factory/unit/wall.js +113 -0
- package/dist/factory/unit/wall.js.map +1 -0
- package/dist/factory/utils/areaBoundingBox.d.ts +14 -0
- package/dist/factory/utils/areaBoundingBox.js +39 -0
- package/dist/factory/utils/areaBoundingBox.js.map +1 -0
- package/dist/factory/utils/base64.d.ts +1 -0
- package/dist/factory/utils/base64.js +2 -0
- package/dist/factory/utils/base64.js.map +1 -0
- package/dist/factory/utils/finirMaterial.d.ts +3 -0
- package/dist/factory/utils/finirMaterial.js +39 -0
- package/dist/factory/utils/finirMaterial.js.map +1 -0
- package/dist/factory/utils/fontMesh.d.ts +10 -0
- package/dist/factory/utils/fontMesh.js +48 -0
- package/dist/factory/utils/fontMesh.js.map +1 -0
- package/dist/factory/utils/index.d.ts +2 -0
- package/dist/factory/utils/index.js +24 -0
- package/dist/factory/utils/index.js.map +1 -0
- package/dist/factory/utils/switchMaterial.d.ts +17 -0
- package/dist/factory/utils/switchMaterial.js +108 -0
- package/dist/factory/utils/switchMaterial.js.map +1 -0
- package/dist/module/environment/index.d.ts +4 -1
- package/dist/module/environment/index.js +7 -2
- package/dist/module/environment/index.js.map +1 -1
- package/dist/module/environment/time/index.d.ts +3 -1
- package/dist/module/environment/time/index.js.map +1 -1
- package/dist/module/model/index.js +6 -0
- package/dist/module/model/index.js.map +1 -1
- package/dist/module/scene/index.d.ts +7 -3
- package/dist/module/scene/index.js +66 -36
- package/dist/module/scene/index.js.map +1 -1
- package/dist/sdkEntry.d.ts +5 -2
- package/dist/sdkEntry.js +85 -65
- package/dist/sdkEntry.js.map +1 -1
- 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,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
|
-
|
|
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
|
-
|
|
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
|
|
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":";;;;;;;;;;;;;AACA,SAASA,GAAG,QAAQ,eAAe;AACnC,SAASC,UAAU,EAAEC,cAAc,EAAEC,UAAU,QAAQ,kBAAkB;AACzE,OAAOC,mBAAmB;AAAc,IAOlCC,WAAW;EAWf,qBAAYC,sBAAoD,EAAEC,IAAyB,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,8BARzE,IAAI;IAAA,8BACJ,IAAI;IAAA,qCACwC,IAAI;IAAA;IAAA;IAAA;IAAA;IAAA,4CAyBvC;MAC3BC,IAAI,EAAE,gBAAM;QACV,CAAC,KAAI,CAACC,IAAI,KAAK,KAAI,CAACA,IAAI,GAAGN,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE;UAAEO,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnF,KAAI,CAACH,IAAI,CAAC,CAAC,CAAC,EAAE;QACd,KAAI,CAACI,QAAQ,CAACC,mBAAmB,GAAG,GAAG;MACzC,CAAC;MACDC,IAAI,EAAE,gBAAM;QACV,CAAC,KAAI,CAACC,IAAI,KAAK,KAAI,CAACA,IAAI,GAAGf,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;UAAES,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE,EAAE;UAAEC,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpF,KAAI,CAACI,IAAI,CAAC,CAAC,CAAC,EAAE;QACd,KAAI,CAACH,QAAQ,CAACC,mBAAmB,GAAG,GAAG;MACzC,CAAC;MACDG,MAAM,EAAE,kBAAM;QACZ,CAAC,KAAI,CAACC,WAAW,KAAK,KAAI,CAACA,WAAW,GAAGhB,cAAc,EAAE,CAAC;MAC5D,CAAC;MACDiB,WAAW,EAAE,uBAAM;QAAA;QACjB,mBAAI,CAACV,IAAI,+CAAT,WAAY,CAAC,CAAC,EAAE;QAChB,mBAAI,CAACO,IAAI,+CAAT,WAAY,CAAC,CAAC,EAAE;QAChB,KAAI,CAACH,QAAQ,CAACC,mBAAmB,GAAG,GAAG;QAEvC,IAAI,KAAI,CAACI,WAAW,EAAE;UACpB,uCAAmB,KAAI,CAACA,WAAW;YAA5BE,CAAC;YAAEC,KAAK;UACfA,KAAK,EAAE;UACP,KAAI,CAACH,WAAW,GAAG,IAAI;QACzB;MACF;IACF,CAAC;IA3CC,IAAI,CAACZ,sBAAsB,GAAGA,sBAAsB;IACpD,2BAA4BF,mBAAmB,CAAC,IAAIkB,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;MAAA;MAAlEC,OAAO;MAAEC,GAAG;MAAEC,GAAG;IACxB,IAAI,CAACZ,QAAQ,GAAGb,GAAG,CAAC0B,QAAQ,EAAE,CAACb,QAAS;IACxC,IAAI,CAACc,WAAW,GAAGH,GAAG,CAACI,QAAQ;IAC/B,IAAI,CAACL,OAAO,GAAGA,OAAc;IAC7B,IAAI,CAACE,GAAG,GAAGA,GAAG;IAEd,IAAI,CAAClB,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACsB,aAAa,EAAE;EACtB;EAAC;IAAA;IAAA,OAED,yBAAwB;MACtB,WAA0B,IAAI,CAACtB,IAAI;QAA3BuB,OAAO,QAAPA,OAAO;QAAEC,IAAI,QAAJA,IAAI;MAErB,IAAI,CAACC,UAAU,CAAC;QAAEC,WAAW,EAAEH,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,MAAM;QAAEI,QAAQ,EAAE;MAAE,CAAC,CAAC;MAChE,IAAI,CAACC,OAAO,CAAC;QAAEJ,IAAI,EAAEA,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,IAAI;QAAEG,QAAQ,EAAE;MAAE,CAAC,CAAC;IACnD;EAAC;IAAA;IAAA;IA6BD;AACF;AACA;AACA;AACA;IACE,iBAAQE,MAA2C,EAAE;MACnD,IAAIA,MAAM,CAACL,IAAI,KAAKM,SAAS,IAAKD,MAAM,CAACL,IAAI,GAAG,IAAI,IAAIK,MAAM,CAACL,IAAI,GAAG,CAAE,EACtE,MAAM,IAAIO,KAAK,CAAC,iCAAiC,CAAC;MAEpD,IAAMC,IAAI,GAAG,IAAIjB,IAAI,EAAE;MACvBiB,IAAI,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzBD,IAAI,CAACJ,OAAO,CAACI,IAAI,CAACE,OAAO,EAAE,GAAGC,IAAI,CAACC,KAAK,CAAC,QAAQ,GAAGP,MAAM,CAACL,IAAI,GAAG,IAAI,CAAC,CAAC;MACxE,IAAI,CAACR,OAAO,CAACgB,IAAI,CAAC;MAElB,IAAI,IAAI,CAACZ,WAAW,CAAChB,CAAC,IAAI,CAAC,EACzB,IAAI,CAACL,sBAAsB,CAAC,KAAK,CAAC,MAGlC,IAAI,CAACA,sBAAsB,CAAC,IAAI,CAAC;MAEnC,OAAO;QACLsC,OAAO,EAAER,MAAM,CAACL;MAClB,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,oBAAWK,MAAkD,EAAE;MAC7D;MACA,IAAI,CAACS,kBAAkB,CAACT,MAAM,CAACH,WAAW,CAAC,EAAE;MAE7C,OAAO;QACLA,WAAW,EAAEG,MAAM,CAACH;MACtB,CAAC;IACH;EAAC;EAAA;AAAA;AAGH,eAAe5B,WAAW"}
|
|
@@ -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) =>
|
|
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;
|
|
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":";+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;kBAE5DJ,KAAK,CAACpB,KAAK,CAACyB,QAAQ,CAAC,UAACC,KAAK,EAAK;oBAC9B,IAAIA,KAAK,CAACC,IAAI,KAAK,MAAM,EAAE;sBACzBD,KAAK,CAACE,UAAU,GAAG,IAAI;sBACvBF,KAAK,CAACG,aAAa,GAAG,IAAI;oBAC5B;kBACF,CAAC,CAAC;kBAEF,KAAI,CAAC7B,KAAK,CAAC8B,GAAG,CAACV,KAAK,CAACpB,KAAK,CAAC;kBAC3B,OAAOoB,KAAK;gBACd,CAAC,EACDf,UAAU,EACVC,OAAO,CAAC;cACZ;cAEA,IAAIC,UAAU,KAAK,KAAK,EAAE;gBACxBV,WAAW,CAACkC,OAAO,CAACf,UAAU,EAAE,KAAK,EAAEgB,SAAS,EAAE3B,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,CAAC8B,GAAG,CAACV,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,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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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 =
|
|
19
|
+
this.opt = {};
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
// [API
|
|
22
|
+
// [API:场景进出场初始化]
|
|
21
23
|
_createClass(Scene, [{
|
|
22
|
-
key: "
|
|
23
|
-
value: function
|
|
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
|
-
|
|
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
|
-
|
|
40
|
+
console.log('------:onGrowInCompleted');
|
|
41
|
+
|
|
42
|
+
// opt.onGrowInCompleted && opt.onGrowInCompleted()
|
|
33
43
|
sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success);
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
57
|
+
res({
|
|
58
|
+
success: true
|
|
59
|
+
});
|
|
41
60
|
});
|
|
42
61
|
}
|
|
43
62
|
|
|
44
63
|
// [API:场景进出场动画]
|
|
45
64
|
}, {
|
|
46
|
-
key: "
|
|
47
|
-
value: function
|
|
65
|
+
key: "growIn",
|
|
66
|
+
value: function growIn() {
|
|
48
67
|
var _this2 = this;
|
|
49
|
-
return new Promise(function (res
|
|
50
|
-
//
|
|
51
|
-
if (_this2.grow) {
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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","
|
|
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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"}
|