@operato/scene-visualizer 10.0.0-beta.1 → 10.0.0-beta.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 (160) hide show
  1. package/package.json +2 -2
  2. package/dist/banner.d.ts +0 -244
  3. package/dist/banner.js +0 -75
  4. package/dist/banner.js.map +0 -1
  5. package/dist/camera.d.ts +0 -249
  6. package/dist/camera.js +0 -107
  7. package/dist/camera.js.map +0 -1
  8. package/dist/cube.d.ts +0 -241
  9. package/dist/cube.js +0 -37
  10. package/dist/cube.js.map +0 -1
  11. package/dist/cylinder.d.ts +0 -9
  12. package/dist/cylinder.js +0 -37
  13. package/dist/cylinder.js.map +0 -1
  14. package/dist/ellipse.d.ts +0 -5
  15. package/dist/ellipse.js +0 -20
  16. package/dist/ellipse.js.map +0 -1
  17. package/dist/gltf-object.d.ts +0 -249
  18. package/dist/gltf-object.js +0 -103
  19. package/dist/gltf-object.js.map +0 -1
  20. package/dist/html-overlay-element.d.ts +0 -1
  21. package/dist/html-overlay-element.js +0 -8
  22. package/dist/html-overlay-element.js.map +0 -1
  23. package/dist/light.d.ts +0 -14
  24. package/dist/light.js +0 -134
  25. package/dist/light.js.map +0 -1
  26. package/dist/polygon.d.ts +0 -17
  27. package/dist/polygon.js +0 -62
  28. package/dist/polygon.js.map +0 -1
  29. package/dist/rect.d.ts +0 -5
  30. package/dist/rect.js +0 -34
  31. package/dist/rect.js.map +0 -1
  32. package/dist/scene/component.d.ts +0 -1
  33. package/dist/scene/component.js +0 -29
  34. package/dist/scene/component.js.map +0 -1
  35. package/dist/sphere.d.ts +0 -9
  36. package/dist/sphere.js +0 -37
  37. package/dist/sphere.js.map +0 -1
  38. package/dist/sprite.d.ts +0 -238
  39. package/dist/sprite.js +0 -27
  40. package/dist/sprite.js.map +0 -1
  41. package/dist/text.d.ts +0 -1
  42. package/dist/text.js +0 -7
  43. package/dist/text.js.map +0 -1
  44. package/dist/three-container-editor.d.ts +0 -22
  45. package/dist/three-container-editor.js +0 -132
  46. package/dist/three-container-editor.js.map +0 -1
  47. package/dist/three-container.d.ts +0 -61
  48. package/dist/three-container.js +0 -371
  49. package/dist/three-container.js.map +0 -1
  50. package/dist/three-controls.d.ts +0 -111
  51. package/dist/three-controls.js +0 -414
  52. package/dist/three-controls.js.map +0 -1
  53. package/dist/three-layout.d.ts +0 -8
  54. package/dist/three-layout.js +0 -20
  55. package/dist/three-layout.js.map +0 -1
  56. package/dist/three-space.d.ts +0 -8
  57. package/dist/three-space.js +0 -58
  58. package/dist/three-space.js.map +0 -1
  59. package/dist/threed/common.d.ts +0 -22
  60. package/dist/threed/common.js +0 -19
  61. package/dist/threed/common.js.map +0 -1
  62. package/dist/threed/floor/floor.d.ts +0 -3
  63. package/dist/threed/floor/floor.js +0 -51
  64. package/dist/threed/floor/floor.js.map +0 -1
  65. package/dist/threed/html/elements.d.ts +0 -2
  66. package/dist/threed/html/elements.js +0 -21
  67. package/dist/threed/html/elements.js.map +0 -1
  68. package/dist/threed/index.d.ts +0 -16
  69. package/dist/threed/index.js +0 -17
  70. package/dist/threed/index.js.map +0 -1
  71. package/dist/threed/interfaces.d.ts +0 -15
  72. package/dist/threed/interfaces.js +0 -5
  73. package/dist/threed/interfaces.js.map +0 -1
  74. package/dist/threed/managers/camera-manager.d.ts +0 -14
  75. package/dist/threed/managers/camera-manager.js +0 -60
  76. package/dist/threed/managers/camera-manager.js.map +0 -1
  77. package/dist/threed/managers/controls-manager.d.ts +0 -50
  78. package/dist/threed/managers/controls-manager.js +0 -249
  79. package/dist/threed/managers/controls-manager.js.map +0 -1
  80. package/dist/threed/managers/event-manager3d.d.ts +0 -19
  81. package/dist/threed/managers/event-manager3d.js +0 -76
  82. package/dist/threed/managers/event-manager3d.js.map +0 -1
  83. package/dist/threed/managers/index.d.ts +0 -7
  84. package/dist/threed/managers/index.js +0 -7
  85. package/dist/threed/managers/index.js.map +0 -1
  86. package/dist/threed/managers/light-manager.d.ts +0 -7
  87. package/dist/threed/managers/light-manager.js +0 -37
  88. package/dist/threed/managers/light-manager.js.map +0 -1
  89. package/dist/threed/managers/renderer-manager.d.ts +0 -30
  90. package/dist/threed/managers/renderer-manager.js +0 -120
  91. package/dist/threed/managers/renderer-manager.js.map +0 -1
  92. package/dist/threed/managers/scene-manager.d.ts +0 -15
  93. package/dist/threed/managers/scene-manager.js +0 -48
  94. package/dist/threed/managers/scene-manager.js.map +0 -1
  95. package/dist/threed/managers/types.d.ts +0 -36
  96. package/dist/threed/managers/types.js +0 -2
  97. package/dist/threed/managers/types.js.map +0 -1
  98. package/dist/threed/real-object-camera-meshed.d.ts +0 -12
  99. package/dist/threed/real-object-camera-meshed.js +0 -49
  100. package/dist/threed/real-object-camera-meshed.js.map +0 -1
  101. package/dist/threed/real-object-camera.d.ts +0 -9
  102. package/dist/threed/real-object-camera.js +0 -31
  103. package/dist/threed/real-object-camera.js.map +0 -1
  104. package/dist/threed/real-object-dom-element.d.ts +0 -9
  105. package/dist/threed/real-object-dom-element.js +0 -48
  106. package/dist/threed/real-object-dom-element.js.map +0 -1
  107. package/dist/threed/real-object-dummy.d.ts +0 -6
  108. package/dist/threed/real-object-dummy.js +0 -11
  109. package/dist/threed/real-object-dummy.js.map +0 -1
  110. package/dist/threed/real-object-extrude.d.ts +0 -22
  111. package/dist/threed/real-object-extrude.js +0 -180
  112. package/dist/threed/real-object-extrude.js.map +0 -1
  113. package/dist/threed/real-object-gltf.d.ts +0 -16
  114. package/dist/threed/real-object-gltf.js +0 -105
  115. package/dist/threed/real-object-gltf.js.map +0 -1
  116. package/dist/threed/real-object-group.d.ts +0 -5
  117. package/dist/threed/real-object-group.js +0 -11
  118. package/dist/threed/real-object-group.js.map +0 -1
  119. package/dist/threed/real-object-mesh.d.ts +0 -13
  120. package/dist/threed/real-object-mesh.js +0 -73
  121. package/dist/threed/real-object-mesh.js.map +0 -1
  122. package/dist/threed/real-object-plane.d.ts +0 -5
  123. package/dist/threed/real-object-plane.js +0 -22
  124. package/dist/threed/real-object-plane.js.map +0 -1
  125. package/dist/threed/real-object-registry.d.ts +0 -7
  126. package/dist/threed/real-object-registry.js +0 -32
  127. package/dist/threed/real-object-registry.js.map +0 -1
  128. package/dist/threed/real-object-scene.d.ts +0 -21
  129. package/dist/threed/real-object-scene.js +0 -72
  130. package/dist/threed/real-object-scene.js.map +0 -1
  131. package/dist/threed/real-object-sprite-2d.d.ts +0 -14
  132. package/dist/threed/real-object-sprite-2d.js +0 -45
  133. package/dist/threed/real-object-sprite-2d.js.map +0 -1
  134. package/dist/threed/real-object-sprite.d.ts +0 -11
  135. package/dist/threed/real-object-sprite.js +0 -52
  136. package/dist/threed/real-object-sprite.js.map +0 -1
  137. package/dist/threed/real-object-text.d.ts +0 -15
  138. package/dist/threed/real-object-text.js +0 -66
  139. package/dist/threed/real-object-text.js.map +0 -1
  140. package/dist/threed/real-object.d.ts +0 -65
  141. package/dist/threed/real-object.js +0 -251
  142. package/dist/threed/real-object.js.map +0 -1
  143. package/dist/threed/texture/canvas-texture.d.ts +0 -4
  144. package/dist/threed/texture/canvas-texture.js +0 -49
  145. package/dist/threed/texture/canvas-texture.js.map +0 -1
  146. package/dist/threed/texture/text-texture.d.ts +0 -8
  147. package/dist/threed/texture/text-texture.js +0 -79
  148. package/dist/threed/texture/text-texture.js.map +0 -1
  149. package/dist/threed/three-dimensional-container.d.ts +0 -7
  150. package/dist/threed/three-dimensional-container.js +0 -2
  151. package/dist/threed/three-dimensional-container.js.map +0 -1
  152. package/dist/threed/utils/bound-uv-generator.d.ts +0 -16
  153. package/dist/threed/utils/bound-uv-generator.js +0 -42
  154. package/dist/threed/utils/bound-uv-generator.js.map +0 -1
  155. package/dist/threed/utils/dispose.d.ts +0 -2
  156. package/dist/threed/utils/dispose.js +0 -32
  157. package/dist/threed/utils/dispose.js.map +0 -1
  158. package/dist/wall.d.ts +0 -241
  159. package/dist/wall.js +0 -44
  160. package/dist/wall.js.map +0 -1
