@operato/scene-visualizer 1.2.28 → 1.2.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/db.sqlite +0 -0
- package/dist/editors/property-editor-gltf-info.js.map +1 -1
- package/dist/editors/property-editor-location-increase-pattern.js.map +1 -1
- package/dist/effects/outline.js +2 -1
- package/dist/effects/outline.js.map +1 -1
- package/dist/rack-table.d.ts +2 -1
- package/dist/rack-table.js +39 -23
- package/dist/rack-table.js.map +1 -1
- package/dist/rack.d.ts +7 -7
- package/dist/rack.js +37 -43
- package/dist/rack.js.map +1 -1
- package/dist/stock.d.ts +2 -2
- package/dist/stock.js +2 -1
- package/dist/stock.js.map +1 -1
- package/dist/three-container.js +8 -5
- package/dist/three-container.js.map +1 -1
- package/dist/three-controls.js +0 -8
- package/dist/three-controls.js.map +1 -1
- package/dist/threed/real-object-gltf.js +2 -1
- package/dist/threed/real-object-gltf.js.map +1 -1
- package/dist/threed/real-object.js +2 -1
- package/dist/threed/real-object.js.map +1 -1
- package/dist/threed/texture/canvas-texture.js +2 -1
- package/dist/threed/texture/canvas-texture.js.map +1 -1
- package/dist/visualizer.js +0 -6
- package/dist/visualizer.js.map +1 -1
- package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +26 -6
- package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +30 -0
- package/logs/application-2023-04-30-10.log +6 -0
- package/logs/application-2023-04-30-12.log +6 -0
- package/logs/application-2023-04-30-14.log +6 -0
- package/logs/application-2023-04-30-16.log +15 -0
- package/logs/application-2023-04-30-20.log +6 -0
- package/logs/application-2023-04-30-22.log +6 -0
- package/logs/connections-2023-04-30-10.log +41 -0
- package/logs/connections-2023-04-30-12.log +41 -0
- package/logs/connections-2023-04-30-14.log +41 -0
- package/logs/connections-2023-04-30-16.log +41 -0
- package/logs/connections-2023-04-30-20.log +41 -0
- package/logs/connections-2023-04-30-22.log +41 -0
- package/package.json +9 -9
- package/src/effects/outline.ts +2 -1
- package/src/rack-table.ts +56 -31
- package/src/rack.ts +52 -46
- package/src/three-container.ts +10 -6
- package/src/three-controls.ts +0 -9
- package/src/threed/real-object.ts +2 -1
- package/src/threed/texture/canvas-texture.ts +2 -1
- package/src/visualizer.ts +0 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/logs/application-2023-04-24-13.log +0 -15
- package/logs/application-2023-04-24-14.log +0 -12
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
2023-04-30T22:12:53+09:00 info: Initializing ConnectionManager...
|
|
2
|
+
2023-04-30T22:12:53+09:00 info: Connector 'echo-back-server' started to ready
|
|
3
|
+
2023-04-30T22:12:53+09:00 info: Connector 'echo-back' started to ready
|
|
4
|
+
2023-04-30T22:12:53+09:00 info: Connector 'http-connector' started to ready
|
|
5
|
+
2023-04-30T22:12:53+09:00 info: Connector 'graphql-connector' started to ready
|
|
6
|
+
2023-04-30T22:12:53+09:00 info: Connector 'sqlite-connector' started to ready
|
|
7
|
+
2023-04-30T22:12:53+09:00 info: Connector 'postgresql-connector' started to ready
|
|
8
|
+
2023-04-30T22:12:53+09:00 info: Connector 'mqtt-connector' started to ready
|
|
9
|
+
2023-04-30T22:12:53+09:00 info: Connector 'mssql-connector' started to ready
|
|
10
|
+
2023-04-30T22:12:53+09:00 info: Connector 'oracle-connector' started to ready
|
|
11
|
+
2023-04-30T22:12:53+09:00 info: Connector 'mysql-connector' started to ready
|
|
12
|
+
2023-04-30T22:12:53+09:00 info: Connector 'socket-server' started to ready
|
|
13
|
+
2023-04-30T22:12:53+09:00 info: Connector 'msgraph-connector' started to ready
|
|
14
|
+
2023-04-30T22:12:53+09:00 info: Connector 'openai-connector' started to ready
|
|
15
|
+
2023-04-30T22:12:53+09:00 info: echo-back-servers are ready
|
|
16
|
+
2023-04-30T22:12:53+09:00 info: echo-back connections are ready
|
|
17
|
+
2023-04-30T22:12:53+09:00 info: http-connector connections are ready
|
|
18
|
+
2023-04-30T22:12:53+09:00 info: graphql-connector connections are ready
|
|
19
|
+
2023-04-30T22:12:53+09:00 info: sqlite-connector connections are ready
|
|
20
|
+
2023-04-30T22:12:53+09:00 info: postgresql-connector connections are ready
|
|
21
|
+
2023-04-30T22:12:53+09:00 info: mqtt-connector connections are ready
|
|
22
|
+
2023-04-30T22:12:53+09:00 info: mssql-connector connections are ready
|
|
23
|
+
2023-04-30T22:12:53+09:00 info: oracle-connector connections are ready
|
|
24
|
+
2023-04-30T22:12:53+09:00 info: mysql-connector connections are ready
|
|
25
|
+
2023-04-30T22:12:53+09:00 info: socket servers are ready
|
|
26
|
+
2023-04-30T22:12:53+09:00 info: msgraph-connector connections are ready
|
|
27
|
+
2023-04-30T22:12:53+09:00 info: openai-connector connections are ready
|
|
28
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'echo-back-server' ready
|
|
29
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'echo-back' ready
|
|
30
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'http-connector' ready
|
|
31
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'graphql-connector' ready
|
|
32
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'sqlite-connector' ready
|
|
33
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'postgresql-connector' ready
|
|
34
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'mqtt-connector' ready
|
|
35
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'mssql-connector' ready
|
|
36
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'oracle-connector' ready
|
|
37
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'mysql-connector' ready
|
|
38
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'socket-server' ready
|
|
39
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'msgraph-connector' ready
|
|
40
|
+
2023-04-30T22:12:53+09:00 info: All connector for 'openai-connector' ready
|
|
41
|
+
2023-04-30T22:12:53+09:00 info: ConnectionManager initialization done:
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@operato/scene-visualizer",
|
|
3
3
|
"description": "visualizer component for operato-scene",
|
|
4
4
|
"author": "heartyoh",
|
|
5
|
-
"version": "1.2.
|
|
5
|
+
"version": "1.2.30",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
8
8
|
"things-scene": true,
|
|
@@ -28,26 +28,26 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@hatiolab/things-scene": "^3.2.0",
|
|
30
30
|
"lit": "^2.5.0",
|
|
31
|
-
"three": "^0.
|
|
31
|
+
"three": "^0.152.2",
|
|
32
32
|
"tinycolor2": "^1.6.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@hatiolab/prettier-config": "^1.0.0",
|
|
36
36
|
"@things-factory/builder": "^6.0.0",
|
|
37
37
|
"@things-factory/operato-board": "^6.0.0",
|
|
38
|
-
"@types/three": "^0.
|
|
38
|
+
"@types/three": "^0.151.0",
|
|
39
39
|
"@types/tinycolor2": "^1.4.3",
|
|
40
40
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
41
41
|
"@typescript-eslint/parser": "^4.33.0",
|
|
42
42
|
"@web/dev-server": "^0.1.28",
|
|
43
|
-
"concurrently": "^
|
|
44
|
-
"eslint": "^
|
|
43
|
+
"concurrently": "^8.0.1",
|
|
44
|
+
"eslint": "^8.39.0",
|
|
45
45
|
"eslint-config-prettier": "^8.3.0",
|
|
46
|
-
"husky": "^
|
|
47
|
-
"lint-staged": "^
|
|
46
|
+
"husky": "^8.0.3",
|
|
47
|
+
"lint-staged": "^13.2.2",
|
|
48
48
|
"prettier": "^2.4.1",
|
|
49
49
|
"tslib": "^2.3.1",
|
|
50
|
-
"typescript": "^
|
|
50
|
+
"typescript": "^5.0.4"
|
|
51
51
|
},
|
|
52
52
|
"prettier": "@hatiolab/prettier-config",
|
|
53
53
|
"husky": {
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"prettier --write"
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "a5bdc6934e745129aaa7d1ba72c452de7b6c2a4f"
|
|
65
65
|
}
|
package/src/effects/outline.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three'
|
|
2
|
+
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js'
|
|
2
3
|
|
|
3
4
|
const vertexShader = `
|
|
4
5
|
uniform float outline;
|
|
@@ -32,7 +33,7 @@ function outlineMesh(mesh: THREE.Mesh) {
|
|
|
32
33
|
// } else {
|
|
33
34
|
let outlineGeometry = mesh.geometry.clone()
|
|
34
35
|
// }
|
|
35
|
-
|
|
36
|
+
BufferGeometryUtils.mergeBufferGeometries([mesh.geometry, outlineGeometry]) //.mergeVertices()
|
|
36
37
|
outlineGeometry.computeVertexNormals()
|
|
37
38
|
const newMesh = new THREE.Mesh(outlineGeometry, outlineMaterial.clone())
|
|
38
39
|
mesh.add(newMesh)
|
package/src/rack-table.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
+
|
|
5
|
+
import * as THREE from 'three'
|
|
6
|
+
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js'
|
|
7
|
+
|
|
4
8
|
import {
|
|
5
9
|
ApplicationContext,
|
|
6
10
|
Component,
|
|
@@ -288,51 +292,72 @@ export class RackTable3d extends RealObjectGroup {
|
|
|
288
292
|
var { rotation = 0, shelfLocations, shelves = 1 } = this.component.state
|
|
289
293
|
|
|
290
294
|
this.object3d.rotation.y = -rotation
|
|
291
|
-
;(this.component as RackTable).components.forEach((cell: Component) => {
|
|
292
|
-
let { shelfLocations: shelfLoc = shelfLocations, isEmpty } = cell.state
|
|
293
295
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
+
const racks = (this.component as RackTable).components
|
|
297
|
+
.map((cell: Component) => {
|
|
298
|
+
let { shelfLocations: shelfLoc = shelfLocations, isEmpty } = cell.state
|
|
296
299
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
300
|
+
if (!isEmpty) {
|
|
301
|
+
cell.setState('shelfLocations', shelfLoc)
|
|
302
|
+
|
|
303
|
+
var rack = new Rack(cell)
|
|
304
|
+
|
|
305
|
+
rack.update()
|
|
306
|
+
this.object3d.add(rack.object3d)
|
|
307
|
+
|
|
308
|
+
return rack
|
|
309
|
+
}
|
|
310
|
+
return
|
|
311
|
+
})
|
|
312
|
+
.filter(rack => !!rack) as Rack[]
|
|
313
|
+
|
|
314
|
+
this.mergeAndAddRackCommonObjects(racks)
|
|
302
315
|
}
|
|
303
316
|
|
|
304
|
-
|
|
305
|
-
var
|
|
306
|
-
var
|
|
317
|
+
mergeAndAddRackCommonObjects(racks: Rack[]) {
|
|
318
|
+
var framesGeometries: THREE.BufferGeometry[] = []
|
|
319
|
+
var boardsGeometries: THREE.BufferGeometry[] = []
|
|
307
320
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
})
|
|
321
|
+
if (racks.length > 0) {
|
|
322
|
+
racks.forEach(rack => {
|
|
323
|
+
const geometry = rack.frame
|
|
312
324
|
|
|
313
|
-
|
|
325
|
+
if (!geometry) {
|
|
326
|
+
return
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
geometry.translate(rack.position.x, rack.position.y, rack.position.z)
|
|
330
|
+
geometry.scale(rack.scale.x, rack.scale.y, rack.scale.z)
|
|
331
|
+
framesGeometries.push(geometry)
|
|
332
|
+
})
|
|
333
|
+
|
|
334
|
+
if (framesGeometries.length > 0) {
|
|
335
|
+
const frameMesh = new THREE.Mesh(BufferGeometryUtils.mergeGeometries(framesGeometries), Rack.frameMaterial)
|
|
336
|
+
this.object3d.add(frameMesh)
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
racks.forEach(rack => {
|
|
340
|
+
const geometry = rack.board
|
|
314
341
|
|
|
315
|
-
|
|
316
|
-
frameGroup.children.forEach((f: any) => {
|
|
317
|
-
if (!targetFrame) {
|
|
318
|
-
targetFrame = f
|
|
342
|
+
if (!geometry) {
|
|
319
343
|
return
|
|
320
344
|
}
|
|
321
345
|
|
|
322
|
-
|
|
346
|
+
geometry.translate(rack.position.x, rack.position.y, rack.position.z)
|
|
347
|
+
geometry.scale(rack.scale.x, rack.scale.y, rack.scale.z)
|
|
348
|
+
boardsGeometries.push(geometry)
|
|
323
349
|
})
|
|
324
|
-
})
|
|
325
350
|
|
|
326
|
-
|
|
351
|
+
if (boardsGeometries.length > 0) {
|
|
352
|
+
const material = Rack.boardMaterial
|
|
353
|
+
material.opacity = 0.5
|
|
354
|
+
material.transparent = true
|
|
327
355
|
|
|
328
|
-
|
|
329
|
-
if (!targetBoard) {
|
|
330
|
-
targetBoard = b
|
|
331
|
-
return
|
|
332
|
-
}
|
|
356
|
+
const boardMesh = new THREE.Mesh(BufferGeometryUtils.mergeGeometries(boardsGeometries), material)
|
|
333
357
|
|
|
334
|
-
|
|
335
|
-
|
|
358
|
+
this.object3d.add(boardMesh)
|
|
359
|
+
}
|
|
360
|
+
}
|
|
336
361
|
}
|
|
337
362
|
|
|
338
363
|
makeShelfString(pattern: string, shelf: number, length: number) {
|
package/src/rack.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import * as THREE from 'three'
|
|
6
|
+
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js'
|
|
6
7
|
|
|
7
8
|
import { Stock } from './stock'
|
|
8
9
|
import { Material } from 'three'
|
|
@@ -11,8 +12,8 @@ import { RealObject } from './threed/real-object'
|
|
|
11
12
|
import { Visualizer } from './visualizer'
|
|
12
13
|
|
|
13
14
|
export class Rack extends RealObject {
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
private _frame?: THREE.BufferGeometry
|
|
16
|
+
private _board?: THREE.BufferGeometry
|
|
16
17
|
|
|
17
18
|
static frameMaterial: Material = new THREE.MeshStandardMaterial({
|
|
18
19
|
color: 0xcccccc,
|
|
@@ -21,7 +22,8 @@ export class Rack extends RealObject {
|
|
|
21
22
|
})
|
|
22
23
|
static rackFrameGeometry = new THREE.BoxGeometry(1, 1, 1)
|
|
23
24
|
static boardGeometry = new THREE.PlaneGeometry(1, 1, 1, 1)
|
|
24
|
-
|
|
25
|
+
|
|
26
|
+
private static _boardMaterial?: THREE.MeshStandardMaterial
|
|
25
27
|
|
|
26
28
|
get visualizer(): Visualizer | undefined {
|
|
27
29
|
var component = this.component
|
|
@@ -64,12 +66,12 @@ export class Rack extends RealObject {
|
|
|
64
66
|
return Rack._boardMaterial
|
|
65
67
|
}
|
|
66
68
|
|
|
67
|
-
get
|
|
68
|
-
return this.
|
|
69
|
+
get frame() {
|
|
70
|
+
return this._frame
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
get
|
|
72
|
-
return this.
|
|
73
|
+
get board() {
|
|
74
|
+
return this._board
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
build() {
|
|
@@ -81,12 +83,6 @@ export class Rack extends RealObject {
|
|
|
81
83
|
|
|
82
84
|
let scale = stockScale
|
|
83
85
|
|
|
84
|
-
if (!hideRackFrame) {
|
|
85
|
-
var frame = this.createRackFrame(width, height, depth * shelves)
|
|
86
|
-
|
|
87
|
-
this.object3d.add(frame)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
86
|
var shelfLocIds
|
|
91
87
|
|
|
92
88
|
if (!shelfLocations) {
|
|
@@ -96,21 +92,15 @@ export class Rack extends RealObject {
|
|
|
96
92
|
|
|
97
93
|
var shelfBins = binLocations.trim().split('\n').reverse()
|
|
98
94
|
|
|
95
|
+
if (!hideRackFrame) {
|
|
96
|
+
this._frame = this.createRackFrame(width, height, depth * shelves)
|
|
97
|
+
this._board = this.createRackBoards(shelves, width, height, depth, shelfLocIds)
|
|
98
|
+
}
|
|
99
|
+
|
|
99
100
|
for (var i = 0; i < shelves; i++) {
|
|
100
101
|
let bottom = -depth * shelves * 0.5
|
|
101
|
-
if (shelfLocIds[i] == '')
|
|
102
|
-
|
|
103
|
-
if (i > 0 && !hideRackFrame) {
|
|
104
|
-
let board = this.createRackBoard(width, height)
|
|
105
|
-
board.position.set(0, bottom + depth * i, 0)
|
|
106
|
-
board.rotation.x = Math.PI / 2
|
|
107
|
-
board.material.opacity = 0.5
|
|
108
|
-
board.material.transparent = true
|
|
109
|
-
|
|
110
|
-
this.object3d.add(board)
|
|
111
|
-
// frame.geometry.merge(board.geometry, board.matrix)
|
|
112
|
-
|
|
113
|
-
// this._boards.push(board)
|
|
102
|
+
if (shelfLocIds[i] == '') {
|
|
103
|
+
continue
|
|
114
104
|
}
|
|
115
105
|
|
|
116
106
|
var bins = (shelfBins[i] || '').trim().split(/\s*,\s*/)
|
|
@@ -140,44 +130,60 @@ export class Rack extends RealObject {
|
|
|
140
130
|
}
|
|
141
131
|
}
|
|
142
132
|
|
|
143
|
-
createRackFrame(w: number, h: number, d: number) {
|
|
144
|
-
|
|
133
|
+
createRackFrame(w: number, h: number, d: number): THREE.BufferGeometry {
|
|
134
|
+
const frameWeight = Math.round(Math.min(w, h) / 10)
|
|
135
|
+
const geometries = []
|
|
136
|
+
|
|
137
|
+
for (let i = 0; i < 4; i++) {
|
|
138
|
+
const geometry = Rack.rackFrameGeometry.clone()
|
|
139
|
+
geometry.scale(frameWeight, d, frameWeight)
|
|
145
140
|
|
|
146
|
-
var frames = new THREE.Group()
|
|
147
|
-
for (var i = 0; i < 4; i++) {
|
|
148
|
-
var geometry = Rack.rackFrameGeometry
|
|
149
|
-
var material = Rack.frameMaterial
|
|
150
|
-
var frame = new THREE.Mesh(geometry, material)
|
|
151
|
-
frame.scale.set(frameWeight, d, frameWeight)
|
|
152
141
|
switch (i) {
|
|
153
142
|
case 0:
|
|
154
|
-
|
|
143
|
+
geometry.translate(w / 2, 0, h / 2)
|
|
155
144
|
break
|
|
156
145
|
case 1:
|
|
157
|
-
|
|
146
|
+
geometry.translate(w / 2, 0, -h / 2)
|
|
158
147
|
break
|
|
159
148
|
case 2:
|
|
160
|
-
|
|
149
|
+
geometry.translate(-w / 2, 0, h / 2)
|
|
161
150
|
break
|
|
162
151
|
case 3:
|
|
163
|
-
|
|
152
|
+
geometry.translate(-w / 2, 0, -h / 2)
|
|
164
153
|
break
|
|
165
154
|
}
|
|
166
155
|
|
|
167
|
-
|
|
156
|
+
geometries.push(geometry)
|
|
168
157
|
}
|
|
169
158
|
|
|
170
|
-
return
|
|
159
|
+
return BufferGeometryUtils.mergeGeometries(geometries)
|
|
171
160
|
}
|
|
172
161
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
162
|
+
createRackBoards(
|
|
163
|
+
shelves: number,
|
|
164
|
+
width: number,
|
|
165
|
+
height: number,
|
|
166
|
+
depth: number,
|
|
167
|
+
shelfLocIds: string[]
|
|
168
|
+
): THREE.BufferGeometry {
|
|
169
|
+
let bottom = -depth * shelves * 0.5
|
|
170
|
+
const geometries = []
|
|
171
|
+
|
|
172
|
+
for (let i = 1; i < shelves; i++) {
|
|
173
|
+
if (shelfLocIds[i] === '') {
|
|
174
|
+
continue
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const geometry = Rack.boardGeometry.clone()
|
|
177
178
|
|
|
178
|
-
|
|
179
|
+
geometry.scale(width, height, 1)
|
|
180
|
+
geometry.rotateX(Math.PI / 2)
|
|
181
|
+
geometry.translate(0, bottom + depth * i, 0)
|
|
182
|
+
|
|
183
|
+
geometries.push(geometry)
|
|
184
|
+
}
|
|
179
185
|
|
|
180
|
-
return
|
|
186
|
+
return BufferGeometryUtils.mergeGeometries(geometries)
|
|
181
187
|
}
|
|
182
188
|
|
|
183
189
|
makeLocationString(shelfString: string) {
|
package/src/three-container.ts
CHANGED
|
@@ -135,6 +135,10 @@ export class ThreeContainer extends Container implements ThreeDimensionalContain
|
|
|
135
135
|
|
|
136
136
|
if (this._renderer3d) this._renderer3d.clear()
|
|
137
137
|
|
|
138
|
+
if (this._controls?.autoRotate) {
|
|
139
|
+
this._controls.doAutoRotate(false)
|
|
140
|
+
}
|
|
141
|
+
|
|
138
142
|
delete this._renderer3d
|
|
139
143
|
delete this._camera
|
|
140
144
|
delete this._controls
|
|
@@ -194,11 +198,6 @@ export class ThreeContainer extends Container implements ThreeDimensionalContain
|
|
|
194
198
|
this._camera.lookAt(this._scene3d.position)
|
|
195
199
|
this._camera.zoom = this.getState('zoom') * 0.01
|
|
196
200
|
|
|
197
|
-
if (this.state.showAxis) {
|
|
198
|
-
var axisHelper = new THREE.AxesHelper(width)
|
|
199
|
-
this._scene3d.add(axisHelper)
|
|
200
|
-
}
|
|
201
|
-
|
|
202
201
|
try {
|
|
203
202
|
const canvas = document.createElement('canvas')
|
|
204
203
|
let context = canvas!.getContext('webgl2')!
|
|
@@ -218,8 +217,8 @@ export class ThreeContainer extends Container implements ThreeDimensionalContain
|
|
|
218
217
|
this._renderer3d = renderer3d
|
|
219
218
|
|
|
220
219
|
renderer3d!.autoClear = true
|
|
221
|
-
renderer3d!.outputEncoding = THREE.sRGBEncoding
|
|
222
220
|
// @ts-ignore for three@0.150.1
|
|
221
|
+
renderer3d!.outputColorSpace = THREE.SRGBColorSpace
|
|
223
222
|
renderer3d!.useLegacyLights = false
|
|
224
223
|
renderer3d!.toneMappingExposure = Math.pow(exposure, 5.0)
|
|
225
224
|
renderer3d!.toneMapping = THREE.LinearToneMapping
|
|
@@ -329,6 +328,11 @@ export class ThreeContainer extends Container implements ThreeDimensionalContain
|
|
|
329
328
|
}
|
|
330
329
|
|
|
331
330
|
this._controls.update()
|
|
331
|
+
|
|
332
|
+
if (this.state.autoRotate) {
|
|
333
|
+
this.invalidate()
|
|
334
|
+
}
|
|
335
|
+
|
|
332
336
|
this.render_threed()
|
|
333
337
|
}
|
|
334
338
|
|
package/src/three-controls.ts
CHANGED
|
@@ -144,13 +144,7 @@ var ThreeControls = function (this: any, object: THREE.Camera, component: Compon
|
|
|
144
144
|
spherical.setFromVector3(offset)
|
|
145
145
|
|
|
146
146
|
if (scope.autoRotate && state === STATE.NONE) {
|
|
147
|
-
// theta = getAutoRotationAngle();
|
|
148
|
-
// thetaDelta = - getAutoRotationAngle();
|
|
149
|
-
// theta = 0;
|
|
150
|
-
|
|
151
147
|
rotateLeft(getAutoRotationAngle())
|
|
152
|
-
scope.component.invalidate()
|
|
153
|
-
// spherical.theta = getAutoRotationAngle();
|
|
154
148
|
}
|
|
155
149
|
|
|
156
150
|
spherical.theta += sphericalDelta.theta
|
|
@@ -213,9 +207,6 @@ var ThreeControls = function (this: any, object: THREE.Camera, component: Compon
|
|
|
213
207
|
return true
|
|
214
208
|
}
|
|
215
209
|
|
|
216
|
-
// if (this.autoRotate) {
|
|
217
|
-
// scope.component.invalidate()
|
|
218
|
-
// }
|
|
219
210
|
return false
|
|
220
211
|
}
|
|
221
212
|
})()
|
|
@@ -26,7 +26,8 @@ export abstract class RealObject<T extends THREE.Object3D = THREE.Object3D> {
|
|
|
26
26
|
component.app.url(fillStyle.image),
|
|
27
27
|
texture => {
|
|
28
28
|
texture.minFilter = THREE.LinearFilter
|
|
29
|
-
|
|
29
|
+
// @ts-ignore
|
|
30
|
+
texture.colorSpace = THREE.SRGBColorSpace
|
|
30
31
|
texture.repeat.set(1, 1)
|
|
31
32
|
texture.needsUpdate = true
|
|
32
33
|
|
|
@@ -23,7 +23,8 @@ export function createCanvasTexture(component: Component): THREE.Texture {
|
|
|
23
23
|
texture.repeat.set(1, 1)
|
|
24
24
|
texture.magFilter = THREE.NearestFilter
|
|
25
25
|
texture.minFilter = THREE.LinearMipMapLinearFilter
|
|
26
|
-
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
texture.colorSpace = THREE.SRGBColorSpace
|
|
27
28
|
|
|
28
29
|
return texture
|
|
29
30
|
}
|
package/src/visualizer.ts
CHANGED