Skip to content

Commit 858d35d

Browse files
fix: modernize & tree-shake (#241)
1 parent d1309f9 commit 858d35d

File tree

362 files changed

+14957
-25400
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

362 files changed

+14957
-25400
lines changed

package.json

+4-5
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,18 @@
2626
"module": "./dist/index.mjs",
2727
"sideEffects": false,
2828
"devDependencies": {
29-
"@types/three": "^0.139.0",
29+
"@types/three": "^0.128.0",
3030
"copyfiles": "^2.4.1",
3131
"prettier": "^2.2.1",
3232
"rimraf": "^3.0.2",
33-
"three": "^0.139.2",
34-
"typescript": "^4.2.4",
33+
"three": "^0.128.0",
34+
"typescript": "^4.7.4",
3535
"vite": "^4.3.8"
3636
},
3737
"dependencies": {
3838
"@types/draco3d": "^1.4.0",
3939
"@types/offscreencanvas": "^2019.6.4",
4040
"@types/webxr": "^0.5.2",
41-
"@webgpu/glslang": "^0.0.15",
4241
"chevrotain": "^10.1.2",
4342
"draco3d": "^1.4.1",
4443
"fflate": "^0.6.9",
@@ -49,7 +48,7 @@
4948
"zstddec": "^0.0.2"
5049
},
5150
"peerDependencies": {
52-
"three": ">=0.122.0"
51+
"three": ">=0.128.0"
5352
},
5453
"scripts": {
5554
"build": "rimraf dist && vite build && tsc --emitDeclarationOnly && copyfiles -u 1 \"src/**/*.d.ts\" dist",

src/animation/AnimationClipCreator.js

+63-63
Original file line numberDiff line numberDiff line change
@@ -7,98 +7,98 @@ import {
77
VectorKeyframeTrack,
88
} from 'three'
99

10-
const AnimationClipCreator = () => {}
10+
class AnimationClipCreator {
11+
static CreateRotationAnimation(period, axis = 'x') {
12+
const times = [0, period],
13+
values = [0, 360]
1114

12-
AnimationClipCreator.CreateRotationAnimation = (period, axis) => {
13-
const times = [0, period],
14-
values = [0, 360]
15+
const trackName = '.rotation[' + axis + ']'
1516

16-
axis = axis || 'x'
17-
const trackName = `.rotation[${axis}]`
17+
const track = new NumberKeyframeTrack(trackName, times, values)
1818

19-
const track = new NumberKeyframeTrack(trackName, times, values)
19+
return new AnimationClip(null, period, [track])
20+
}
2021

21-
return new AnimationClip(null, period, [track])
22-
}
22+
static CreateScaleAxisAnimation(period, axis = 'x') {
23+
const times = [0, period],
24+
values = [0, 1]
2325

24-
AnimationClipCreator.CreateScaleAxisAnimation = (period, axis) => {
25-
const times = [0, period],
26-
values = [0, 1]
26+
const trackName = '.scale[' + axis + ']'
2727

28-
axis = axis || 'x'
29-
const trackName = `.scale[${axis}]`
28+
const track = new NumberKeyframeTrack(trackName, times, values)
3029

31-
const track = new NumberKeyframeTrack(trackName, times, values)
30+
return new AnimationClip(null, period, [track])
31+
}
3232

33-
return new AnimationClip(null, period, [track])
34-
}
33+
static CreateShakeAnimation(duration, shakeScale) {
34+
const times = [],
35+
values = [],
36+
tmp = new Vector3()
3537

36-
AnimationClipCreator.CreateShakeAnimation = (duration, shakeScale) => {
37-
const times = [],
38-
values = [],
39-
tmp = new Vector3()
38+
for (let i = 0; i < duration * 10; i++) {
39+
times.push(i / 10)
4040

41-
for (let i = 0; i < duration * 10; i++) {
42-
times.push(i / 10)
41+
tmp
42+
.set(Math.random() * 2.0 - 1.0, Math.random() * 2.0 - 1.0, Math.random() * 2.0 - 1.0)
43+
.multiply(shakeScale)
44+
.toArray(values, values.length)
45+
}
4346

44-
tmp
45-
.set(Math.random() * 2.0 - 1.0, Math.random() * 2.0 - 1.0, Math.random() * 2.0 - 1.0)
46-
.multiply(shakeScale)
47-
.toArray(values, values.length)
48-
}
47+
const trackName = '.position'
4948

50-
const trackName = '.position'
49+
const track = new VectorKeyframeTrack(trackName, times, values)
5150

52-
const track = new VectorKeyframeTrack(trackName, times, values)
51+
return new AnimationClip(null, duration, [track])
52+
}
5353

54-
return new AnimationClip(null, duration, [track])
55-
}
54+
static CreatePulsationAnimation(duration, pulseScale) {
55+
const times = [],
56+
values = [],
57+
tmp = new Vector3()
5658

57-
AnimationClipCreator.CreatePulsationAnimation = (duration, pulseScale) => {
58-
const times = [],
59-
values = [],
60-
tmp = new Vector3()
59+
for (let i = 0; i < duration * 10; i++) {
60+
times.push(i / 10)
6161

62-
for (let i = 0; i < duration * 10; i++) {
63-
times.push(i / 10)
62+
const scaleFactor = Math.random() * pulseScale
63+
tmp.set(scaleFactor, scaleFactor, scaleFactor).toArray(values, values.length)
64+
}
6465

65-
const scaleFactor = Math.random() * pulseScale
66-
tmp.set(scaleFactor, scaleFactor, scaleFactor).toArray(values, values.length)
67-
}
66+
const trackName = '.scale'
6867

69-
const trackName = '.scale'
68+
const track = new VectorKeyframeTrack(trackName, times, values)
7069

71-
const track = new VectorKeyframeTrack(trackName, times, values)
70+
return new AnimationClip(null, duration, [track])
71+
}
7272

73-
return new AnimationClip(null, duration, [track])
74-
}
73+
static CreateVisibilityAnimation(duration) {
74+
const times = [0, duration / 2, duration],
75+
values = [true, false, true]
7576

76-
AnimationClipCreator.CreateVisibilityAnimation = (duration) => {
77-
const times = [0, duration / 2, duration],
78-
values = [true, false, true]
77+
const trackName = '.visible'
7978

80-
const trackName = '.visible'
79+
const track = new BooleanKeyframeTrack(trackName, times, values)
8180

82-
const track = new BooleanKeyframeTrack(trackName, times, values)
81+
return new AnimationClip(null, duration, [track])
82+
}
8383

84-
return new AnimationClip(null, duration, [track])
85-
}
84+
static CreateMaterialColorAnimation(duration, colors) {
85+
const times = [],
86+
values = [],
87+
timeStep = duration / colors.length
8688

87-
AnimationClipCreator.CreateMaterialColorAnimation = (duration, colors) => {
88-
const times = [],
89-
values = [],
90-
timeStep = duration / colors.length
89+
for (let i = 0; i < colors.length; i++) {
90+
times.push(i * timeStep)
9191

92-
for (let i = 0; i <= colors.length; i++) {
93-
times.push(i * timeStep)
94-
values.push(colors[i % colors.length])
95-
}
92+
const color = colors[i]
93+
values.push(color.r, color.g, color.b)
94+
}
9695

97-
const trackName = '.material[0].color'
96+
const trackName = '.material.color'
9897

99-
const track = new ColorKeyframeTrack(trackName, times, values)
98+
const track = new ColorKeyframeTrack(trackName, times, values)
10099

101-
return new AnimationClip(null, duration, [track])
100+
return new AnimationClip(null, duration, [track])
101+
}
102102
}
103103

104104
export { AnimationClipCreator }

src/animation/CCDIKSolver.d.ts

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1-
import { Object3D, SkinnedMesh } from 'three'
1+
import { Object3D, SkinnedMesh, Vector3 } from 'three'
22

33
// tslint:disable-next-line:interface-name
44
export interface IKS {
55
effector: number
66
iteration: number
7-
links: {
7+
links: Array<{
88
enabled: boolean
99
index: number
10-
}
10+
limitation?: Vector3
11+
rotationMin?: Vector3
12+
rotationMax?: Vector3
13+
}>
14+
minAngle: number
1115
maxAngle: number
1216
target: number
1317
}
@@ -21,5 +25,6 @@ export class CCDIKSolver {
2125
}
2226

2327
export class CCDIKHelper extends Object3D {
24-
constructor(mesh: SkinnedMesh, iks: IKS[])
28+
constructor(mesh: SkinnedMesh, iks?: IKS[], sphereSize?: number)
29+
dispose(): void
2530
}

0 commit comments

Comments
 (0)