@@ -1,61 +0,0 @@
1
- import { Component, ComponentNature, Container, Properties } from '@hatiolab/things-scene';
2
- import * as THREE from 'three';
3
- import './three-layout.js';
4
- import { ThreeDimensionalContainer } from './threed/three-dimensional-container.js';
5
- import { SceneManager, CameraManager, RendererManager, LightManager, ControlsManager, EventManager3D, LightingConfig } from './threed/managers/index.js';
6
- export declare class ThreeContainer extends Container implements ThreeDimensionalContainer {
7
- protected sceneManager: SceneManager;
8
- protected cameraManager: CameraManager;
9
- protected rendererManager: RendererManager;
10
- protected lightManager: LightManager;
11
- protected controlsManager: ControlsManager;
12
- protected eventManager: EventManager3D;
13
- _initalizeComplete?: Promise<void>;
14
- _onFocus?: (e: FocusEvent) => void;
15
- _onResize?: (e: Event) => void;
16
- containable(component: Component): boolean;
17
- is3dContainer(): boolean;
18
- createObjects(components: Component[]): void;
19
- destroy_scene3d(): void;
20
- protected getLightingConfig(): LightingConfig;
21
- protected getCss3DSceneAttribute(): string | undefined;
22
- update(): void;
23
- resize(): void;
24
- init_scene3d(): void;
25
- threed_animate(): void;
26
- stop(): void;
27
- get scene3d(): THREE.Scene | undefined;
28
- get renderer3d(): THREE.WebGLRenderer | undefined;
29
- get mixer(): THREE.AnimationMixer | undefined;
30
- get zoom(): number | undefined;
31
- get css3DScene(): THREE.Scene;
32
- get css3DRenderer(): import("three/examples/jsm/renderers/CSS3DRenderer.js").CSS3DRenderer;
33
- buildOverlays(): void;
34
- render_threed(): void;
35
- render(ctx: CanvasRenderingContext2D): void;
36
- postrender(ctx: CanvasRenderingContext2D): void;
37
- dispose(): void;
38
- get layout(): any;
39
- get nature(): ComponentNature;
40
- getObjectByRaycast(): THREE.Object3D | undefined;
41
- getObjectsByRaycast(): THREE.Intersection<THREE.Object3D<THREE.Object3DEventMap>>[] | undefined;
42
- _showWebglNoSupportText(context: CanvasRenderingContext2D): void;
43
- onchange(after: Properties, before: Properties): void;
44
- onmousedown(e: MouseEvent): void;
45
- onmouseup(e: MouseEvent): void;
46
- onmousemove(e: MouseEvent): void;
47
- onmouseleave(e: MouseEvent): void;
48
- onwheel(e: WheelEvent): void;
49
- ondblclick(e: MouseEvent): void;
50
- ondragstart(e: DragEvent): void;
51
- ondragmove(e: DragEvent): void;
52
- ondragend(e: DragEvent): void;
53
- ontouchstart(e: TouchEvent): void;
54
- onpan(e: TouchEvent): void;
55
- ontouchend(e: TouchEvent): void;
56
- onkeydown(e: KeyboardEvent): void;
57
- onpinch(e: TouchEvent): void;
58
- ondoubletap(): void;
59
- handleMouseWheel(event: WheelEvent): void;
60
- onredraw(): void;
61
- }
@@ -1,371 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import { __decorate } from "tslib";
5
- import { Container, error, FPS, Layout, sceneComponent } from '@hatiolab/things-scene';
6
- import './three-layout.js';
7
- import { createRealObjectFor } from './threed/real-object-registry.js';
8
- import { SceneManager, CameraManager, RendererManager, LightManager, ControlsManager, EventManager3D } from './threed/managers/index.js';
9
- const NATURE = {
10
- mutable: false,
11
- resizable: true,
12
- rotatable: true,
13
- properties: [
14
- {
15
- type: 'select',
16
- label: 'precision',
17
- name: 'precision',
18
- property: {
19
- options: [
20
- { display: 'High', value: 'highp' },
21
- { display: 'Medium', value: 'mediump' },
22
- { display: 'Low', value: 'lowp' }
23
- ]
24
- }
25
- },
26
- { type: 'checkbox', label: 'anti-alias', name: 'antialias', property: 'antialias' },
27
- { type: 'checkbox', label: '3dmode', name: 'threed', property: 'threed' },
28
- { type: 'checkbox', label: 'auto-rotate', name: 'autoRotate', property: 'autoRotate' },
29
- { type: 'checkbox', label: 'debug', name: 'debug', property: 'debug' }
30
- ],
31
- help: 'scene/component/three-container'
32
- };
33
- const WEBGL_NO_SUPPORT_TEXT = 'WebGL no support';
34
- let ThreeContainer = class ThreeContainer extends Container {
35
- constructor() {
36
- super(...arguments);
37
- this.sceneManager = new SceneManager();
38
- this.cameraManager = new CameraManager();
39
- this.rendererManager = new RendererManager();
40
- this.lightManager = new LightManager();
41
- this.controlsManager = new ControlsManager();
42
- this.eventManager = new EventManager3D();
43
- }
44
- containable(component) {
45
- return true;
46
- }
47
- is3dContainer() {
48
- return true;
49
- }
50
- /* THREE Object related .. */
51
- createObjects(components) {
52
- for (const component of components) {
53
- try {
54
- const item = createRealObjectFor(component);
55
- if (item) {
56
- component._realObject = item;
57
- item.update();
58
- item.updateTransform();
59
- if (component.isHTMLElement()) {
60
- this.rendererManager.css3DScene.add(item.object3d);
61
- }
62
- else {
63
- this.sceneManager.scene.add(item.object3d);
64
- }
65
- }
66
- }
67
- catch (err) {
68
- error(err);
69
- }
70
- }
71
- }
72
- destroy_scene3d() {
73
- this.stop();
74
- window.removeEventListener('focus', this._onFocus);
75
- window.removeEventListener('resize', this._onResize);
76
- this.controlsManager.destroy();
77
- this.lightManager.destroy();
78
- this.rendererManager.destroy();
79
- this.cameraManager.destroy();
80
- this.sceneManager.destroy();
81
- this.eventManager.destroy();
82
- }
83
- getLightingConfig() {
84
- return {
85
- hemisphere: { skyColor: 0xdddddd, groundColor: 0x333333, intensity: 0.035 }
86
- };
87
- }
88
- getCss3DSceneAttribute() {
89
- return 'three-container:css3d-renderer';
90
- }
91
- update() {
92
- const { width, height } = this.bounds;
93
- const { fov = 45, near = 0.1, far = 20000, antialias = true, precision = 'highp', cameraX, cameraY, cameraZ, exposure = 2.5 } = this.state;
94
- const components = this.components || [];
95
- // SCENE
96
- const scene = this.sceneManager.setup();
97
- // CAMERA
98
- const camera = this.cameraManager.setup(width, height, {
99
- fov, near, far, zoom: this.getState('zoom'), cameraX, cameraY, cameraZ
100
- });
101
- this.cameraManager.addToScene(scene);
102
- // RENDERER (WebGL)
103
- if (!this.rendererManager.setupWebGL(width, height, { precision, antialias, exposure })) {
104
- return;
105
- }
106
- // CONTROLS
107
- this.controlsManager.setup(camera, this);
108
- // LIGHTS
109
- this.lightManager.setup(scene, camera, this.getLightingConfig());
110
- // MIXER
111
- this.sceneManager.setupMixer();
112
- // CREATE 3D OBJECTS
113
- this.createObjects(components);
114
- camera.updateProjectionMatrix();
115
- // FLOOR
116
- this.sceneManager.addFloor(this);
117
- // POSTPROCESSING
118
- this.rendererManager.setupComposer(scene, camera, width, height);
119
- // CSS3D
120
- this.rendererManager.setupCSS3D(this.app.isViewMode, this.getCss3DSceneAttribute());
121
- // EVENT LISTENERS
122
- this._onFocus = () => this.render_threed();
123
- this._onResize = () => this.resize();
124
- window.addEventListener('resize', this._onResize);
125
- window.addEventListener('focus', this._onFocus);
126
- this.buildOverlays();
127
- this.resize();
128
- }
129
- resize() {
130
- const { width, height } = this.bounds;
131
- this.cameraManager.updateAspect(width, height);
132
- this.rendererManager.resize(width, height);
133
- }
134
- init_scene3d() {
135
- this.root.on('redraw', this.onredraw, this);
136
- if (this.sceneManager.scene) {
137
- this.destroy_scene3d();
138
- }
139
- this.update();
140
- this.onchangeData && this.onchangeData(this.data, this.data);
141
- }
142
- threed_animate() {
143
- if (!this.controlsManager.isActive) {
144
- return;
145
- }
146
- this.sceneManager.updateAnimation();
147
- this.controlsManager.update();
148
- this.render_threed();
149
- }
150
- stop() { }
151
- get scene3d() {
152
- if (!this.sceneManager.scene) {
153
- this.init_scene3d();
154
- }
155
- return this.sceneManager.scene;
156
- }
157
- get renderer3d() {
158
- return this.rendererManager.renderer;
159
- }
160
- get mixer() {
161
- return this.sceneManager.mixer;
162
- }
163
- get zoom() {
164
- return this.cameraManager.zoom;
165
- }
166
- get css3DScene() {
167
- return this.rendererManager.css3DScene;
168
- }
169
- get css3DRenderer() {
170
- return this.rendererManager.css3DRenderer;
171
- }
172
- buildOverlays() {
173
- this.element.appendChild(this.css3DRenderer.domElement);
174
- }
175
- render_threed() {
176
- this.rendererManager.render();
177
- }
178
- /* Container Overrides */
179
- render(ctx) {
180
- if (this.app.isViewMode) {
181
- this.setState('threed', true);
182
- }
183
- if (this.state.threed && !this.rendererManager.noSupportWebgl && this.cameraManager.camera) {
184
- this.rendererManager.renderCSS3D(this.cameraManager.camera);
185
- return;
186
- }
187
- super.render(ctx);
188
- }
189
- postrender(ctx) {
190
- const { left, top, debug, threed } = this.state;
191
- let { width, height } = this.bounds;
192
- width = Math.floor(width);
193
- height = Math.floor(height);
194
- if (threed) {
195
- if (!this.sceneManager.scene) {
196
- this.init_scene3d();
197
- this.render_threed();
198
- }
199
- if (this.rendererManager.noSupportWebgl) {
200
- this._showWebglNoSupportText(ctx);
201
- return;
202
- }
203
- if (!this.rendererManager.renderer) {
204
- return;
205
- }
206
- const { width: rw, height: rh } = this.rendererManager.getSize();
207
- ctx.drawImage(this.rendererManager.domElement, 0, 0, rw, rh, left, top, width, height);
208
- if (debug) {
209
- ctx.font = 100 + 'px Arial';
210
- ctx.textAlign = 'center';
211
- ctx.fillStyle = 'black';
212
- ctx.globalAlpha = 0.5;
213
- ctx.fillText(String(FPS()), 100, 100);
214
- }
215
- }
216
- else {
217
- super.postrender(ctx);
218
- }
219
- }
220
- dispose() {
221
- this.root.off('redraw', this.onredraw, this);
222
- this.rendererManager.disposeCSS3DScene();
223
- this.destroy_scene3d();
224
- super.dispose();
225
- }
226
- get layout() {
227
- return Layout.get('three');
228
- }
229
- get nature() {
230
- return NATURE;
231
- }
232
- getObjectByRaycast() {
233
- if (!this.cameraManager.camera || !this.sceneManager.scene)
234
- return;
235
- return this.eventManager.getObjectByRaycast(this.cameraManager.camera, this.sceneManager.scene);
236
- }
237
- getObjectsByRaycast() {
238
- if (!this.cameraManager.camera || !this.sceneManager.scene)
239
- return;
240
- return this.eventManager.getObjectsByRaycast(this.cameraManager.camera, this.sceneManager.scene);
241
- }
242
- _showWebglNoSupportText(context) {
243
- context.save();
244
- const { width, height } = this.state;
245
- context.font = width / 20 + 'px Arial';
246
- context.textAlign = 'center';
247
- context.fillText(WEBGL_NO_SUPPORT_TEXT, width / 2 - width / 40, height / 2);
248
- context.restore();
249
- }
250
- /* Event Handlers */
251
- onchange(after, before) {
252
- if (after.hasOwnProperty('width') || after.hasOwnProperty('height') || after.hasOwnProperty('threed'))
253
- this.destroy_scene3d();
254
- if (after.hasOwnProperty('autoRotate')) {
255
- this.controlsManager.setAutoRotate(after.autoRotate);
256
- }
257
- if (after.hasOwnProperty('fov') ||
258
- after.hasOwnProperty('near') ||
259
- after.hasOwnProperty('far') ||
260
- after.hasOwnProperty('zoom')) {
261
- const { near, far, zoom, fov } = this.state;
262
- this.cameraManager.updateProperties({ near, far, zoom, fov });
263
- this.controlsManager.markCameraChanged();
264
- }
265
- }
266
- onmousedown(e) { }
267
- onmouseup(e) {
268
- if (this.controlsManager.isActive) {
269
- const { left, top, width, height } = this.state;
270
- const pointer = this.transcoordC2S(e.offsetX, e.offsetY);
271
- this.eventManager.updateMouseNDC(pointer.x, pointer.y, left, top, width, height);
272
- this.eventManager.handleClick(this.cameraManager.camera, this.sceneManager.scene, e);
273
- e.stopPropagation();
274
- }
275
- }
276
- onmousemove(e) {
277
- if (this.controlsManager.isActive) {
278
- const { left, top, width, height } = this.state;
279
- const pointer = this.transcoordC2S(e.offsetX, e.offsetY);
280
- this.eventManager.updateMouseNDC(pointer.x, pointer.y, left, top, width, height);
281
- this.eventManager.handleHover(this.cameraManager.camera, this.sceneManager.scene, e);
282
- e.stopPropagation();
283
- }
284
- }
285
- onmouseleave(e) { }
286
- onwheel(e) {
287
- if (this.controlsManager.isActive) {
288
- this.handleMouseWheel(e);
289
- e.stopPropagation();
290
- }
291
- }
292
- ondblclick(e) {
293
- if (this.controlsManager.isActive) {
294
- this.setState('zoom', this.getState('zoom'));
295
- this.controlsManager.reset();
296
- e.stopPropagation();
297
- }
298
- }
299
- // things-scene 이벤트 → ControlsManager (orbit/pan 처리)
300
- ondragstart(e) {
301
- if (this.controlsManager.isActive) {
302
- this.controlsManager.onDragStart(e);
303
- e.stopPropagation();
304
- }
305
- }
306
- ondragmove(e) {
307
- if (this.controlsManager.isActive) {
308
- this.controlsManager.onDragMove(e);
309
- e.stopPropagation();
310
- }
311
- }
312
- ondragend(e) {
313
- if (this.controlsManager.isActive) {
314
- this.controlsManager.onDragEnd(e);
315
- e.stopPropagation();
316
- }
317
- }
318
- ontouchstart(e) {
319
- if (this.controlsManager.isActive) {
320
- this.controlsManager.onTouchStart(e);
321
- e.stopPropagation();
322
- }
323
- }
324
- onpan(e) {
325
- if (this.controlsManager.isActive) {
326
- this.controlsManager.onTouchMove(e);
327
- e.stopPropagation();
328
- }
329
- }
330
- ontouchend(e) {
331
- if (this.controlsManager.isActive) {
332
- this.controlsManager.onTouchEnd(e);
333
- e.stopPropagation();
334
- }
335
- }
336
- onkeydown(e) {
337
- if (this.controlsManager.isActive) {
338
- this.controlsManager.onKeyDown(e);
339
- e.stopPropagation();
340
- }
341
- }
342
- onpinch(e) {
343
- if (this.controlsManager.isActive) {
344
- var zoom = this.getState('zoom');
345
- //@ts-ignore
346
- zoom *= e.scale;
347
- if (zoom < 100)
348
- zoom = 100;
349
- this.setState('zoom', zoom);
350
- e.stopPropagation();
351
- }
352
- }
353
- ondoubletap() {
354
- this.controlsManager.reset();
355
- }
356
- handleMouseWheel(event) {
357
- var zoom = this.getState('zoom');
358
- zoom += -event.deltaY * 0.1;
359
- if (zoom < 100)
360
- zoom = 100;
361
- this.setState('zoom', zoom);
362
- }
363
- onredraw() {
364
- this.threed_animate();
365
- }
366
- };
367
- ThreeContainer = __decorate([
368
- sceneComponent('3d-container')
369
- ], ThreeContainer);
370
- export { ThreeContainer };
371
- //# sourceMappingURL=three-container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"three-container.js","sourceRoot":"","sources":["../src/three-container.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,OAAO,EAGL,SAAS,EACT,KAAK,EACL,GAAG,EACH,MAAM,EAEN,cAAc,EACf,MAAM,wBAAwB,CAAA;AAG/B,OAAO,mBAAmB,CAAA;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EAEf,MAAM,4BAA4B,CAAA;AAEnC,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE;oBACP,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;oBACnC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;oBACvC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;iBAClC;aACF;SACF;QACD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE;QACnF,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;QACzE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE;QACtF,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;KACvE;IACD,IAAI,EAAE,iCAAiC;CACxC,CAAA;AAED,MAAM,qBAAqB,GAAG,kBAAkB,CAAA;AAGzC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS;IAAtC;;QACK,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QACjC,kBAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACnC,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QACvC,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QACjC,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QACvC,iBAAY,GAAG,IAAI,cAAc,EAAE,CAAA;IA4Z/C,CAAC;IAtZC,WAAW,CAAC,SAAoB;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6BAA6B;IAE7B,aAAa,CAAC,UAAuB;QACnC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;gBAC3C,IAAI,IAAI,EAAE,CAAC;oBACT,SAAS,CAAC,WAAW,GAAG,IAAI,CAAA;oBAC5B,IAAI,CAAC,MAAM,EAAE,CAAA;oBACb,IAAI,CAAC,eAAe,EAAE,CAAA;oBAEtB,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;wBAC9B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAE,IAA6B,CAAC,QAAQ,CAAC,CAAA;oBAC9E,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,YAAY,CAAC,KAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,GAAG,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,EAAE,CAAA;QAEX,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAS,CAAC,CAAA;QACnD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAU,CAAC,CAAA;QAErD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAA;QAC9B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;QAC3B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAA;QAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;QAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAES,iBAAiB;QACzB,OAAO;YACL,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;SAC5E,CAAA;IACH,CAAC;IAES,sBAAsB;QAC9B,OAAO,gCAAgC,CAAA;IACzC,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QACrC,MAAM,EACJ,GAAG,GAAG,EAAE,EACR,IAAI,GAAG,GAAG,EACV,GAAG,GAAG,KAAK,EACX,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,OAAO,EACnB,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,GAAG,GAAG,EACf,GAAG,IAAI,CAAC,KAAK,CAAA;QAEd,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAA;QAExC,QAAQ;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QAEvC,SAAS;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;YACrD,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;SACvE,CAAC,CAAA;QACF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAEpC,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACxF,OAAM;QACR,CAAC;QAED,WAAW;QACX,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAExC,SAAS;QACT,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAEhE,QAAQ;QACR,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;QAE9B,oBAAoB;QACpB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,MAAM,CAAC,sBAAsB,EAAE,CAAA;QAE/B,QAAQ;QACR,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAA;QAEvC,iBAAiB;QACjB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAEhE,QAAQ;QACR,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;QAEnF,kBAAkB;QAClB,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;QACpC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACjD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE/C,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QACrC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC5C,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAE3C,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,EAAE,CAAA;QACxB,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAA;QAEb,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAA;QACnC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,IAAI,KAAI,CAAC;IAET,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;IAChC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAA;IACtC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAA;IAChC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAA;IACxC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAA;IAC3C,CAAC;IAED,aAAa;QACX,IAAI,CAAC,OAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IAC1D,CAAC;IAED,aAAa;QACX,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;IAC/B,CAAC;IAED,yBAAyB;IAEzB,MAAM,CAAC,GAA6B;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3F,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAC3D,OAAM;QACR,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IAED,UAAU,CAAC,GAA6B;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC/C,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEnC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAE3B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC,YAAY,EAAE,CAAA;gBACnB,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;gBACxC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;gBACjC,OAAM;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;gBACnC,OAAM;YACR,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAA;YAChE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,UAAW,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAEvF,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,CAAA;gBAC3B,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAA;gBACxB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAA;gBACvB,GAAG,CAAC,WAAW,GAAG,GAAG,CAAA;gBACrB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,KAAK,CAAC,OAAO,EAAE,CAAA;IACjB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK;YAAE,OAAM;QAClE,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACjG,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK;YAAE,OAAM;QAClE,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAClG,CAAC;IAED,uBAAuB,CAAC,OAAiC;QACvD,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACpC,OAAO,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG,UAAU,CAAA;QACtC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC5B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAC3E,OAAO,CAAC,OAAO,EAAE,CAAA;IACnB,CAAC;IAED,oBAAoB;IAEpB,QAAQ,CAAC,KAAiB,EAAE,MAAkB;QAC5C,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YACnG,IAAI,CAAC,eAAe,EAAE,CAAA;QAExB,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACtD,CAAC;QAED,IACE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;YAC3B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YAC5B,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;YAC3B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAC5B,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YAC3C,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YAC7D,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,WAAW,CAAC,CAAa,IAAG,CAAC;IAE7B,SAAS,CAAC,CAAa;QACrB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;YACxD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAEhF,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,MAAO,EAAE,IAAI,CAAC,YAAY,CAAC,KAAM,EAAE,CAAC,CAAC,CAAA;YACtF,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,WAAW,CAAC,CAAa;QACvB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;YACxD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAEhF,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,MAAO,EAAE,IAAI,CAAC,YAAY,CAAC,KAAM,EAAE,CAAC,CAAC,CAAA;YACtF,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,CAAa,IAAG,CAAC;IAE9B,OAAO,CAAC,CAAa;QACnB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,CAAa;QACtB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YAC5C,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;YAC5B,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,WAAW,CAAC,CAAY;QACtB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACnC,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,CAAY;QACrB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAClC,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,CAAY;QACpB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACjC,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,CAAa;QACxB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YACpC,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAa;QACjB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACnC,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,CAAa;QACtB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAClC,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,CAAgB;QACxB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACjC,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAa;QACnB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAChC,YAAY;YACZ,IAAI,IAAI,CAAC,CAAC,KAAK,CAAA;YACf,IAAI,IAAI,GAAG,GAAG;gBAAE,IAAI,GAAG,GAAG,CAAA;YAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAC3B,CAAC,CAAC,eAAe,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IAED,gBAAgB,CAAC,KAAiB;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAA;QAC3B,IAAI,IAAI,GAAG,GAAG;YAAE,IAAI,GAAG,GAAG,CAAA;QAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;CACF,CAAA;AAlaY,cAAc;IAD1B,cAAc,CAAC,cAAc,CAAC;GAClB,cAAc,CAka1B","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport {\n Component,\n ComponentNature,\n Container,\n error,\n FPS,\n Layout,\n Properties,\n sceneComponent\n} from '@hatiolab/things-scene'\nimport * as THREE from 'three'\n\nimport './three-layout.js'\nimport { ThreeDimensionalContainer } from './threed/three-dimensional-container.js'\nimport { RealObjectDomElement } from './threed/real-object-dom-element.js'\nimport { createRealObjectFor } from './threed/real-object-registry.js'\nimport {\n SceneManager,\n CameraManager,\n RendererManager,\n LightManager,\n ControlsManager,\n EventManager3D,\n LightingConfig\n} from './threed/managers/index.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'precision',\n name: 'precision',\n property: {\n options: [\n { display: 'High', value: 'highp' },\n { display: 'Medium', value: 'mediump' },\n { display: 'Low', value: 'lowp' }\n ]\n }\n },\n { type: 'checkbox', label: 'anti-alias', name: 'antialias', property: 'antialias' },\n { type: 'checkbox', label: '3dmode', name: 'threed', property: 'threed' },\n { type: 'checkbox', label: 'auto-rotate', name: 'autoRotate', property: 'autoRotate' },\n { type: 'checkbox', label: 'debug', name: 'debug', property: 'debug' }\n ],\n help: 'scene/component/three-container'\n}\n\nconst WEBGL_NO_SUPPORT_TEXT = 'WebGL no support'\n\n@sceneComponent('3d-container')\nexport class ThreeContainer extends Container implements ThreeDimensionalContainer {\n protected sceneManager = new SceneManager()\n protected cameraManager = new CameraManager()\n protected rendererManager = new RendererManager()\n protected lightManager = new LightManager()\n protected controlsManager = new ControlsManager()\n protected eventManager = new EventManager3D()\n\n _initalizeComplete?: Promise<void>\n _onFocus?: (e: FocusEvent) => void\n _onResize?: (e: Event) => void\n\n containable(component: Component) {\n return true\n }\n\n is3dContainer() {\n return true\n }\n\n /* THREE Object related .. */\n\n createObjects(components: Component[]) {\n for (const component of components) {\n try {\n const item = createRealObjectFor(component)\n if (item) {\n component._realObject = item\n item.update()\n item.updateTransform()\n\n if (component.isHTMLElement()) {\n this.rendererManager.css3DScene.add((item as RealObjectDomElement).object3d)\n } else {\n this.sceneManager.scene!.add(item.object3d)\n }\n }\n } catch (err) {\n error(err)\n }\n }\n }\n\n destroy_scene3d() {\n this.stop()\n\n window.removeEventListener('focus', this._onFocus!)\n window.removeEventListener('resize', this._onResize!)\n\n this.controlsManager.destroy()\n this.lightManager.destroy()\n this.rendererManager.destroy()\n this.cameraManager.destroy()\n this.sceneManager.destroy()\n this.eventManager.destroy()\n }\n\n protected getLightingConfig(): LightingConfig {\n return {\n hemisphere: { skyColor: 0xdddddd, groundColor: 0x333333, intensity: 0.035 }\n }\n }\n\n protected getCss3DSceneAttribute(): string | undefined {\n return 'three-container:css3d-renderer'\n }\n\n update() {\n const { width, height } = this.bounds\n const {\n fov = 45,\n near = 0.1,\n far = 20000,\n antialias = true,\n precision = 'highp',\n cameraX,\n cameraY,\n cameraZ,\n exposure = 2.5\n } = this.state\n\n const components = this.components || []\n\n // SCENE\n const scene = this.sceneManager.setup()\n\n // CAMERA\n const camera = this.cameraManager.setup(width, height, {\n fov, near, far, zoom: this.getState('zoom'), cameraX, cameraY, cameraZ\n })\n this.cameraManager.addToScene(scene)\n\n // RENDERER (WebGL)\n if (!this.rendererManager.setupWebGL(width, height, { precision, antialias, exposure })) {\n return\n }\n\n // CONTROLS\n this.controlsManager.setup(camera, this)\n\n // LIGHTS\n this.lightManager.setup(scene, camera, this.getLightingConfig())\n\n // MIXER\n this.sceneManager.setupMixer()\n\n // CREATE 3D OBJECTS\n this.createObjects(components)\n camera.updateProjectionMatrix()\n\n // FLOOR\n this.sceneManager.addFloor(this as any)\n\n // POSTPROCESSING\n this.rendererManager.setupComposer(scene, camera, width, height)\n\n // CSS3D\n this.rendererManager.setupCSS3D(this.app.isViewMode, this.getCss3DSceneAttribute())\n\n // EVENT LISTENERS\n this._onFocus = () => this.render_threed()\n this._onResize = () => this.resize()\n window.addEventListener('resize', this._onResize)\n window.addEventListener('focus', this._onFocus)\n\n this.buildOverlays()\n this.resize()\n }\n\n resize() {\n const { width, height } = this.bounds\n this.cameraManager.updateAspect(width, height)\n this.rendererManager.resize(width, height)\n }\n\n init_scene3d() {\n this.root.on('redraw', this.onredraw, this)\n\n if (this.sceneManager.scene) {\n this.destroy_scene3d()\n }\n\n this.update()\n\n this.onchangeData && this.onchangeData(this.data, this.data)\n }\n\n threed_animate() {\n if (!this.controlsManager.isActive) {\n return\n }\n\n this.sceneManager.updateAnimation()\n this.controlsManager.update()\n this.render_threed()\n }\n\n stop() {}\n\n get scene3d() {\n if (!this.sceneManager.scene) {\n this.init_scene3d()\n }\n return this.sceneManager.scene\n }\n\n get renderer3d() {\n return this.rendererManager.renderer\n }\n\n get mixer() {\n return this.sceneManager.mixer\n }\n\n get zoom() {\n return this.cameraManager.zoom\n }\n\n get css3DScene() {\n return this.rendererManager.css3DScene\n }\n\n get css3DRenderer() {\n return this.rendererManager.css3DRenderer\n }\n\n buildOverlays() {\n this.element!.appendChild(this.css3DRenderer.domElement)\n }\n\n render_threed() {\n this.rendererManager.render()\n }\n\n /* Container Overrides */\n\n render(ctx: CanvasRenderingContext2D) {\n if (this.app.isViewMode) {\n this.setState('threed', true)\n }\n\n if (this.state.threed && !this.rendererManager.noSupportWebgl && this.cameraManager.camera) {\n this.rendererManager.renderCSS3D(this.cameraManager.camera)\n return\n }\n\n super.render(ctx)\n }\n\n postrender(ctx: CanvasRenderingContext2D) {\n const { left, top, debug, threed } = this.state\n let { width, height } = this.bounds\n\n width = Math.floor(width)\n height = Math.floor(height)\n\n if (threed) {\n if (!this.sceneManager.scene) {\n this.init_scene3d()\n this.render_threed()\n }\n\n if (this.rendererManager.noSupportWebgl) {\n this._showWebglNoSupportText(ctx)\n return\n }\n\n if (!this.rendererManager.renderer) {\n return\n }\n\n const { width: rw, height: rh } = this.rendererManager.getSize()\n ctx.drawImage(this.rendererManager.domElement!, 0, 0, rw, rh, left, top, width, height)\n\n if (debug) {\n ctx.font = 100 + 'px Arial'\n ctx.textAlign = 'center'\n ctx.fillStyle = 'black'\n ctx.globalAlpha = 0.5\n ctx.fillText(String(FPS()), 100, 100)\n }\n } else {\n super.postrender(ctx)\n }\n }\n\n dispose() {\n this.root.off('redraw', this.onredraw, this)\n this.rendererManager.disposeCSS3DScene()\n this.destroy_scene3d()\n super.dispose()\n }\n\n get layout(): any {\n return Layout.get('three')\n }\n\n get nature(): ComponentNature {\n return NATURE\n }\n\n getObjectByRaycast(): THREE.Object3D | undefined {\n if (!this.cameraManager.camera || !this.sceneManager.scene) return\n return this.eventManager.getObjectByRaycast(this.cameraManager.camera, this.sceneManager.scene)\n }\n\n getObjectsByRaycast() {\n if (!this.cameraManager.camera || !this.sceneManager.scene) return\n return this.eventManager.getObjectsByRaycast(this.cameraManager.camera, this.sceneManager.scene)\n }\n\n _showWebglNoSupportText(context: CanvasRenderingContext2D) {\n context.save()\n const { width, height } = this.state\n context.font = width / 20 + 'px Arial'\n context.textAlign = 'center'\n context.fillText(WEBGL_NO_SUPPORT_TEXT, width / 2 - width / 40, height / 2)\n context.restore()\n }\n\n /* Event Handlers */\n\n onchange(after: Properties, before: Properties) {\n if (after.hasOwnProperty('width') || after.hasOwnProperty('height') || after.hasOwnProperty('threed'))\n this.destroy_scene3d()\n\n if (after.hasOwnProperty('autoRotate')) {\n this.controlsManager.setAutoRotate(after.autoRotate)\n }\n\n if (\n after.hasOwnProperty('fov') ||\n after.hasOwnProperty('near') ||\n after.hasOwnProperty('far') ||\n after.hasOwnProperty('zoom')\n ) {\n const { near, far, zoom, fov } = this.state\n this.cameraManager.updateProperties({ near, far, zoom, fov })\n this.controlsManager.markCameraChanged()\n }\n }\n\n onmousedown(e: MouseEvent) {}\n\n onmouseup(e: MouseEvent) {\n if (this.controlsManager.isActive) {\n const { left, top, width, height } = this.state\n const pointer = this.transcoordC2S(e.offsetX, e.offsetY)\n this.eventManager.updateMouseNDC(pointer.x, pointer.y, left, top, width, height)\n\n this.eventManager.handleClick(this.cameraManager.camera!, this.sceneManager.scene!, e)\n e.stopPropagation()\n }\n }\n\n onmousemove(e: MouseEvent) {\n if (this.controlsManager.isActive) {\n const { left, top, width, height } = this.state\n const pointer = this.transcoordC2S(e.offsetX, e.offsetY)\n this.eventManager.updateMouseNDC(pointer.x, pointer.y, left, top, width, height)\n\n this.eventManager.handleHover(this.cameraManager.camera!, this.sceneManager.scene!, e)\n e.stopPropagation()\n }\n }\n\n onmouseleave(e: MouseEvent) {}\n\n onwheel(e: WheelEvent) {\n if (this.controlsManager.isActive) {\n this.handleMouseWheel(e)\n e.stopPropagation()\n }\n }\n\n ondblclick(e: MouseEvent) {\n if (this.controlsManager.isActive) {\n this.setState('zoom', this.getState('zoom'))\n this.controlsManager.reset()\n e.stopPropagation()\n }\n }\n\n // things-scene 이벤트 → ControlsManager (orbit/pan 처리)\n ondragstart(e: DragEvent) {\n if (this.controlsManager.isActive) {\n this.controlsManager.onDragStart(e)\n e.stopPropagation()\n }\n }\n\n ondragmove(e: DragEvent) {\n if (this.controlsManager.isActive) {\n this.controlsManager.onDragMove(e)\n e.stopPropagation()\n }\n }\n\n ondragend(e: DragEvent) {\n if (this.controlsManager.isActive) {\n this.controlsManager.onDragEnd(e)\n e.stopPropagation()\n }\n }\n\n ontouchstart(e: TouchEvent) {\n if (this.controlsManager.isActive) {\n this.controlsManager.onTouchStart(e)\n e.stopPropagation()\n }\n }\n\n onpan(e: TouchEvent) {\n if (this.controlsManager.isActive) {\n this.controlsManager.onTouchMove(e)\n e.stopPropagation()\n }\n }\n\n ontouchend(e: TouchEvent) {\n if (this.controlsManager.isActive) {\n this.controlsManager.onTouchEnd(e)\n e.stopPropagation()\n }\n }\n\n onkeydown(e: KeyboardEvent) {\n if (this.controlsManager.isActive) {\n this.controlsManager.onKeyDown(e)\n e.stopPropagation()\n }\n }\n\n onpinch(e: TouchEvent) {\n if (this.controlsManager.isActive) {\n var zoom = this.getState('zoom')\n //@ts-ignore\n zoom *= e.scale\n if (zoom < 100) zoom = 100\n this.setState('zoom', zoom)\n e.stopPropagation()\n }\n }\n\n ondoubletap() {\n this.controlsManager.reset()\n }\n\n handleMouseWheel(event: WheelEvent) {\n var zoom = this.getState('zoom')\n zoom += -event.deltaY * 0.1\n if (zoom < 100) zoom = 100\n this.setState('zoom', zoom)\n }\n\n onredraw() {\n this.threed_animate()\n }\n}\n"]}
@@ -1,111 +0,0 @@
1
- /**
2
- * @author qiao / https://github.com/qiao
3
- * @author mrdoob / http://mrdoob.com
4
- * @author alteredq / http://alteredqualia.com/
5
- * @author WestLangley / http://github.com/WestLangley
6
- * @author erich666 / http://erichaines.com
7
- */
8
- import { Component } from '@hatiolab/things-scene';
9
- import * as THREE from 'three';
10
- export declare class ThreeControls {
11
- object: THREE.Camera;
12
- component: Component;
13
- enabled: boolean;
14
- target: THREE.Vector3;
15
- minDistance: number;
16
- maxDistance: number;
17
- minZoom: number;
18
- maxZoom: number;
19
- minPolarAngle: number;
20
- maxPolarAngle: number;
21
- minAzimuthAngle: number;
22
- maxAzimuthAngle: number;
23
- enableDamping: boolean;
24
- dampingFactor: number;
25
- enableZoom: boolean;
26
- zoomSpeed: number;
27
- enableRotate: boolean;
28
- rotateSpeed: number;
29
- enablePan: boolean;
30
- keyPanSpeed: number;
31
- autoRotate: boolean;
32
- autoRotateSpeed: number;
33
- enableKeys: boolean;
34
- keys: {
35
- LEFT: number;
36
- UP: number;
37
- RIGHT: number;
38
- BOTTOM: number;
39
- };
40
- mouseButtons: {
41
- ORBIT: THREE.MOUSE;
42
- ZOOM: THREE.MOUSE;
43
- PAN: THREE.MOUSE;
44
- };
45
- target0: THREE.Vector3;
46
- position0: THREE.Vector3;
47
- zoom0: number;
48
- cameraChanged: boolean;
49
- lastScale: number;
50
- private _state;
51
- private _spherical;
52
- private _sphericalDelta;
53
- private _scale;
54
- private _panOffset;
55
- private _zoomChanged;
56
- private _rotateStart;
57
- private _rotateEnd;
58
- private _rotateDelta;
59
- private _panStart;
60
- private _panEnd;
61
- private _panDelta;
62
- private _dollyStart;
63
- private _dollyEnd;
64
- private _dollyDelta;
65
- private _startTime;
66
- private _offsetTheta;
67
- private _offset;
68
- private _quat;
69
- private _quatInverse;
70
- private _lastPosition;
71
- private _lastQuaternion;
72
- private _panLeftV;
73
- private _panUpV;
74
- private _panCalcOffset;
75
- constructor(object: THREE.Camera, component: Component);
76
- getPolarAngle(): number;
77
- getAzimuthalAngle(): number;
78
- saveState(): void;
79
- reset(): void;
80
- update(): boolean;
81
- dispose(): void;
82
- onDragStart(event: DragEvent): void;
83
- onDragMove(event: DragEvent): void;
84
- onDragEnd(event: DragEvent): void;
85
- onKeyDown(event: KeyboardEvent): void;
86
- onTouchStart(event: TouchEvent): void;
87
- onTouchMove(event: TouchEvent): void;
88
- onTouchEnd(event: TouchEvent): void;
89
- doAutoRotate(autoRotate: boolean): void;
90
- private _getAutoRotationAngle;
91
- private _getZoomScale;
92
- private _rotateLeft;
93
- private _rotateUp;
94
- private _panLeft;
95
- private _panUp;
96
- private _pan;
97
- private _dollyIn;
98
- private _dollyOut;
99
- private _handleDragStartRotate;
100
- private _handleDragStartDolly;
101
- private _handleDragStartPan;
102
- private _handleDragMoveRotate;
103
- private _handleDragMoveDolly;
104
- private _handleDragMovePan;
105
- private _handleKeyDown;
106
- private _handleTouchStartRotate;
107
- private _handleTouchStartPan;
108
- private _handleTouchMoveRotate;
109
- private _handleTouchMovePan;
110
- }
111
- export default ThreeControls;