three-base 2.0.52 → 2.0.54
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/Fire/FireMaterial.d.ts +2 -2
- package/Fire/FireMaterial.js +2 -2
- package/Fire/FireMaterial.ts +2 -5
- package/MeshBase.d.ts +1 -1
- package/MeshBase.js +10 -4
- package/MeshBase.ts +9 -4
- package/ThreeBase.d.ts +13 -3
- package/Transition.d.ts +15 -13
- package/Transition.js +1 -1
- package/Transition.ts +12 -14
- package/package.json +1 -1
package/Fire/FireMaterial.d.ts
CHANGED
package/Fire/FireMaterial.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
5
|
* @Last Modified time: 2024-06-18 20:23:31
|
|
6
6
|
*/
|
|
7
|
-
import { AdditiveBlending, ShaderChunk, ShaderMaterial } from "three";
|
|
7
|
+
import { AdditiveBlending, Color, ShaderChunk, ShaderMaterial } from "three";
|
|
8
8
|
import threeLoader from "../threeLoader";
|
|
9
9
|
import { ONE_SPRITE_ROW_LENGTH } from "./FireGromtry";
|
|
10
10
|
// 火焰粒子材质
|
|
@@ -14,7 +14,7 @@ export default class FireMaterial extends ShaderMaterial {
|
|
|
14
14
|
}
|
|
15
15
|
// 材质参数
|
|
16
16
|
uniforms = {
|
|
17
|
-
color: { value:
|
|
17
|
+
color: { value: new Color() },
|
|
18
18
|
size: { value: 0.0 },
|
|
19
19
|
map: { value: threeLoader.getTexture("data:image/png;base64,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") },
|
|
20
20
|
time: { value: 0.0 },
|
package/Fire/FireMaterial.ts
CHANGED
|
@@ -5,12 +5,9 @@
|
|
|
5
5
|
* @Last Modified time: 2024-06-18 20:23:31
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { AdditiveBlending,
|
|
8
|
+
import { AdditiveBlending, Color, ShaderChunk, ShaderMaterial } from "three";
|
|
9
9
|
import threeLoader from "../threeLoader";
|
|
10
10
|
import { ONE_SPRITE_ROW_LENGTH } from "./FireGromtry";
|
|
11
|
-
import fireMapPNG from "./fireMap.png";
|
|
12
|
-
import fireMap2PNG from "./fireMap2.png";
|
|
13
|
-
import { map } from "lodash";
|
|
14
11
|
|
|
15
12
|
// 火焰粒子材质
|
|
16
13
|
export default class FireMaterial extends ShaderMaterial {
|
|
@@ -21,7 +18,7 @@ export default class FireMaterial extends ShaderMaterial {
|
|
|
21
18
|
|
|
22
19
|
// 材质参数
|
|
23
20
|
uniforms = {
|
|
24
|
-
color: { value:
|
|
21
|
+
color: { value: new Color() },
|
|
25
22
|
size: { value: 0.0 },
|
|
26
23
|
map: { value: threeLoader.getTexture("data:image/png;base64,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") },
|
|
27
24
|
time: { value: 0.0 },
|
package/MeshBase.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export default class MeshBase extends Group {
|
|
|
9
9
|
animationActions: {
|
|
10
10
|
[key: string]: AnimationAction;
|
|
11
11
|
};
|
|
12
|
-
loadModel(url: string): Promise<void>;
|
|
12
|
+
loadModel(url: string, suffix?: string): Promise<void>;
|
|
13
13
|
frustumCulled: boolean;
|
|
14
14
|
castShadow: boolean;
|
|
15
15
|
receiveShadow: boolean;
|
package/MeshBase.js
CHANGED
|
@@ -20,7 +20,8 @@ export default class MeshBase extends Group {
|
|
|
20
20
|
mixer;
|
|
21
21
|
//动画剪辑对象数组
|
|
22
22
|
animationActions = {};
|
|
23
|
-
|
|
23
|
+
// 如果url 是blob地址的话,就用suffix字段来制定模型的类型
|
|
24
|
+
async loadModel(url, suffix = "") {
|
|
24
25
|
if (!url) {
|
|
25
26
|
this.clear();
|
|
26
27
|
return;
|
|
@@ -30,14 +31,14 @@ export default class MeshBase extends Group {
|
|
|
30
31
|
if (!MeshBase.models.get(url) && !MeshBase.loadModeling.get(url)) {
|
|
31
32
|
MeshBase.loadModeling.set(url, true);
|
|
32
33
|
let modal = new Object3D();
|
|
33
|
-
if (/\.fbx$/i.test(url)) {
|
|
34
|
+
if (/\.fbx$/i.test(suffix || url)) {
|
|
34
35
|
await threeLoader.fbxLoader.loadAsync(url).then(res => {
|
|
35
36
|
modal = res;
|
|
36
37
|
}).catch(() => {
|
|
37
38
|
console.error(`${url},加载失败`);
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
|
-
else if (/\.(gltf|glb)$/i.test(url)) {
|
|
41
|
+
else if (/\.(gltf|glb)$/i.test(suffix || url)) {
|
|
41
42
|
await threeLoader.gltfLoader.loadAsync(url).then(res => {
|
|
42
43
|
modal = res.scene;
|
|
43
44
|
modal.animations = res.animations;
|
|
@@ -46,7 +47,12 @@ export default class MeshBase extends Group {
|
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
49
|
-
|
|
50
|
+
if (suffix) {
|
|
51
|
+
console.error(`${suffix},不支持的格式`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.error(`${url},不支持的格式,请尝试使用 suffix 参数来指定一下格式`);
|
|
55
|
+
}
|
|
50
56
|
}
|
|
51
57
|
MeshBase.models.set(url, modal);
|
|
52
58
|
MeshBase.loadModeling.set(url, false);
|
package/MeshBase.ts
CHANGED
|
@@ -29,7 +29,8 @@ export default class MeshBase extends Group {
|
|
|
29
29
|
//动画剪辑对象数组
|
|
30
30
|
animationActions: { [key: string]: AnimationAction } = {};
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
// 如果url 是blob地址的话,就用suffix字段来制定模型的类型
|
|
33
|
+
async loadModel(url: string, suffix: string = "") {
|
|
33
34
|
if (!url) {
|
|
34
35
|
this.clear();
|
|
35
36
|
return;
|
|
@@ -43,13 +44,13 @@ export default class MeshBase extends Group {
|
|
|
43
44
|
|
|
44
45
|
let modal = new Object3D();
|
|
45
46
|
|
|
46
|
-
if (/\.fbx$/i.test(url)) {
|
|
47
|
+
if (/\.fbx$/i.test(suffix || url)) {
|
|
47
48
|
await threeLoader.fbxLoader.loadAsync(url).then(res => {
|
|
48
49
|
modal = res;
|
|
49
50
|
}).catch(() => {
|
|
50
51
|
console.error(`${url},加载失败`);
|
|
51
52
|
})
|
|
52
|
-
} else if (/\.(gltf|glb)$/i.test(url)) {
|
|
53
|
+
} else if (/\.(gltf|glb)$/i.test(suffix || url)) {
|
|
53
54
|
await threeLoader.gltfLoader.loadAsync(url).then(res => {
|
|
54
55
|
modal = res.scene;
|
|
55
56
|
modal.animations = res.animations;
|
|
@@ -57,7 +58,11 @@ export default class MeshBase extends Group {
|
|
|
57
58
|
console.error(`${url},加载失败`);
|
|
58
59
|
})
|
|
59
60
|
} else {
|
|
60
|
-
|
|
61
|
+
if (suffix) {
|
|
62
|
+
console.error(`${suffix},不支持的格式`);
|
|
63
|
+
} else {
|
|
64
|
+
console.error(`${url},不支持的格式,请尝试使用 suffix 参数来指定一下格式`);
|
|
65
|
+
}
|
|
61
66
|
}
|
|
62
67
|
|
|
63
68
|
MeshBase.models.set(url, modal);
|
package/ThreeBase.d.ts
CHANGED
|
@@ -23,9 +23,19 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
23
23
|
controls: OrbitControls;
|
|
24
24
|
setContainer(div: HTMLDivElement | null): Promise<void>;
|
|
25
25
|
setSize(width: number, height: number): void;
|
|
26
|
-
controlsDistance: Transition
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
controlsDistance: Transition<{
|
|
27
|
+
distance: number;
|
|
28
|
+
}>;
|
|
29
|
+
controlsCenter: Transition<{
|
|
30
|
+
x: number;
|
|
31
|
+
y: number;
|
|
32
|
+
z: number;
|
|
33
|
+
}>;
|
|
34
|
+
controlsPosition: Transition<{
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
z: number;
|
|
38
|
+
}>;
|
|
29
39
|
gridHelper: GridHelper;
|
|
30
40
|
axesHelper: AxesHelper;
|
|
31
41
|
frame: number;
|
package/Transition.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
export default class Transition<T extends {
|
|
2
2
|
[key: string]: number;
|
|
3
|
-
}
|
|
4
|
-
export default class Transition {
|
|
3
|
+
}> {
|
|
5
4
|
/**
|
|
6
5
|
*Creates an instance of transition.
|
|
7
6
|
* @param {{ [key: string]: number }} // 初始值
|
|
@@ -9,8 +8,8 @@ export default class Transition {
|
|
|
9
8
|
* @param {number} [duration=1000] // 过渡时间
|
|
10
9
|
* @memberof transition
|
|
11
10
|
*/
|
|
12
|
-
constructor(param
|
|
13
|
-
_keys: Array<string>;
|
|
11
|
+
constructor(param: T, bezier?: [number, number, number, number], duration?: number);
|
|
12
|
+
_keys: Array<keyof T & string>;
|
|
14
13
|
_bezier: [number, number, number, number];
|
|
15
14
|
_Xbezier: [number, number, number, number];
|
|
16
15
|
_Ybezier: [number, number, number, number];
|
|
@@ -27,17 +26,20 @@ export default class Transition {
|
|
|
27
26
|
run({ timeTemp }: any): this;
|
|
28
27
|
runbindThis: any;
|
|
29
28
|
onChange(onChangeCall: (josn: {
|
|
30
|
-
[key
|
|
29
|
+
[key in keyof T]: number;
|
|
31
30
|
}) => void): this;
|
|
32
|
-
get(key:
|
|
33
|
-
set(param:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
get(key: keyof T & string): number;
|
|
32
|
+
set(param: {
|
|
33
|
+
[key in keyof T & string]: number;
|
|
34
|
+
}): Promise<this>;
|
|
35
|
+
reset(param: {
|
|
36
|
+
[key in keyof T & string]: number;
|
|
37
|
+
}): this;
|
|
38
|
+
getKeys(): Array<keyof T & string>;
|
|
39
|
+
hasKey(key: keyof T & string): boolean;
|
|
37
40
|
getJson(): {
|
|
38
|
-
[key
|
|
41
|
+
[key in keyof T]: number;
|
|
39
42
|
};
|
|
40
43
|
_isDone: boolean;
|
|
41
44
|
isDone(): boolean;
|
|
42
45
|
}
|
|
43
|
-
export {};
|
package/Transition.js
CHANGED
|
@@ -20,7 +20,7 @@ export default class Transition {
|
|
|
20
20
|
* @param {number} [duration=1000] // 过渡时间
|
|
21
21
|
* @memberof transition
|
|
22
22
|
*/
|
|
23
|
-
constructor(param
|
|
23
|
+
constructor(param, bezier = [0.8, 0, 0.2, 1], duration = 500) {
|
|
24
24
|
this.setDuration(duration);
|
|
25
25
|
this.setBezier(bezier);
|
|
26
26
|
this.reset(param);
|
package/Transition.ts
CHANGED
|
@@ -14,10 +14,8 @@ function bezier(arr: [number, number, number, number], t: number) {
|
|
|
14
14
|
return result;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
interface TParam { [key: string]: number }
|
|
18
|
-
|
|
19
17
|
// 过渡动画插件
|
|
20
|
-
export default class Transition {
|
|
18
|
+
export default class Transition<T extends { [key: string]: number }> {
|
|
21
19
|
|
|
22
20
|
/**
|
|
23
21
|
*Creates an instance of transition.
|
|
@@ -27,7 +25,7 @@ export default class Transition {
|
|
|
27
25
|
* @memberof transition
|
|
28
26
|
*/
|
|
29
27
|
constructor(
|
|
30
|
-
param:
|
|
28
|
+
param: T,
|
|
31
29
|
bezier: [number, number, number, number] = [0.8, 0, 0.2, 1],
|
|
32
30
|
duration = 500
|
|
33
31
|
) {
|
|
@@ -40,7 +38,7 @@ export default class Transition {
|
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
// 所有的 key 的枚举
|
|
43
|
-
_keys: Array<string> = [];
|
|
41
|
+
_keys: Array<keyof T & string> = [];
|
|
44
42
|
|
|
45
43
|
// 贝塞尔曲线
|
|
46
44
|
_bezier: [number, number, number, number] = [0.8, 0, 0.2, 1];
|
|
@@ -84,7 +82,7 @@ export default class Transition {
|
|
|
84
82
|
// 存储 每个参数的 起始位置 起始时间 终止位置 终止时间
|
|
85
83
|
_: { [key: string]: number } = {};
|
|
86
84
|
|
|
87
|
-
private onChangeCall = (josn: { [key
|
|
85
|
+
private onChangeCall = (josn: { [key in keyof T]: number }) => { };
|
|
88
86
|
|
|
89
87
|
// 执行过度动画
|
|
90
88
|
run({ timeTemp }: any) {
|
|
@@ -100,14 +98,14 @@ export default class Transition {
|
|
|
100
98
|
runbindThis = this.run.bind(this);
|
|
101
99
|
|
|
102
100
|
// 设置动画对象的回调事件
|
|
103
|
-
onChange(onChangeCall: (josn: { [key
|
|
101
|
+
onChange(onChangeCall: (josn: { [key in keyof T]: number }) => void): this {
|
|
104
102
|
this.onChangeCall = onChangeCall;
|
|
105
103
|
this.onChangeCall(this.getJson());
|
|
106
104
|
return this;
|
|
107
105
|
}
|
|
108
106
|
|
|
109
107
|
// 计算当前 key 的值
|
|
110
|
-
get(key:
|
|
108
|
+
get(key: keyof T & string): number {
|
|
111
109
|
|
|
112
110
|
key = String(key);
|
|
113
111
|
|
|
@@ -147,7 +145,7 @@ export default class Transition {
|
|
|
147
145
|
return 0;
|
|
148
146
|
}
|
|
149
147
|
|
|
150
|
-
async set(param:
|
|
148
|
+
async set(param: { [key in keyof T & string]: number }): Promise<this> {
|
|
151
149
|
|
|
152
150
|
let timetemp = performance.now() + this._delay;;
|
|
153
151
|
|
|
@@ -197,7 +195,7 @@ export default class Transition {
|
|
|
197
195
|
return this;
|
|
198
196
|
}
|
|
199
197
|
// 重置起始和终止位置
|
|
200
|
-
reset(param:
|
|
198
|
+
reset(param: { [key in keyof T & string]: number }): this {
|
|
201
199
|
|
|
202
200
|
for (let key in param) {
|
|
203
201
|
|
|
@@ -219,20 +217,20 @@ export default class Transition {
|
|
|
219
217
|
}
|
|
220
218
|
|
|
221
219
|
// 获取过渡对象上面的key
|
|
222
|
-
getKeys(): string
|
|
220
|
+
getKeys(): Array<keyof T & string> {
|
|
223
221
|
return [...this._keys];
|
|
224
222
|
}
|
|
225
223
|
|
|
226
224
|
// 判断是否有这个参数
|
|
227
|
-
hasKey(key: string): boolean {
|
|
225
|
+
hasKey(key: keyof T & string): boolean {
|
|
228
226
|
return this._keys.includes(key);
|
|
229
227
|
}
|
|
230
228
|
|
|
231
229
|
// 获取全部参数
|
|
232
|
-
getJson(): { [key
|
|
230
|
+
getJson(): { [key in keyof T]: number } {
|
|
233
231
|
let keys = this.getKeys();
|
|
234
232
|
|
|
235
|
-
let json: { [key
|
|
233
|
+
let json: { [key in keyof T]: number } = {} as T;
|
|
236
234
|
|
|
237
235
|
keys.map(key => {
|
|
238
236
|
json[key] = this.get(key);
|