@p100-web/core-three 100.1.1 → 100.1.3
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/App.d.ts +41 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/App.js +171 -0
- package/dist/App.js.map +1 -0
- package/dist/ComponentFactory.d.ts +5 -0
- package/dist/ComponentFactory.d.ts.map +1 -0
- package/dist/ComponentFactory.js +13 -0
- package/dist/ComponentFactory.js.map +1 -0
- package/dist/ThreeCanvas.d.ts +56 -0
- package/dist/ThreeCanvas.d.ts.map +1 -0
- package/dist/ThreeCanvas.js +418 -0
- package/dist/ThreeCanvas.js.map +1 -0
- package/dist/ThreeEngine.d.ts +24 -0
- package/dist/ThreeEngine.d.ts.map +1 -0
- package/dist/ThreeEngine.js +102 -0
- package/dist/ThreeEngine.js.map +1 -0
- package/dist/ThreeNodeRenderer.d.ts +42 -0
- package/dist/ThreeNodeRenderer.d.ts.map +1 -0
- package/dist/ThreeNodeRenderer.js +119 -0
- package/dist/ThreeNodeRenderer.js.map +1 -0
- package/dist/animations/ModelAnimation.d.ts +21 -0
- package/dist/animations/ModelAnimation.d.ts.map +1 -0
- package/dist/animations/ModelAnimation.js +45 -0
- package/dist/animations/ModelAnimation.js.map +1 -0
- package/dist/assets/ThreeAssetLoader.d.ts +98 -0
- package/dist/assets/ThreeAssetLoader.d.ts.map +1 -0
- package/dist/assets/ThreeAssetLoader.js +495 -0
- package/dist/assets/ThreeAssetLoader.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/pcomponents/PAnimator.d.ts +24 -0
- package/dist/pcomponents/PAnimator.d.ts.map +1 -0
- package/dist/pcomponents/PAnimator.js +133 -0
- package/dist/pcomponents/PAnimator.js.map +1 -0
- package/dist/pcomponents/PBackground.d.ts +15 -0
- package/dist/pcomponents/PBackground.d.ts.map +1 -0
- package/dist/pcomponents/PBackground.js +104 -0
- package/dist/pcomponents/PBackground.js.map +1 -0
- package/dist/pcomponents/PBasicMaterial.d.ts +20 -0
- package/dist/pcomponents/PBasicMaterial.d.ts.map +1 -0
- package/dist/pcomponents/PBasicMaterial.js +161 -0
- package/dist/pcomponents/PBasicMaterial.js.map +1 -0
- package/dist/pcomponents/PCollider.d.ts +18 -0
- package/dist/pcomponents/PCollider.d.ts.map +1 -0
- package/dist/pcomponents/PCollider.js +59 -0
- package/dist/pcomponents/PCollider.js.map +1 -0
- package/dist/pcomponents/PCubeGeometry.d.ts +8 -0
- package/dist/pcomponents/PCubeGeometry.d.ts.map +1 -0
- package/dist/pcomponents/PCubeGeometry.js +23 -0
- package/dist/pcomponents/PCubeGeometry.js.map +1 -0
- package/dist/pcomponents/PEnvironment.d.ts +12 -0
- package/dist/pcomponents/PEnvironment.d.ts.map +1 -0
- package/dist/pcomponents/PEnvironment.js +39 -0
- package/dist/pcomponents/PEnvironment.js.map +1 -0
- package/dist/pcomponents/PImageCache.d.ts +11 -0
- package/dist/pcomponents/PImageCache.d.ts.map +1 -0
- package/dist/pcomponents/PImageCache.js +35 -0
- package/dist/pcomponents/PImageCache.js.map +1 -0
- package/dist/pcomponents/PLight.d.ts +8 -0
- package/dist/pcomponents/PLight.d.ts.map +1 -0
- package/dist/pcomponents/PLight.js +45 -0
- package/dist/pcomponents/PLight.js.map +1 -0
- package/dist/pcomponents/PLightDirectional.d.ts +8 -0
- package/dist/pcomponents/PLightDirectional.d.ts.map +1 -0
- package/dist/pcomponents/PLightDirectional.js +36 -0
- package/dist/pcomponents/PLightDirectional.js.map +1 -0
- package/dist/pcomponents/PMaskedMaterial.d.ts +17 -0
- package/dist/pcomponents/PMaskedMaterial.d.ts.map +1 -0
- package/dist/pcomponents/PMaskedMaterial.js +195 -0
- package/dist/pcomponents/PMaskedMaterial.js.map +1 -0
- package/dist/pcomponents/PMaterialModifier.d.ts +8 -0
- package/dist/pcomponents/PMaterialModifier.d.ts.map +1 -0
- package/dist/pcomponents/PMaterialModifier.js +22 -0
- package/dist/pcomponents/PMaterialModifier.js.map +1 -0
- package/dist/pcomponents/PModelAnnotation.d.ts +11 -0
- package/dist/pcomponents/PModelAnnotation.d.ts.map +1 -0
- package/dist/pcomponents/PModelAnnotation.js +21 -0
- package/dist/pcomponents/PModelAnnotation.js.map +1 -0
- package/dist/pcomponents/PModelAnnotations.d.ts +10 -0
- package/dist/pcomponents/PModelAnnotations.d.ts.map +1 -0
- package/dist/pcomponents/PModelAnnotations.js +25 -0
- package/dist/pcomponents/PModelAnnotations.js.map +1 -0
- package/dist/pcomponents/PModelGLTF.d.ts +15 -0
- package/dist/pcomponents/PModelGLTF.d.ts.map +1 -0
- package/dist/pcomponents/PModelGLTF.js +111 -0
- package/dist/pcomponents/PModelGLTF.js.map +1 -0
- package/dist/pcomponents/PModelNode.d.ts +13 -0
- package/dist/pcomponents/PModelNode.d.ts.map +1 -0
- package/dist/pcomponents/PModelNode.js +71 -0
- package/dist/pcomponents/PModelNode.js.map +1 -0
- package/dist/pcomponents/PPhysicalMaterial.d.ts +13 -0
- package/dist/pcomponents/PPhysicalMaterial.d.ts.map +1 -0
- package/dist/pcomponents/PPhysicalMaterial.js +100 -0
- package/dist/pcomponents/PPhysicalMaterial.js.map +1 -0
- package/dist/pcomponents/PPlaneGeometry.d.ts +8 -0
- package/dist/pcomponents/PPlaneGeometry.d.ts.map +1 -0
- package/dist/pcomponents/PPlaneGeometry.js +23 -0
- package/dist/pcomponents/PPlaneGeometry.js.map +1 -0
- package/dist/pcomponents/PProjectRoot.d.ts +8 -0
- package/dist/pcomponents/PProjectRoot.d.ts.map +1 -0
- package/dist/pcomponents/PProjectRoot.js +24 -0
- package/dist/pcomponents/PProjectRoot.js.map +1 -0
- package/dist/pcomponents/PSlider.d.ts +18 -0
- package/dist/pcomponents/PSlider.d.ts.map +1 -0
- package/dist/pcomponents/PSlider.js +62 -0
- package/dist/pcomponents/PSlider.js.map +1 -0
- package/dist/pcomponents/PSound.d.ts +17 -0
- package/dist/pcomponents/PSound.d.ts.map +1 -0
- package/dist/pcomponents/PSound.js +119 -0
- package/dist/pcomponents/PSound.js.map +1 -0
- package/dist/pcomponents/PSphereGeometry.d.ts +9 -0
- package/dist/pcomponents/PSphereGeometry.d.ts.map +1 -0
- package/dist/pcomponents/PSphereGeometry.js +24 -0
- package/dist/pcomponents/PSphereGeometry.js.map +1 -0
- package/dist/pcomponents/PSprite.d.ts +13 -0
- package/dist/pcomponents/PSprite.d.ts.map +1 -0
- package/dist/pcomponents/PSprite.js +73 -0
- package/dist/pcomponents/PSprite.js.map +1 -0
- package/dist/pcomponents/PSpriteSheet.d.ts +13 -0
- package/dist/pcomponents/PSpriteSheet.d.ts.map +1 -0
- package/dist/pcomponents/PSpriteSheet.js +49 -0
- package/dist/pcomponents/PSpriteSheet.js.map +1 -0
- package/dist/pcomponents/PText.d.ts +10 -0
- package/dist/pcomponents/PText.d.ts.map +1 -0
- package/dist/pcomponents/PText.js +44 -0
- package/dist/pcomponents/PText.js.map +1 -0
- package/dist/pcomponents/PVideoPlayer.d.ts +5 -0
- package/dist/pcomponents/PVideoPlayer.d.ts.map +1 -0
- package/dist/pcomponents/PVideoPlayer.js +12 -0
- package/dist/pcomponents/PVideoPlayer.js.map +1 -0
- package/dist/pcomponents.d.ts +27 -0
- package/dist/pcomponents.d.ts.map +1 -0
- package/dist/pcomponents.js +33 -0
- package/dist/pcomponents.js.map +1 -0
- package/dist/postprocessing/PSSRPass.d.ts +19 -0
- package/dist/postprocessing/PSSRPass.d.ts.map +1 -0
- package/dist/postprocessing/PSSRPass.js +69 -0
- package/dist/postprocessing/PSSRPass.js.map +1 -0
- package/dist/postprocessing/ThreeJsPostProcessor.d.ts +32 -0
- package/dist/postprocessing/ThreeJsPostProcessor.d.ts.map +1 -0
- package/dist/postprocessing/ThreeJsPostProcessor.js +264 -0
- package/dist/postprocessing/ThreeJsPostProcessor.js.map +1 -0
- package/dist/three/ColliderObject3D.d.ts +19 -0
- package/dist/three/ColliderObject3D.d.ts.map +1 -0
- package/dist/three/ColliderObject3D.js +96 -0
- package/dist/three/ColliderObject3D.js.map +1 -0
- package/dist/three/FreeCameraControls.d.ts +32 -0
- package/dist/three/FreeCameraControls.d.ts.map +1 -0
- package/dist/three/FreeCameraControls.js +173 -0
- package/dist/three/FreeCameraControls.js.map +1 -0
- package/dist/three/OrbitCameraControls.d.ts +32 -0
- package/dist/three/OrbitCameraControls.d.ts.map +1 -0
- package/dist/three/OrbitCameraControls.js +247 -0
- package/dist/three/OrbitCameraControls.js.map +1 -0
- package/dist/three/VrCameraControls.d.ts +30 -0
- package/dist/three/VrCameraControls.d.ts.map +1 -0
- package/dist/three/VrCameraControls.js +140 -0
- package/dist/three/VrCameraControls.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Euler, Group, Vector3, Quaternion } from "three";
|
|
2
|
+
export default class ThreeNodeRenderer {
|
|
3
|
+
constructor(context) {
|
|
4
|
+
this._coordinates = context.getCoordinates();
|
|
5
|
+
}
|
|
6
|
+
show(node) {
|
|
7
|
+
const el = node.getEl();
|
|
8
|
+
el.visible = true;
|
|
9
|
+
}
|
|
10
|
+
hide(node) {
|
|
11
|
+
const el = node.getEl();
|
|
12
|
+
el.visible = false;
|
|
13
|
+
}
|
|
14
|
+
render(node) {
|
|
15
|
+
const el = node.getEl();
|
|
16
|
+
el.userData.id = node.id;
|
|
17
|
+
el.name = node.name;
|
|
18
|
+
}
|
|
19
|
+
unrender(node) {
|
|
20
|
+
const el = node.getEl();
|
|
21
|
+
el.removeFromParent();
|
|
22
|
+
delete el.userData.id;
|
|
23
|
+
}
|
|
24
|
+
getForwardVector(node) {
|
|
25
|
+
const el = node.getEl();
|
|
26
|
+
const forward = new Vector3(0, 0, -1); // local forward
|
|
27
|
+
forward.applyQuaternion(el.getWorldQuaternion(new Quaternion()));
|
|
28
|
+
return forward;
|
|
29
|
+
}
|
|
30
|
+
getWorldPosition(node) {
|
|
31
|
+
const position = new Vector3();
|
|
32
|
+
const el = node.getEl();
|
|
33
|
+
el.getWorldPosition(position);
|
|
34
|
+
return position;
|
|
35
|
+
}
|
|
36
|
+
getPositionVector(node) {
|
|
37
|
+
return node.getEl().position;
|
|
38
|
+
}
|
|
39
|
+
getRotationVector(node) {
|
|
40
|
+
return node.getEl().rotation;
|
|
41
|
+
}
|
|
42
|
+
getScaleVector(node) {
|
|
43
|
+
return node.getEl().scale;
|
|
44
|
+
}
|
|
45
|
+
getIMaterial(node) {
|
|
46
|
+
return node.getEl().material || null;
|
|
47
|
+
}
|
|
48
|
+
copyPosition(node, vector) {
|
|
49
|
+
node.getEl().position.copy(vector);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Attach a node to the camera
|
|
53
|
+
*/
|
|
54
|
+
addToCamera(child) {
|
|
55
|
+
const pcanvas = child.context.getPCanvas().getThreeCamera();
|
|
56
|
+
pcanvas.add(child.getEl());
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Add a node to its parent in the 3d world
|
|
60
|
+
*/
|
|
61
|
+
addToParent(child) {
|
|
62
|
+
child.parent?.getEl().add(child.getEl());
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Remove a node from its parent in the 3d world
|
|
66
|
+
*/
|
|
67
|
+
removeFromParent(child) {
|
|
68
|
+
child.getEl().removeFromParent();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Called when we have both an el and a transform
|
|
72
|
+
*/
|
|
73
|
+
updateElTransform(node) {
|
|
74
|
+
const transform = node.transform;
|
|
75
|
+
if (!transform || !node.hasEl())
|
|
76
|
+
throw new Error("Missing el or transform");
|
|
77
|
+
this.setPosition(node, transform.position);
|
|
78
|
+
this.setRotation(node, transform.rotation);
|
|
79
|
+
this.setScale(node, transform.scale);
|
|
80
|
+
}
|
|
81
|
+
setPosition(node, vector) {
|
|
82
|
+
const el = node.getEl();
|
|
83
|
+
el.position.set(vector.x, vector.y, vector.z);
|
|
84
|
+
}
|
|
85
|
+
setRotation(node, vector) {
|
|
86
|
+
const el = node.getEl();
|
|
87
|
+
const rotation = new Euler(vector.x, vector.y, vector.z);
|
|
88
|
+
el.rotation.copy(rotation);
|
|
89
|
+
}
|
|
90
|
+
setScale(node, vector) {
|
|
91
|
+
const el = node.getEl();
|
|
92
|
+
// el.scale.set(vector.x * (node.getInverted() ? -1 : 1), vector.y, vector.z);
|
|
93
|
+
el.scale.set(vector.x, vector.y, vector.z);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Probably only used in editor, update the PNode's PTransform with the current
|
|
97
|
+
* values of the element.
|
|
98
|
+
*/
|
|
99
|
+
updatePTransform(node) {
|
|
100
|
+
if (!node.transform)
|
|
101
|
+
return;
|
|
102
|
+
const el = node.getEl();
|
|
103
|
+
// Position
|
|
104
|
+
node.transform.position.copy(el.position);
|
|
105
|
+
// Rotation
|
|
106
|
+
const rotation = el.rotation.clone();
|
|
107
|
+
node.transform.rotation.copy(rotation);
|
|
108
|
+
// Scale
|
|
109
|
+
const scale = el.scale.clone();
|
|
110
|
+
node.transform.scale.copy(scale);
|
|
111
|
+
node.transform.round();
|
|
112
|
+
}
|
|
113
|
+
set_default_el(node) {
|
|
114
|
+
const el = new Group();
|
|
115
|
+
el.name = node.name;
|
|
116
|
+
node.set_el(el);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=ThreeNodeRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreeNodeRenderer.js","sourceRoot":"","sources":["../src/ThreeNodeRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IModelAnimation } from "@p100-web/core";
|
|
2
|
+
import { AnimationMixer, AnimationAction } from "three";
|
|
3
|
+
export default class ModelAnimation implements IModelAnimation {
|
|
4
|
+
name: string;
|
|
5
|
+
mixer: AnimationMixer;
|
|
6
|
+
action: AnimationAction;
|
|
7
|
+
constructor(mixer: AnimationMixer, action: AnimationAction);
|
|
8
|
+
getDuration(): number;
|
|
9
|
+
addFinishedListener(cb: () => void): void;
|
|
10
|
+
removeFinishedListener(cb: () => void): void;
|
|
11
|
+
isRunning(): boolean;
|
|
12
|
+
play(): void;
|
|
13
|
+
playSegment(): void;
|
|
14
|
+
stop(): void;
|
|
15
|
+
setLoop(loop: boolean): void;
|
|
16
|
+
update(dt: number): void;
|
|
17
|
+
setTime(time: number): void;
|
|
18
|
+
getTime(): number;
|
|
19
|
+
setPaused(value: boolean): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ModelAnimation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelAnimation.d.ts","sourceRoot":"","sources":["../../src/animations/ModelAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAwB,MAAM,OAAO,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,eAAe;IAC5D,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;gBAEZ,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe;IAM1D,WAAW,IAAI,MAAM;IAIrB,mBAAmB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIzC,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAI5C,SAAS,IAAI,OAAO;IAIpB,IAAI,IAAI,IAAI;IAIZ,WAAW,IAAI,IAAI;IAInB,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAI5B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,IAAI,MAAM;IAIjB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAGhC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { LoopOnce, LoopRepeat } from "three";
|
|
2
|
+
export default class ModelAnimation {
|
|
3
|
+
constructor(mixer, action) {
|
|
4
|
+
this.name = action.getClip().name;
|
|
5
|
+
this.mixer = mixer;
|
|
6
|
+
this.action = action;
|
|
7
|
+
}
|
|
8
|
+
getDuration() {
|
|
9
|
+
return this.action.getClip().duration || 0;
|
|
10
|
+
}
|
|
11
|
+
addFinishedListener(cb) {
|
|
12
|
+
this.mixer.addEventListener("finished", cb);
|
|
13
|
+
}
|
|
14
|
+
removeFinishedListener(cb) {
|
|
15
|
+
this.mixer.removeEventListener("finished", cb);
|
|
16
|
+
}
|
|
17
|
+
isRunning() {
|
|
18
|
+
return this.action.isRunning() || false;
|
|
19
|
+
}
|
|
20
|
+
play() {
|
|
21
|
+
this.action.play();
|
|
22
|
+
}
|
|
23
|
+
playSegment() {
|
|
24
|
+
// not supported
|
|
25
|
+
}
|
|
26
|
+
stop() {
|
|
27
|
+
this.action.stop();
|
|
28
|
+
}
|
|
29
|
+
setLoop(loop) {
|
|
30
|
+
this.action.setLoop(loop ? LoopRepeat : LoopOnce, Infinity);
|
|
31
|
+
}
|
|
32
|
+
update(dt) {
|
|
33
|
+
this.mixer.update(dt);
|
|
34
|
+
}
|
|
35
|
+
setTime(time) {
|
|
36
|
+
this.action.time = time;
|
|
37
|
+
}
|
|
38
|
+
getTime() {
|
|
39
|
+
return this.action.time;
|
|
40
|
+
}
|
|
41
|
+
setPaused(value) {
|
|
42
|
+
this.action.paused = value;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ModelAnimation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelAnimation.js","sourceRoot":"","sources":["../../src/animations/ModelAnimation.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE9E,MAAM,CAAC,OAAO,OAAO,cAAc;IAMjC,YAAY,KAAqB,EAAE,MAAuB;QACxD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,mBAAmB,CAAC,EAAc;QAChC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,sBAAsB,CAAC,EAAc;QACnC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACT,gBAAgB;IAClB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAa;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,KAAc;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { PFile, AssetLoader, GameContext } from "@p100-web/core";
|
|
2
|
+
import { Texture, VideoTexture, Object3D, AnimationMixer, AnimationAction, Group } from "three";
|
|
3
|
+
import { type GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
4
|
+
declare abstract class AbstractTask {
|
|
5
|
+
}
|
|
6
|
+
declare class TextureTask extends AbstractTask {
|
|
7
|
+
texture: Texture | null;
|
|
8
|
+
pfile: PFile;
|
|
9
|
+
onSuccess?: (task: TextureTask) => void;
|
|
10
|
+
constructor(pfile: PFile);
|
|
11
|
+
}
|
|
12
|
+
declare class VideoTextureTask extends AbstractTask {
|
|
13
|
+
texture: VideoTexture | null;
|
|
14
|
+
pfile: PFile;
|
|
15
|
+
onSuccess?: (task: VideoTextureTask) => void;
|
|
16
|
+
constructor(pfile: PFile);
|
|
17
|
+
}
|
|
18
|
+
declare class ModelTask extends AbstractTask {
|
|
19
|
+
model: Group | null;
|
|
20
|
+
gltf: GLTF | null;
|
|
21
|
+
mixer: AnimationMixer | null;
|
|
22
|
+
actions: AnimationAction[] | null;
|
|
23
|
+
pfile: PFile;
|
|
24
|
+
onSuccess?: (task: ModelTask) => void;
|
|
25
|
+
onProgress?: (progress: number) => void;
|
|
26
|
+
constructor(pfile: PFile);
|
|
27
|
+
}
|
|
28
|
+
declare class AudioTask extends AbstractTask {
|
|
29
|
+
buffer: AudioBuffer | null;
|
|
30
|
+
pfile: PFile;
|
|
31
|
+
onSuccess?: (task: AudioTask) => void;
|
|
32
|
+
onProgress?: (progress: number) => void;
|
|
33
|
+
constructor(pfile: PFile);
|
|
34
|
+
}
|
|
35
|
+
declare class HDRTextureTask extends AbstractTask {
|
|
36
|
+
texture: Texture | null;
|
|
37
|
+
pfile: PFile;
|
|
38
|
+
onSuccess?: (task: HDRTextureTask) => void;
|
|
39
|
+
constructor(pfile: PFile);
|
|
40
|
+
}
|
|
41
|
+
interface ITextureTaskLoader {
|
|
42
|
+
onTextureTaskLoaded(task: TextureTask): void;
|
|
43
|
+
}
|
|
44
|
+
interface IVideoTextureTaskLoader {
|
|
45
|
+
onVideoTextureTaskLoaded(task: VideoTextureTask): void;
|
|
46
|
+
}
|
|
47
|
+
interface IModelTaskLoader {
|
|
48
|
+
onModelTaskLoaded(task: ModelTask): void;
|
|
49
|
+
onModelTaskProgress: (progress: number) => void;
|
|
50
|
+
}
|
|
51
|
+
interface IAudioTaskLoader {
|
|
52
|
+
onAudioTaskLoaded(task: AudioTask): void;
|
|
53
|
+
onAudioTaskProgress?: (progress: number) => void;
|
|
54
|
+
}
|
|
55
|
+
interface IHDRTextureTaskLoader {
|
|
56
|
+
onHDRTextureTaskLoaded(task: HDRTextureTask): void;
|
|
57
|
+
}
|
|
58
|
+
export { TextureTask, VideoTextureTask, ModelTask, AudioTask, HDRTextureTask, type ITextureTaskLoader, type IVideoTextureTaskLoader, type IModelTaskLoader, type IAudioTaskLoader, type IHDRTextureTaskLoader, };
|
|
59
|
+
export default class ThreeAssetLoader extends AssetLoader {
|
|
60
|
+
private _textureLoader;
|
|
61
|
+
private _gltfLoader;
|
|
62
|
+
private _audioLoader;
|
|
63
|
+
private _rgbeLoader;
|
|
64
|
+
private _pmremGenerator;
|
|
65
|
+
private _loading;
|
|
66
|
+
constructor(baseUrl: string, context: GameContext);
|
|
67
|
+
dispose(): void;
|
|
68
|
+
private onError;
|
|
69
|
+
private onProgress;
|
|
70
|
+
private _loaderPromise;
|
|
71
|
+
loadAsync(): Promise<void>;
|
|
72
|
+
hasQueue(): boolean;
|
|
73
|
+
private _tasks;
|
|
74
|
+
private getTaskLoader;
|
|
75
|
+
private _textureCache;
|
|
76
|
+
addTextureTask(owner: ITextureTaskLoader, file: PFile): void;
|
|
77
|
+
private onTextureDispose;
|
|
78
|
+
private onTextureLoaded;
|
|
79
|
+
private loadTextureTask;
|
|
80
|
+
addVideoTextureTask(owner: IVideoTextureTaskLoader, file: PFile): void;
|
|
81
|
+
private onVideoTextureLoaded;
|
|
82
|
+
private onVideoTextureDispose;
|
|
83
|
+
private loadVideoTextureTask;
|
|
84
|
+
addModelTask(owner: IModelTaskLoader, file: PFile): void;
|
|
85
|
+
private disposeModelMaterial;
|
|
86
|
+
disposeModel(model: Object3D): void;
|
|
87
|
+
private onModelProgress;
|
|
88
|
+
private onModelLoaded;
|
|
89
|
+
private loadModelTask;
|
|
90
|
+
addAudioTask(owner: IAudioTaskLoader, file: PFile): void;
|
|
91
|
+
private loadAudioTask;
|
|
92
|
+
private onAudioLoaded;
|
|
93
|
+
addHDRTextureTask(owner: IHDRTextureTaskLoader, url: string): void;
|
|
94
|
+
private onHDRTextureDispose;
|
|
95
|
+
private onHDRTextureLoaded;
|
|
96
|
+
private loadHDRTextureTask;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=ThreeAssetLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreeAssetLoader.d.ts","sourceRoot":"","sources":["../../src/assets/ThreeAssetLoader.ts"],"names":[],"mappings":"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"}
|