@p100-web/core-three 100.1.1 → 100.1.2

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,418 @@
1
+ import { Clock, Color, PerspectiveCamera, Raycaster, Scene, WebGLRenderer, Group, MathUtils, SRGBColorSpace, Vector2, } from "three";
2
+ import ThreeJsPostProcessor from "./postprocessing/ThreeJsPostProcessor";
3
+ import { PostProcessingSystems, Settings_Threejs, PCanvas, Workers, Coordinates, } from "@p100-web/core";
4
+ const _cameraColor = new Color(0x000000);
5
+ const _pointer = new Vector2();
6
+ export default class ThreeCanvas extends PCanvas {
7
+ constructor(canvas, context, width, height, settings) {
8
+ super(canvas, context, width, height);
9
+ this._renderer = null;
10
+ // PP
11
+ this._composer = null;
12
+ this._clock = new Clock();
13
+ this._backgroundColor = new Color(0x000000);
14
+ //
15
+ // UPDATE
16
+ //
17
+ this.update = () => {
18
+ if (this._disposed) {
19
+ console.log("<<<<<<<<< DISPOSED >>>>>>>>>>>");
20
+ return;
21
+ }
22
+ if (this._hasTweens) {
23
+ this._tweens.update();
24
+ if (this._tweens.allStopped()) {
25
+ this._tweens.removeAll();
26
+ this._hasTweens = false;
27
+ this._context.clearWorkFlag(Workers.Animating);
28
+ }
29
+ }
30
+ const delta = this._clock.getDelta();
31
+ if (this._cameraUpdate)
32
+ this._cameraUpdate(delta);
33
+ if (this._hasUpdators) {
34
+ for (const update of this._updates) {
35
+ update(delta);
36
+ }
37
+ }
38
+ if (this._isRaycasting) {
39
+ this.raycast();
40
+ }
41
+ this._stats?.update(delta);
42
+ if (this._renderCounter >= this._renderInterval) {
43
+ if (this._composer)
44
+ this._composer.render();
45
+ else
46
+ this._renderer.render(this._sceneNode, this._cameraNode);
47
+ this._renderCounter = 0;
48
+ }
49
+ if (!this._isSleeping) {
50
+ this._performanceCounter?.update(delta);
51
+ }
52
+ this._renderCounter++;
53
+ };
54
+ //
55
+ // RAYCASTER
56
+ //
57
+ this._colliders = [];
58
+ context.setPCanvas(this);
59
+ // Create a Scene
60
+ const scene = new Scene();
61
+ this._sceneNode = scene;
62
+ this._sceneNode.background = _cameraColor;
63
+ // Create a Camera
64
+ const cameraNode = new PerspectiveCamera(70, 1280 / 720, 0.1, 6);
65
+ this._cameraNode = cameraNode;
66
+ this._cameraNode.layers.mask = 1;
67
+ this._raycaster = new Raycaster();
68
+ this._raycaster.layers.mask = 2;
69
+ // Add root node
70
+ const rootNode = new Group();
71
+ this._rootNode = rootNode;
72
+ this._rootNode.name = "RootNode";
73
+ const flipCoordinates = context.getCoordinates() !== Coordinates.RightHanded;
74
+ // console.log("[CANVAS] invertZ: ", flipCoordinates);
75
+ if (flipCoordinates) {
76
+ // rootNode.rotation.y = Math.PI;
77
+ rootNode.scale.x *= -1;
78
+ }
79
+ // Add nodes to scene
80
+ scene.add(cameraNode);
81
+ scene.add(rootNode);
82
+ this._cameraNode.near = settings.camera.near;
83
+ this._cameraNode.far = settings.camera.far;
84
+ let rendererArgs;
85
+ if (settings.postProcessing?.enabled === PostProcessingSystems.THREEJS) {
86
+ rendererArgs = {
87
+ powerPreference: "high-performance",
88
+ antialias: false,
89
+ stencil: settings.renderer.stencil,
90
+ depth: false,
91
+ };
92
+ }
93
+ else {
94
+ rendererArgs = {
95
+ powerPreference: "high-performance",
96
+ antialias: settings.renderer.antialias,
97
+ stencil: settings.renderer.stencil,
98
+ depth: settings.renderer.depth,
99
+ };
100
+ }
101
+ const renderer = new WebGLRenderer({
102
+ ...rendererArgs,
103
+ canvas: canvas,
104
+ });
105
+ renderer.outputColorSpace = SRGBColorSpace;
106
+ this._renderer = renderer;
107
+ renderer.toneMapping = settings.renderer.toneMapping;
108
+ renderer.toneMappingExposure = settings.renderer.toneMappingExposure;
109
+ this.setupShadows(settings.renderer.useShadows);
110
+ renderer.setSize(this._sizeX, this._sizeY, true);
111
+ renderer.setClearColor(_cameraColor);
112
+ renderer.clear();
113
+ if (settings.postProcessing?.enabled === PostProcessingSystems.THREEJS) {
114
+ this.setupPostProcessing(settings.postProcessing);
115
+ }
116
+ if (!this._cameraNode)
117
+ throw new Error("Missing camera");
118
+ // Work quality
119
+ if (settings.quality) {
120
+ this.initQualitySettings(settings.quality);
121
+ }
122
+ this._cameraNode.aspect = width / height;
123
+ this._cameraNode.updateProjectionMatrix();
124
+ }
125
+ getScene() {
126
+ return this._sceneNode;
127
+ }
128
+ render(settings, startLoop) {
129
+ // Set Near/Far
130
+ this.setNearFar(settings.camera.near, settings.camera.far);
131
+ // Set background color
132
+ this.setBackgroundColor(settings.camera.background);
133
+ // Set Fov, this will update project matrix
134
+ this.setFOV(settings.camera.fov);
135
+ if (startLoop) {
136
+ // Start render loop
137
+ this.startRenderLoop();
138
+ }
139
+ }
140
+ dispose() {
141
+ super.dispose();
142
+ // console.log("[ThreeCanvas] DISPOSE()");
143
+ this.stopRenderLoop();
144
+ const environment = this.getEnvironment();
145
+ if (environment) {
146
+ environment.unrender();
147
+ }
148
+ const renderer = this._renderer;
149
+ if (this._composer !== null) {
150
+ this._composer.dispose();
151
+ this._composer = null;
152
+ }
153
+ renderer.dispose();
154
+ renderer.forceContextLoss();
155
+ this._renderer = null;
156
+ }
157
+ getComposer() {
158
+ return this._composer;
159
+ }
160
+ //
161
+ // BACKGROUND / ENVIRONMENT
162
+ //
163
+ updateEnvironment() {
164
+ if (this._environment === null) {
165
+ }
166
+ else {
167
+ const scene = this._sceneNode;
168
+ scene.environment = this._environment.getTexture();
169
+ scene.environmentRotation.y = MathUtils.degToRad(180 + this._environment.rotation);
170
+ scene.environmentIntensity = this._environment.intensity;
171
+ if (this._environment.background) {
172
+ scene.background = this._environment.getTexture();
173
+ scene.backgroundRotation.y = MathUtils.degToRad(180 + this._environment.rotation);
174
+ scene.backgroundIntensity = this._environment.intensity;
175
+ scene.backgroundBlurriness = this._environment.blur;
176
+ }
177
+ else if (scene.background === this._environment.getTexture()) {
178
+ scene.background = null;
179
+ scene.background = this._backgroundColor;
180
+ }
181
+ }
182
+ }
183
+ setBackgroundColor(bg) {
184
+ this._backgroundColor = new Color(bg);
185
+ const current = this._sceneNode.background;
186
+ if (current && current.isColor) {
187
+ this._sceneNode.background = this._backgroundColor;
188
+ }
189
+ }
190
+ clearEnvironment(environment) {
191
+ const scene = this._sceneNode;
192
+ if (this._environment !== environment) {
193
+ this._context.error("Clear environment called with invalid PEnvironment");
194
+ return;
195
+ }
196
+ if (this._environment === null) {
197
+ this._context.error("No environtment");
198
+ return;
199
+ }
200
+ scene.environment = null;
201
+ scene.background = null;
202
+ scene.background = this._backgroundColor;
203
+ this._environment = null;
204
+ }
205
+ //
206
+ // RENDERER
207
+ //
208
+ setToneMapping(value) {
209
+ this._renderer.toneMapping = value;
210
+ }
211
+ setToneMappingExposure(value) {
212
+ this._renderer.toneMappingExposure = value;
213
+ }
214
+ setFOV(fov) {
215
+ this._cameraNode.fov = fov;
216
+ this._cameraNode.updateProjectionMatrix();
217
+ }
218
+ setNearFar(near = -1, far = -1) {
219
+ if (near > 0)
220
+ this._cameraNode.near = near;
221
+ if (far > 0)
222
+ this._cameraNode.far = far;
223
+ this._cameraNode.updateProjectionMatrix();
224
+ }
225
+ //
226
+ // SHADOWS
227
+ //
228
+ setupShadows(value) {
229
+ const renderer = this._renderer;
230
+ if (value > 0) {
231
+ // Enable
232
+ renderer.shadowMap.autoUpdate = false;
233
+ console.log("TODO: manual shadows");
234
+ renderer.shadowMap.enabled = true;
235
+ renderer.shadowMap.type = (value - 1);
236
+ renderer.shadowMap.needsUpdate = true;
237
+ }
238
+ else {
239
+ // Disable
240
+ renderer.shadowMap.enabled = false;
241
+ renderer.shadowMap.needsUpdate = true;
242
+ renderer.shadowMap.autoUpdate = false;
243
+ }
244
+ renderer.clear();
245
+ }
246
+ //
247
+ // CONTROLS
248
+ //
249
+ //
250
+ // POST PROCESSING
251
+ //
252
+ setupPostProcessing(settings) {
253
+ this._composer = new ThreeJsPostProcessor(settings, this._sceneNode, this._renderer, this._cameraNode, new Vector2(this._sizeX, this._sizeY));
254
+ }
255
+ /**
256
+ * Base settings has changed for post processing
257
+ */
258
+ updatePostProcessingSettings(field, psettings) {
259
+ const settings = psettings.postProcessing;
260
+ if (this._composer === null)
261
+ return;
262
+ // Note: If we are updating all, then we will restart the context really soon
263
+ if (field === "postProcessing.samples") {
264
+ this._composer.updateAASamples(settings.samples);
265
+ }
266
+ else {
267
+ const needsResize = this._composer?.updatePostProcessing(settings, field);
268
+ if (needsResize) {
269
+ this._composer.resizeEffects();
270
+ }
271
+ }
272
+ }
273
+ //
274
+ // WINDOW
275
+ //
276
+ onWindowResize(width, height, resize) {
277
+ super.onWindowResize(width, height, resize);
278
+ this._renderer?.setSize(width, height, true);
279
+ if (this._composer !== null) {
280
+ if (resize)
281
+ this._composer.resize(width, height);
282
+ else
283
+ this._composer.setSize(width, height);
284
+ }
285
+ if (this._cameraNode !== null) {
286
+ this._cameraNode.aspect = width / height;
287
+ this._cameraNode.updateProjectionMatrix();
288
+ }
289
+ }
290
+ //
291
+ // THREE NODES
292
+ //
293
+ getThreeSceneNode() {
294
+ return this._sceneNode;
295
+ }
296
+ getThreeRenderer() {
297
+ return this._renderer;
298
+ }
299
+ getThreeRootNode() {
300
+ return this._rootNode;
301
+ }
302
+ getThreeCamera() {
303
+ return this._cameraNode;
304
+ }
305
+ //
306
+ // RENDER LOOP
307
+ //
308
+ startRenderLoop() {
309
+ if (!this._renderer)
310
+ throw new Error("No renderer");
311
+ // Start rendering
312
+ this._renderer.setAnimationLoop(this.update);
313
+ }
314
+ stopRenderLoop() {
315
+ if (!this._renderer)
316
+ throw new Error("No renderer");
317
+ // Stop rendering
318
+ this._renderer.setAnimationLoop(null);
319
+ }
320
+ //
321
+ // SETTINGS
322
+ //
323
+ updateRendererSettings(field, isettings) {
324
+ if (isettings instanceof Settings_Threejs) {
325
+ const settings = isettings.renderer;
326
+ if (field === "renderer" || field === "renderer.toneMapping") {
327
+ this.setToneMapping(settings.toneMapping);
328
+ }
329
+ if (field === "renderer" || field === "renderer.toneMappingExposure") {
330
+ this.setToneMappingExposure(settings.toneMappingExposure);
331
+ }
332
+ }
333
+ else {
334
+ console.log("[ThreeCanvas] updateRendererSettings() skipped, settings was not supported", isettings);
335
+ }
336
+ }
337
+ updateCameraSettings(field, settings) {
338
+ if (field === "camera" || field === "camera.fov") {
339
+ this.setFOV(settings.camera.fov);
340
+ }
341
+ if (field === "camera" || field === "camera.background") {
342
+ this.setBackgroundColor(settings.camera.background);
343
+ }
344
+ if (field === "camera" ||
345
+ field === "camera.near" ||
346
+ field === "camera.far") {
347
+ this.setNearFar(settings.camera.near, settings.camera.far);
348
+ }
349
+ }
350
+ //
351
+ // QUALITY
352
+ //
353
+ /**
354
+ * Quality is always clamped to steps of 0.05
355
+ */
356
+ setQuality(quality) {
357
+ return this._composer?.setCurrentQuality(quality) || false;
358
+ }
359
+ updateRenderScale(value) {
360
+ if (this._composer) {
361
+ this._composer.setPixelRatio(value);
362
+ }
363
+ else {
364
+ this._renderer.setPixelRatio(value);
365
+ }
366
+ }
367
+ addCollider(object) {
368
+ this._colliders.push(object);
369
+ }
370
+ removeCollider(object) {
371
+ const index = this._colliders.indexOf(object);
372
+ if (index >= 0) {
373
+ this._colliders.splice(index, 1);
374
+ }
375
+ }
376
+ getRaycaster() {
377
+ return this._raycaster;
378
+ }
379
+ raycast() {
380
+ const raycaster = this._raycaster;
381
+ if (this._hoverCanvas) {
382
+ _pointer.x = this._pointerX;
383
+ _pointer.y = this._pointerY;
384
+ raycaster.setFromCamera(_pointer, this._cameraNode);
385
+ const intersects = raycaster.intersectObjects(this._colliders, false);
386
+ this.onHover(intersects.length > 0 ? intersects : null);
387
+ }
388
+ else {
389
+ this.onHover(null);
390
+ }
391
+ }
392
+ /**
393
+ * User hovers collider
394
+ */
395
+ onHover(intersects) {
396
+ let object3D = null;
397
+ let distance = 999999;
398
+ let point = null;
399
+ if (intersects !== null) {
400
+ for (const intersect of intersects) {
401
+ // Check that we hover a valid target
402
+ if (intersect.object.visible && intersect.distance < distance) {
403
+ object3D = intersect.object;
404
+ distance = intersect.distance;
405
+ point = intersect.point;
406
+ }
407
+ }
408
+ }
409
+ if (object3D === null) {
410
+ this.setHovered(null, null);
411
+ return;
412
+ }
413
+ const collider = object3D.collider || object3D.userData.collider;
414
+ if (collider)
415
+ this.setHovered(collider.node, point);
416
+ }
417
+ }
418
+ //# sourceMappingURL=ThreeCanvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeCanvas.js","sourceRoot":"","sources":["../src/ThreeCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,EAIL,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,aAAa,EACb,KAAK,EACL,SAAS,EACT,cAAc,EAId,OAAO,GACR,MAAM,OAAO,CAAC;AAEf,OAAO,oBAAoB,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAEL,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EAEP,OAAO,EAIP,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEzC,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAgB9C,YACE,MAAyB,EACzB,OAAoB,EACpB,KAAa,EACb,MAAc,EACd,QAA8B;QAE9B,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAhBhC,cAAS,GAAyB,IAAI,CAAC;QAE/C,KAAK;QACG,cAAS,GAAgC,IAAI,CAAC;QAE9C,WAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QAErB,qBAAgB,GAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QA0YtD,EAAE;QACF,UAAU;QACV,EAAE;QAEF,WAAM,GAAG,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAErC,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAElD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;;oBACvC,IAAI,CAAC,SAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE/D,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC;QAEF,EAAE;QACF,aAAa;QACb,EAAE;QAEF,eAAU,GAAe,EAAE,CAAC;QAnb1B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEzB,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,YAAY,CAAC;QAE1C,kBAAkB;QAClB,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAEjC,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAEhC,gBAAgB;QAChB,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;QAEjC,MAAM,eAAe,GACnB,OAAO,CAAC,cAAc,EAAE,KAAK,WAAW,CAAC,WAAW,CAAC;QAC3D,yDAAyD;QACrD,IAAI,eAAe,EAAE,CAAC;YAC1B,sCAAsC;YAChC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,qBAAqB;QACrB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAE3C,IAAI,YAAqC,CAAC;QAE1C,IAAI,QAAQ,CAAC,cAAc,EAAE,OAAO,KAAK,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACvE,YAAY,GAAG;gBACb,eAAe,EAAE,kBAAkB;gBACnC,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;gBAClC,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,YAAY,GAAG;gBACb,eAAe,EAAE,kBAAkB;gBACnC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;gBACtC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;gBAClC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;aAC/B,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC;YACjC,GAAG,YAAY;YACf,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,GAAG,cAAc,CAAC;QAE3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAA0B,CAAC;QACpE,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEhD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACrC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEjB,IAAI,QAAQ,CAAC,cAAc,EAAE,OAAO,KAAK,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACvE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAe,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEzD,eAAe;QACf,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAe,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,QAA8B,EAAE,SAAkB;QACvD,eAAe;QACf,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE3D,uBAAuB;QACvB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpD,2CAA2C;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,SAAS,EAAE,CAAC;YACd,oBAAoB;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,6CAA6C;QAE7C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,QAAS,CAAC,OAAO,EAAE,CAAC;QACpB,QAAS,CAAC,gBAAgB,EAAE,CAAC;QAE7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,EAAE;IACF,4BAA4B;IAC5B,EAAE;IAEF,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,UAAW,CAAC;YAE/B,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACnD,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAC9C,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CACjC,CAAC;YACF,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAEzD,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBACjC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBAClD,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAC7C,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CACjC,CAAC;gBACF,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;gBACxD,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC/D,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,EAAU;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAiB,CAAC;QAClD,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrD,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,WAAyB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAW,CAAC;QAE/B,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,EAAE;IACF,YAAY;IACZ,EAAE;IAEF,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,SAAU,CAAC,WAAW,GAAG,KAAoB,CAAC;IACrD,CAAC;IAED,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC,SAAU,CAAC,mBAAmB,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,OAAe,CAAC,CAAC,EAAE,MAAc,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3C,IAAI,GAAG,GAAG,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;IAC5C,CAAC;IAED,EAAE;IACF,WAAW;IACX,EAAE;IAEM,YAAY,CAAC,KAAa;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAU,CAAC;QACjC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,SAAS;YACT,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAQ,CAAC;YAC7C,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,UAAU;YACV,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;YACnC,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;YACtC,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;QACxC,CAAC;QACD,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,EAAE;IACF,YAAY;IACZ,EAAE;IAEF,EAAE;IACF,mBAAmB;IACnB,EAAE;IAEM,mBAAmB,CAAC,QAAsC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,CACvC,QAAQ,EACR,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAU,EACf,IAAI,CAAC,WAAW,EAChB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CACtC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,4BAA4B,CAAC,KAAa,EAAE,SAA2B;QACrE,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC;QAC1C,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO;QACpC,6EAA6E;QAC7E,IAAI,KAAK,KAAK,wBAAwB,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1E,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAU,CAAC,aAAa,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,EAAE;IACF,UAAU;IACV,EAAE;IAEF,cAAc,CAAC,KAAa,EAAE,MAAc,EAAE,MAAe;QAC3D,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,MAAM;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;;gBAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,EAAE;IACF,eAAe;IACf,EAAE;IAEF,iBAAiB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,EAAE;IACF,eAAe;IACf,EAAE;IAEF,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACpD,kBAAkB;QAClB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACpD,iBAAiB;QACjB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,EAAE;IACF,YAAY;IACZ,EAAE;IAEF,sBAAsB,CAAC,KAAa,EAAE,SAAwB;QAC5D,IAAI,SAAS,YAAY,gBAAgB,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAI,SAA8B,CAAC,QAAQ,CAAC;YAC1D,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,sBAAsB,EAAE,CAAC;gBAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,8BAA8B,EAAE,CAAC;gBACrE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,4EAA4E,EAC5E,SAAS,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,KAAa,EAAE,QAAuB;QACzD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACxD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QACD,IACE,KAAK,KAAK,QAAQ;YAClB,KAAK,KAAK,aAAa;YACvB,KAAK,KAAK,YAAY,EACtB,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,EAAE;IACF,WAAW;IACX,EAAE;IAEF;;OAEG;IACO,UAAU,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IAC7D,CAAC;IAES,iBAAiB,CAAC,KAAa;QACvC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAwDD,WAAW,CAAC,MAAgB;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,MAAgB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,OAAO;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,UAA6D;QACnE,IAAI,QAAQ,GAAQ,IAAI,CAAC;QACzB,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,IAAI,KAAK,GAAmB,IAAI,CAAC;QAEjC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,qCAAqC;gBACrC,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;oBAC9D,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC5B,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;oBAC9B,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjE,IAAI,QAAQ;YAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import { GameContext, type ICameraControls, type ICameraSettings, type IComponentFactory, type IPNodeRenderer, type IStats, type IVector3, type IEngine, IThreeRenderSettings, Coordinates } from "@p100-web/core";
2
+ import ThreeCanvas from "./ThreeCanvas";
3
+ import { type IAudioListener } from "@p100-web/core";
4
+ import ComponentFactory from "./ComponentFactory";
5
+ import ThreeAssetLoader from "./assets/ThreeAssetLoader";
6
+ export default class ThreeEngine implements IEngine {
7
+ private _componentFactory;
8
+ private _pcanvas;
9
+ constructor(componentFactory: IComponentFactory);
10
+ getEngineType(): number;
11
+ getCoordinates(): Coordinates;
12
+ getComponentFactory(): ComponentFactory;
13
+ getCameraForwardVector(context: GameContext): IVector3;
14
+ setupCanvas(canvas: HTMLCanvasElement, context: GameContext, width: number, height: number, settings: IThreeRenderSettings): ThreeCanvas;
15
+ getCanvas(): ThreeCanvas | null;
16
+ setupNodeRenderer(context: GameContext): IPNodeRenderer;
17
+ setupCameraControls(context: GameContext, cameraSettings: ICameraSettings | null): ICameraControls | null;
18
+ setupAudioListener(): Promise<IAudioListener>;
19
+ private _assetLoader;
20
+ getAssetLoader(): ThreeAssetLoader;
21
+ setupAssetLoader(context: GameContext): ThreeAssetLoader;
22
+ getStats(context: GameContext): IStats;
23
+ }
24
+ //# sourceMappingURL=ThreeEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeEngine.d.ts","sourceRoot":"","sources":["../src/ThreeEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,oBAAoB,EACpB,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,OAAO;IACjD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,gBAAgB,EAAE,iBAAiB;IAI/C,aAAa,IAAI,MAAM;IAIvB,cAAc,IAAI,WAAW;IAQ7B,mBAAmB,IAAI,gBAAgB;IAQvC,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ;IAatD,WAAW,CACT,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,GAC7B,WAAW;IAKd,SAAS,IAAI,WAAW,GAAG,IAAI;IAQ/B,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc;IAQvD,mBAAmB,CACjB,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,eAAe,GAAG,IAAI,GACrC,eAAe,GAAG,IAAI;IAmCzB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC;IAQ7C,OAAO,CAAC,YAAY,CAAiC;IAErD,cAAc;IAId,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB;IAQxD,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;CAUvC"}
@@ -0,0 +1,102 @@
1
+ import { Coordinates, } from "@p100-web/core";
2
+ import ThreeNodeRenderer from "./ThreeNodeRenderer";
3
+ import FreeCameraControls from "./three/FreeCameraControls";
4
+ import OrbitCameraControls from "./three/OrbitCameraControls";
5
+ import VrCameraControls from "./three/VrCameraControls";
6
+ import ThreeCanvas from "./ThreeCanvas";
7
+ import { AudioListener, Quaternion, Vector3 } from "three";
8
+ import ThreeAssetLoader from "./assets/ThreeAssetLoader";
9
+ export default class ThreeEngine {
10
+ constructor(componentFactory) {
11
+ this._pcanvas = null;
12
+ //
13
+ // ASSETS
14
+ //
15
+ this._assetLoader = null;
16
+ this._componentFactory = componentFactory;
17
+ }
18
+ getEngineType() {
19
+ return 0;
20
+ }
21
+ getCoordinates() {
22
+ return Coordinates.RightHanded;
23
+ }
24
+ //
25
+ // COMPONENTS
26
+ //
27
+ getComponentFactory() {
28
+ return this._componentFactory;
29
+ }
30
+ //
31
+ // CAMERA
32
+ //
33
+ getCameraForwardVector(context) {
34
+ const pcanvas = context.getPCanvas();
35
+ const forward = new Vector3(0, 0, -1); // local forward
36
+ forward.applyQuaternion(pcanvas.getThreeCamera().getWorldQuaternion(new Quaternion()));
37
+ return forward;
38
+ }
39
+ //
40
+ // PCANVAS
41
+ //
42
+ setupCanvas(canvas, context, width, height, settings) {
43
+ this._pcanvas = new ThreeCanvas(canvas, context, width, height, settings);
44
+ return this._pcanvas;
45
+ }
46
+ getCanvas() {
47
+ return this._pcanvas;
48
+ }
49
+ //
50
+ // NODE RENDERER
51
+ //
52
+ setupNodeRenderer(context) {
53
+ return new ThreeNodeRenderer(context);
54
+ }
55
+ //
56
+ // CAMERA CONTROLS
57
+ //
58
+ setupCameraControls(context, cameraSettings) {
59
+ if (cameraSettings === null)
60
+ return null;
61
+ const pcanvas = context.getPCanvas();
62
+ if (cameraSettings.type === 0) {
63
+ return new FreeCameraControls(context, pcanvas, cameraSettings.position, cameraSettings.target);
64
+ }
65
+ else if (cameraSettings.type === 1) {
66
+ return new OrbitCameraControls(context, pcanvas, cameraSettings.position, cameraSettings.target, cameraSettings.damping);
67
+ }
68
+ else if (cameraSettings.type === 2) {
69
+ return new VrCameraControls(context, pcanvas, cameraSettings.position, cameraSettings.target);
70
+ }
71
+ else {
72
+ context.error("Unknown controls: " + cameraSettings.type);
73
+ return null;
74
+ }
75
+ }
76
+ //
77
+ // AUDIO
78
+ //
79
+ setupAudioListener() {
80
+ return Promise.resolve(new AudioListener());
81
+ }
82
+ getAssetLoader() {
83
+ return this._assetLoader;
84
+ }
85
+ setupAssetLoader(context) {
86
+ return new ThreeAssetLoader(context.s3Url, context);
87
+ }
88
+ //
89
+ // STATS
90
+ //
91
+ getStats(context) {
92
+ const renderer = context.getPCanvas().getThreeRenderer();
93
+ return {
94
+ textures: renderer?.info.memory.textures || 0,
95
+ programs: renderer?.info.programs?.length || 0,
96
+ triangles: renderer?.info.render.triangles || 0,
97
+ calls: renderer?.info.render.calls || 0,
98
+ geometries: renderer?.info.memory.geometries || 0,
99
+ };
100
+ }
101
+ }
102
+ //# sourceMappingURL=ThreeEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeEngine.js","sourceRoot":"","sources":["../src/ThreeEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type IVector3, PNode, type IPNodeRenderer, IMaterial, GameContext, Coordinates } from "@p100-web/core";
2
+ export default class ThreeNodeRenderer implements IPNodeRenderer {
3
+ _coordinates: Coordinates;
4
+ constructor(context: GameContext);
5
+ show(node: PNode): void;
6
+ hide(node: PNode): void;
7
+ render(node: PNode): void;
8
+ unrender(node: PNode): void;
9
+ getForwardVector(node: PNode): IVector3;
10
+ getWorldPosition(node: PNode): IVector3;
11
+ getPositionVector(node: PNode): IVector3;
12
+ getRotationVector(node: PNode): IVector3;
13
+ getScaleVector(node: PNode): IVector3;
14
+ getIMaterial(node: PNode): IMaterial | null;
15
+ copyPosition(node: PNode, vector: IVector3): void;
16
+ /**
17
+ * Attach a node to the camera
18
+ */
19
+ addToCamera(child: PNode): void;
20
+ /**
21
+ * Add a node to its parent in the 3d world
22
+ */
23
+ addToParent(child: PNode): void;
24
+ /**
25
+ * Remove a node from its parent in the 3d world
26
+ */
27
+ removeFromParent(child: PNode): void;
28
+ /**
29
+ * Called when we have both an el and a transform
30
+ */
31
+ updateElTransform(node: PNode): void;
32
+ setPosition(node: PNode, vector: IVector3): void;
33
+ setRotation(node: PNode, vector: IVector3): void;
34
+ setScale(node: PNode, vector: IVector3): void;
35
+ /**
36
+ * Probably only used in editor, update the PNode's PTransform with the current
37
+ * values of the element.
38
+ */
39
+ updatePTransform(node: PNode): void;
40
+ set_default_el(node: PNode): void;
41
+ }
42
+ //# sourceMappingURL=ThreeNodeRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeNodeRenderer.d.ts","sourceRoot":"","sources":["../src/ThreeNodeRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,EACL,KAAK,cAAc,EACnB,SAAS,EACT,WAAW,EACX,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAGxB,MAAM,CAAC,OAAO,OAAO,iBAAkB,YAAW,cAAc;IAC9D,YAAY,EAAE,WAAW,CAAC;gBAEd,OAAO,EAAE,WAAW;IAIhC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAKvB,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAKvB,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAMzB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAM3B,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ;IAOvC,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ;IAOvC,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ;IAIxC,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ;IAIxC,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ;IAIrC,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI;IAI3C,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI;IAIjD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK/B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI/B;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAIpC;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IASpC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI;IAKhD,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI;IAMhD,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI;IAM7C;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAkBnC,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;CAKlC"}