@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.
Files changed (161) hide show
  1. package/dist/App.d.ts +41 -0
  2. package/dist/App.d.ts.map +1 -0
  3. package/dist/App.js +171 -0
  4. package/dist/App.js.map +1 -0
  5. package/dist/ComponentFactory.d.ts +5 -0
  6. package/dist/ComponentFactory.d.ts.map +1 -0
  7. package/dist/ComponentFactory.js +13 -0
  8. package/dist/ComponentFactory.js.map +1 -0
  9. package/dist/ThreeCanvas.d.ts +56 -0
  10. package/dist/ThreeCanvas.d.ts.map +1 -0
  11. package/dist/ThreeCanvas.js +418 -0
  12. package/dist/ThreeCanvas.js.map +1 -0
  13. package/dist/ThreeEngine.d.ts +24 -0
  14. package/dist/ThreeEngine.d.ts.map +1 -0
  15. package/dist/ThreeEngine.js +102 -0
  16. package/dist/ThreeEngine.js.map +1 -0
  17. package/dist/ThreeNodeRenderer.d.ts +42 -0
  18. package/dist/ThreeNodeRenderer.d.ts.map +1 -0
  19. package/dist/ThreeNodeRenderer.js +119 -0
  20. package/dist/ThreeNodeRenderer.js.map +1 -0
  21. package/dist/animations/ModelAnimation.d.ts +21 -0
  22. package/dist/animations/ModelAnimation.d.ts.map +1 -0
  23. package/dist/animations/ModelAnimation.js +45 -0
  24. package/dist/animations/ModelAnimation.js.map +1 -0
  25. package/dist/assets/ThreeAssetLoader.d.ts +98 -0
  26. package/dist/assets/ThreeAssetLoader.d.ts.map +1 -0
  27. package/dist/assets/ThreeAssetLoader.js +495 -0
  28. package/dist/assets/ThreeAssetLoader.js.map +1 -0
  29. package/dist/index.d.ts +7 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +8 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/pcomponents/PAnimator.d.ts +24 -0
  34. package/dist/pcomponents/PAnimator.d.ts.map +1 -0
  35. package/dist/pcomponents/PAnimator.js +133 -0
  36. package/dist/pcomponents/PAnimator.js.map +1 -0
  37. package/dist/pcomponents/PBackground.d.ts +15 -0
  38. package/dist/pcomponents/PBackground.d.ts.map +1 -0
  39. package/dist/pcomponents/PBackground.js +104 -0
  40. package/dist/pcomponents/PBackground.js.map +1 -0
  41. package/dist/pcomponents/PBasicMaterial.d.ts +20 -0
  42. package/dist/pcomponents/PBasicMaterial.d.ts.map +1 -0
  43. package/dist/pcomponents/PBasicMaterial.js +161 -0
  44. package/dist/pcomponents/PBasicMaterial.js.map +1 -0
  45. package/dist/pcomponents/PCollider.d.ts +18 -0
  46. package/dist/pcomponents/PCollider.d.ts.map +1 -0
  47. package/dist/pcomponents/PCollider.js +59 -0
  48. package/dist/pcomponents/PCollider.js.map +1 -0
  49. package/dist/pcomponents/PCubeGeometry.d.ts +8 -0
  50. package/dist/pcomponents/PCubeGeometry.d.ts.map +1 -0
  51. package/dist/pcomponents/PCubeGeometry.js +23 -0
  52. package/dist/pcomponents/PCubeGeometry.js.map +1 -0
  53. package/dist/pcomponents/PEnvironment.d.ts +12 -0
  54. package/dist/pcomponents/PEnvironment.d.ts.map +1 -0
  55. package/dist/pcomponents/PEnvironment.js +39 -0
  56. package/dist/pcomponents/PEnvironment.js.map +1 -0
  57. package/dist/pcomponents/PImageCache.d.ts +11 -0
  58. package/dist/pcomponents/PImageCache.d.ts.map +1 -0
  59. package/dist/pcomponents/PImageCache.js +35 -0
  60. package/dist/pcomponents/PImageCache.js.map +1 -0
  61. package/dist/pcomponents/PLight.d.ts +8 -0
  62. package/dist/pcomponents/PLight.d.ts.map +1 -0
  63. package/dist/pcomponents/PLight.js +45 -0
  64. package/dist/pcomponents/PLight.js.map +1 -0
  65. package/dist/pcomponents/PLightDirectional.d.ts +8 -0
  66. package/dist/pcomponents/PLightDirectional.d.ts.map +1 -0
  67. package/dist/pcomponents/PLightDirectional.js +36 -0
  68. package/dist/pcomponents/PLightDirectional.js.map +1 -0
  69. package/dist/pcomponents/PMaskedMaterial.d.ts +17 -0
  70. package/dist/pcomponents/PMaskedMaterial.d.ts.map +1 -0
  71. package/dist/pcomponents/PMaskedMaterial.js +195 -0
  72. package/dist/pcomponents/PMaskedMaterial.js.map +1 -0
  73. package/dist/pcomponents/PMaterialModifier.d.ts +8 -0
  74. package/dist/pcomponents/PMaterialModifier.d.ts.map +1 -0
  75. package/dist/pcomponents/PMaterialModifier.js +22 -0
  76. package/dist/pcomponents/PMaterialModifier.js.map +1 -0
  77. package/dist/pcomponents/PModelAnnotation.d.ts +11 -0
  78. package/dist/pcomponents/PModelAnnotation.d.ts.map +1 -0
  79. package/dist/pcomponents/PModelAnnotation.js +21 -0
  80. package/dist/pcomponents/PModelAnnotation.js.map +1 -0
  81. package/dist/pcomponents/PModelAnnotations.d.ts +10 -0
  82. package/dist/pcomponents/PModelAnnotations.d.ts.map +1 -0
  83. package/dist/pcomponents/PModelAnnotations.js +25 -0
  84. package/dist/pcomponents/PModelAnnotations.js.map +1 -0
  85. package/dist/pcomponents/PModelGLTF.d.ts +15 -0
  86. package/dist/pcomponents/PModelGLTF.d.ts.map +1 -0
  87. package/dist/pcomponents/PModelGLTF.js +111 -0
  88. package/dist/pcomponents/PModelGLTF.js.map +1 -0
  89. package/dist/pcomponents/PModelNode.d.ts +13 -0
  90. package/dist/pcomponents/PModelNode.d.ts.map +1 -0
  91. package/dist/pcomponents/PModelNode.js +71 -0
  92. package/dist/pcomponents/PModelNode.js.map +1 -0
  93. package/dist/pcomponents/PPhysicalMaterial.d.ts +13 -0
  94. package/dist/pcomponents/PPhysicalMaterial.d.ts.map +1 -0
  95. package/dist/pcomponents/PPhysicalMaterial.js +100 -0
  96. package/dist/pcomponents/PPhysicalMaterial.js.map +1 -0
  97. package/dist/pcomponents/PPlaneGeometry.d.ts +8 -0
  98. package/dist/pcomponents/PPlaneGeometry.d.ts.map +1 -0
  99. package/dist/pcomponents/PPlaneGeometry.js +23 -0
  100. package/dist/pcomponents/PPlaneGeometry.js.map +1 -0
  101. package/dist/pcomponents/PProjectRoot.d.ts +8 -0
  102. package/dist/pcomponents/PProjectRoot.d.ts.map +1 -0
  103. package/dist/pcomponents/PProjectRoot.js +24 -0
  104. package/dist/pcomponents/PProjectRoot.js.map +1 -0
  105. package/dist/pcomponents/PSlider.d.ts +18 -0
  106. package/dist/pcomponents/PSlider.d.ts.map +1 -0
  107. package/dist/pcomponents/PSlider.js +62 -0
  108. package/dist/pcomponents/PSlider.js.map +1 -0
  109. package/dist/pcomponents/PSound.d.ts +17 -0
  110. package/dist/pcomponents/PSound.d.ts.map +1 -0
  111. package/dist/pcomponents/PSound.js +119 -0
  112. package/dist/pcomponents/PSound.js.map +1 -0
  113. package/dist/pcomponents/PSphereGeometry.d.ts +9 -0
  114. package/dist/pcomponents/PSphereGeometry.d.ts.map +1 -0
  115. package/dist/pcomponents/PSphereGeometry.js +24 -0
  116. package/dist/pcomponents/PSphereGeometry.js.map +1 -0
  117. package/dist/pcomponents/PSprite.d.ts +13 -0
  118. package/dist/pcomponents/PSprite.d.ts.map +1 -0
  119. package/dist/pcomponents/PSprite.js +73 -0
  120. package/dist/pcomponents/PSprite.js.map +1 -0
  121. package/dist/pcomponents/PSpriteSheet.d.ts +13 -0
  122. package/dist/pcomponents/PSpriteSheet.d.ts.map +1 -0
  123. package/dist/pcomponents/PSpriteSheet.js +49 -0
  124. package/dist/pcomponents/PSpriteSheet.js.map +1 -0
  125. package/dist/pcomponents/PText.d.ts +10 -0
  126. package/dist/pcomponents/PText.d.ts.map +1 -0
  127. package/dist/pcomponents/PText.js +44 -0
  128. package/dist/pcomponents/PText.js.map +1 -0
  129. package/dist/pcomponents/PVideoPlayer.d.ts +5 -0
  130. package/dist/pcomponents/PVideoPlayer.d.ts.map +1 -0
  131. package/dist/pcomponents/PVideoPlayer.js +12 -0
  132. package/dist/pcomponents/PVideoPlayer.js.map +1 -0
  133. package/dist/pcomponents.d.ts +27 -0
  134. package/dist/pcomponents.d.ts.map +1 -0
  135. package/dist/pcomponents.js +33 -0
  136. package/dist/pcomponents.js.map +1 -0
  137. package/dist/postprocessing/PSSRPass.d.ts +19 -0
  138. package/dist/postprocessing/PSSRPass.d.ts.map +1 -0
  139. package/dist/postprocessing/PSSRPass.js +69 -0
  140. package/dist/postprocessing/PSSRPass.js.map +1 -0
  141. package/dist/postprocessing/ThreeJsPostProcessor.d.ts +32 -0
  142. package/dist/postprocessing/ThreeJsPostProcessor.d.ts.map +1 -0
  143. package/dist/postprocessing/ThreeJsPostProcessor.js +264 -0
  144. package/dist/postprocessing/ThreeJsPostProcessor.js.map +1 -0
  145. package/dist/three/ColliderObject3D.d.ts +19 -0
  146. package/dist/three/ColliderObject3D.d.ts.map +1 -0
  147. package/dist/three/ColliderObject3D.js +96 -0
  148. package/dist/three/ColliderObject3D.js.map +1 -0
  149. package/dist/three/FreeCameraControls.d.ts +32 -0
  150. package/dist/three/FreeCameraControls.d.ts.map +1 -0
  151. package/dist/three/FreeCameraControls.js +173 -0
  152. package/dist/three/FreeCameraControls.js.map +1 -0
  153. package/dist/three/OrbitCameraControls.d.ts +32 -0
  154. package/dist/three/OrbitCameraControls.d.ts.map +1 -0
  155. package/dist/three/OrbitCameraControls.js +247 -0
  156. package/dist/three/OrbitCameraControls.js.map +1 -0
  157. package/dist/three/VrCameraControls.d.ts +30 -0
  158. package/dist/three/VrCameraControls.d.ts.map +1 -0
  159. package/dist/three/VrCameraControls.js +140 -0
  160. package/dist/three/VrCameraControls.js.map +1 -0
  161. 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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"}