@operato/scene-visualizer 1.2.42 → 1.2.46
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 +18 -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/gltf-object.js +1 -1
- package/dist/gltf-object.js.map +1 -1
- package/dist/rack-table-cell.js +9 -9
- package/dist/rack-table-cell.js.map +1 -1
- package/dist/rack-table.d.ts +2 -1
- package/dist/rack-table.js +9 -9
- package/dist/rack-table.js.map +1 -1
- package/dist/rack.js +1 -2
- package/dist/rack.js.map +1 -1
- package/dist/stock.js +9 -10
- package/dist/stock.js.map +1 -1
- package/dist/three-container.js +1 -1
- package/dist/three-container.js.map +1 -1
- package/dist/three-controls.js +2 -2
- package/dist/three-controls.js.map +1 -1
- package/dist/three-space.js +1 -1
- package/dist/three-space.js.map +1 -1
- package/dist/threed/real-object-gltf.js +1 -2
- package/dist/threed/real-object-gltf.js.map +1 -1
- package/package.json +2 -2
- package/src/gltf-object.ts +1 -1
- package/src/rack-table-cell.ts +9 -9
- package/src/rack-table.ts +14 -13
- package/src/stock.ts +8 -8
- package/src/three-container.ts +1 -1
- package/src/three-controls.ts +2 -2
- package/src/three-space.ts +1 -1
- package/tsconfig.json +2 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -9,7 +9,7 @@ import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader';
|
|
|
9
9
|
import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader';
|
|
10
10
|
// @ts-ignore
|
|
11
11
|
import { MeshoptDecoder } from 'three/examples/jsm/libs/meshopt_decoder.module.js';
|
|
12
|
-
class RealObjectGLTF extends RealObject {
|
|
12
|
+
export class RealObjectGLTF extends RealObject {
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments);
|
|
15
15
|
this.objectSize = new THREE.Vector3();
|
|
@@ -98,5 +98,4 @@ class RealObjectGLTF extends RealObject {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
RealObjectGLTF._GLTFLoader = new GLTFLoader();
|
|
101
|
-
export { RealObjectGLTF };
|
|
102
101
|
//# sourceMappingURL=real-object-gltf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-object-gltf.js","sourceRoot":"","sources":["../../src/threed/real-object-gltf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,EAAQ,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AAClE,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAA;AAGlF,
|
|
1
|
+
{"version":3,"file":"real-object-gltf.js","sourceRoot":"","sources":["../../src/threed/real-object-gltf.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\nimport { error } from '@hatiolab/things-scene'\n\nimport { RealObject } from './real-object'\n\nimport { GLTF, GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'\nimport { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'\nimport { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader'\n// @ts-ignore\nimport { MeshoptDecoder } from 'three/examples/jsm/libs/meshopt_decoder.module.js'\nimport { Properties } from '@hatiolab/things-scene'\n\nexport class RealObjectGLTF extends RealObject {\n private static _GLTFLoader = new GLTFLoader()\n\n private pivot?: THREE.Object3D\n private objectSize?: THREE.Vector3 = new THREE.Vector3()\n\n static get GLTFLoader() {\n return RealObjectGLTF._GLTFLoader\n }\n\n build() {\n super.build()\n\n var { src: source } = this.component.state\n\n if (!source) {\n this.clear()\n return\n }\n\n let gltfLoader = new GLTFLoader()\n\n // Optional: Provide a DRACOLoader instance to decode compressed mesh data\n const dracoLoader = new DRACOLoader()\n dracoLoader.setDecoderPath('/node_modules/three/examples/jsm/libs/draco/')\n gltfLoader.setDRACOLoader(dracoLoader)\n\n const ktx2Loader = new KTX2Loader()\n ktx2Loader.setTranscoderPath(`/node_modules/three/examples/jsm/libs/basis/`)\n ktx2Loader.detectSupport(this.threeContainer!.renderer3d!)\n gltfLoader.setKTX2Loader(ktx2Loader)\n\n gltfLoader.setMeshoptDecoder(MeshoptDecoder)\n\n var fullsource = this.component.app.url(source)\n gltfLoader.setCrossOrigin('use-credentials')\n\n gltfLoader.load(\n fullsource,\n gltf => {\n this.gltfLoaded(gltf)\n },\n xhr => {\n console.log(Math.round((xhr.loaded / xhr.total) * 100) + '% loaded')\n },\n err => {\n error('GLTFLoader.load', err)\n this.clear()\n }\n )\n }\n\n private gltfLoaded(gltf: GLTF) {\n let scene = gltf.scene\n\n var animations = gltf.animations\n var object = scene.clone()\n object.userData.context = this\n\n object.traverse((child: THREE.Object3D) => {\n if ((child as any).isMesh) {\n child.castShadow = true\n }\n })\n\n var boundingBox = new THREE.Box3().setFromObject(object)\n var center = boundingBox.getCenter(object.position)\n this.objectSize = boundingBox.getSize(this.objectSize!)\n\n center.multiplyScalar(-1)\n\n // 오브젝트 공백을 최소로 하기위해서 clear() 를 최대한 pending함.\n this.clear()\n\n this.pivot = new THREE.Object3D()\n this.object3d.add(this.pivot)\n this.pivot.add(object)\n\n this.updateDimension()\n\n if (animations && animations.length) {\n for (var i = 0; i < animations.length; i++) {\n var animation = animations[i]\n var action = this.threeContainer!.mixer!.clipAction(animation)\n action.play()\n }\n } else {\n console.log('no animations..')\n }\n }\n\n clear() {\n // TODO gltf object 리소스 해제가 필요하면, 여기에 추가.\n // 반복적으로 로딩하면 WebGL 리소스 부족으로 오류 발생.\n\n return super.clear()\n }\n\n updateDimension() {\n var { width = 1, height = 1, depth = 1 } = this.component.state\n\n var { x = 1, y = 1, z = 1 } = this.objectSize || {}\n\n this.pivot && this.pivot.scale.set(width / x, depth / y, height / z)\n\n this.component.invalidate()\n }\n\n updateSource() {\n this.build()\n }\n\n onchange(after: Properties, before: Properties) {\n super.onchange(after, before)\n\n if ('src' in after) {\n this.updateSource()\n }\n }\n}\n"]}
|
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.46",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
8
8
|
"license": "MIT",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"prettier --write"
|
|
63
63
|
]
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "1642231c4a8e50b20f520fad3ac3e00ebf7fe8d8"
|
|
66
66
|
}
|
package/src/gltf-object.ts
CHANGED
package/src/rack-table-cell.ts
CHANGED
|
@@ -125,7 +125,7 @@ export class RackTableCell extends RectPath(Component) {
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
get colspan() {
|
|
128
|
-
return this.
|
|
128
|
+
return this.getState('colspan')
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
get border() {
|
|
@@ -133,7 +133,7 @@ export class RackTableCell extends RectPath(Component) {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
get isEmpty() {
|
|
136
|
-
return this.
|
|
136
|
+
return this.getState('isEmpty')
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
_drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: any) {
|
|
@@ -203,11 +203,11 @@ export class RackTableCell extends RectPath(Component) {
|
|
|
203
203
|
locPattern = locPattern.substring(0, locPattern.indexOf('{u}') + 3)
|
|
204
204
|
|
|
205
205
|
var locationString = ''
|
|
206
|
-
if (this.
|
|
206
|
+
if (this.getState('section') && this.getState('unit'))
|
|
207
207
|
locationString = locPattern
|
|
208
208
|
.replace('{z}', zone)
|
|
209
|
-
.replace('{s}', this.
|
|
210
|
-
.replace('{u}', this.
|
|
209
|
+
.replace('{s}', this.getState('section'))
|
|
210
|
+
.replace('{u}', this.getState('unit'))
|
|
211
211
|
|
|
212
212
|
return locationString || ''
|
|
213
213
|
}
|
|
@@ -316,7 +316,7 @@ export class RackTableCell extends RectPath(Component) {
|
|
|
316
316
|
for (let i = rowCells.length - 1; i > 0; i--) {
|
|
317
317
|
var cell = rowCells[i]
|
|
318
318
|
|
|
319
|
-
var unit = cell.
|
|
319
|
+
var unit = cell.getState('unit')
|
|
320
320
|
|
|
321
321
|
if (unit) return Number(unit)
|
|
322
322
|
}
|
|
@@ -330,7 +330,7 @@ export class RackTableCell extends RectPath(Component) {
|
|
|
330
330
|
for (let i = 0; i < rowCells.length; i++) {
|
|
331
331
|
var cell = rowCells[i]
|
|
332
332
|
|
|
333
|
-
var unit = cell.
|
|
333
|
+
var unit = cell.getState('unit')
|
|
334
334
|
|
|
335
335
|
if (unit) return Number(unit)
|
|
336
336
|
}
|
|
@@ -340,13 +340,13 @@ export class RackTableCell extends RectPath(Component) {
|
|
|
340
340
|
|
|
341
341
|
get notEmptyRowCells() {
|
|
342
342
|
return this.rowCells.filter((c: Component) => {
|
|
343
|
-
return !c.
|
|
343
|
+
return !c.getState('isEmpty')
|
|
344
344
|
})
|
|
345
345
|
}
|
|
346
346
|
|
|
347
347
|
get emptyRowCells() {
|
|
348
348
|
return this.rowCells.filter((c: Component) => {
|
|
349
|
-
return c.
|
|
349
|
+
return c.getState('isEmpty')
|
|
350
350
|
})
|
|
351
351
|
}
|
|
352
352
|
|
package/src/rack-table.ts
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
import { Rack } from './rack'
|
|
19
19
|
import { RackTableCell } from './rack-table-cell'
|
|
20
20
|
import { RealObjectGroup } from './threed/real-object-group'
|
|
21
|
+
import { RealObject } from './threed'
|
|
21
22
|
|
|
22
23
|
const NATURE = {
|
|
23
24
|
mutable: false,
|
|
@@ -161,7 +162,7 @@ function setCellBorder(cell: RackTableCell, style: any, where: SIDE_KEY) {
|
|
|
161
162
|
return
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
cell.set('border', Object.assign({}, cell.
|
|
165
|
+
cell.set('border', Object.assign({}, cell.getState('border') || {}, buildBorderStyle(style, where)))
|
|
165
166
|
}
|
|
166
167
|
|
|
167
168
|
function isLeftMost(total: number, columns: number, indices: number[], i: number) {
|
|
@@ -398,7 +399,7 @@ export class RackTable extends ContainerAbstract {
|
|
|
398
399
|
return true
|
|
399
400
|
}
|
|
400
401
|
|
|
401
|
-
buildRealObject() {
|
|
402
|
+
buildRealObject(): RealObject | undefined {
|
|
402
403
|
return new RackTable3d(this)
|
|
403
404
|
}
|
|
404
405
|
|
|
@@ -425,8 +426,8 @@ export class RackTable extends ContainerAbstract {
|
|
|
425
426
|
this.add(newbies)
|
|
426
427
|
}
|
|
427
428
|
|
|
428
|
-
var widths = this.
|
|
429
|
-
var heights = this.
|
|
429
|
+
var widths = this.getState('widths')
|
|
430
|
+
var heights = this.getState('heights')
|
|
430
431
|
|
|
431
432
|
if (!widths || widths.length < this.columns) this.set('widths', this.widths)
|
|
432
433
|
if (!heights || heights.length < this.rows) this.set('heights', this.heights)
|
|
@@ -438,7 +439,7 @@ export class RackTable extends ContainerAbstract {
|
|
|
438
439
|
}
|
|
439
440
|
|
|
440
441
|
get widths(): number[] {
|
|
441
|
-
var widths = this.
|
|
442
|
+
var widths = this.getState('widths')
|
|
442
443
|
|
|
443
444
|
if (!widths) return array(1, this.columns)
|
|
444
445
|
|
|
@@ -449,7 +450,7 @@ export class RackTable extends ContainerAbstract {
|
|
|
449
450
|
}
|
|
450
451
|
|
|
451
452
|
get heights(): number[] {
|
|
452
|
-
var heights = this.
|
|
453
|
+
var heights = this.getState('heights')
|
|
453
454
|
|
|
454
455
|
if (!heights) return array(1, this.rows)
|
|
455
456
|
|
|
@@ -506,13 +507,13 @@ export class RackTable extends ContainerAbstract {
|
|
|
506
507
|
}
|
|
507
508
|
|
|
508
509
|
get rows() {
|
|
509
|
-
return this.
|
|
510
|
+
return this.getState('rows')
|
|
510
511
|
}
|
|
511
512
|
|
|
512
513
|
setCellsStyle(cells: RackTableCell[], style: any, where: string) {
|
|
513
514
|
var components = this.components
|
|
514
515
|
var total = components.length
|
|
515
|
-
var columns = this.
|
|
516
|
+
var columns = this.getState('columns')
|
|
516
517
|
|
|
517
518
|
// 병합된 셀도 포함시킨다.
|
|
518
519
|
var _cells = [] as RackTableCell[]
|
|
@@ -1174,7 +1175,7 @@ export class RackTable extends ContainerAbstract {
|
|
|
1174
1175
|
}
|
|
1175
1176
|
|
|
1176
1177
|
get columns() {
|
|
1177
|
-
return this.
|
|
1178
|
+
return this.getState('columns')
|
|
1178
1179
|
}
|
|
1179
1180
|
|
|
1180
1181
|
get lefts() {
|
|
@@ -1262,10 +1263,10 @@ export class RackTable extends ContainerAbstract {
|
|
|
1262
1263
|
onchange(after: Properties, before: Properties) {
|
|
1263
1264
|
if ('rows' in after || 'columns' in after) {
|
|
1264
1265
|
this.buildCells(
|
|
1265
|
-
this.
|
|
1266
|
-
this.
|
|
1267
|
-
before.hasOwnProperty('rows') ? before.rows : this.
|
|
1268
|
-
before.hasOwnProperty('columns') ? before.columns : this.
|
|
1266
|
+
this.getState('rows'),
|
|
1267
|
+
this.getState('columns'),
|
|
1268
|
+
before.hasOwnProperty('rows') ? before.rows : this.getState('rows'),
|
|
1269
|
+
before.hasOwnProperty('columns') ? before.columns : this.getState('columns')
|
|
1269
1270
|
)
|
|
1270
1271
|
}
|
|
1271
1272
|
|
package/src/stock.ts
CHANGED
|
@@ -35,10 +35,10 @@ export class Stock extends RealObject<THREE.Mesh> {
|
|
|
35
35
|
getMaterial(index: number) {
|
|
36
36
|
var visualizer = this.visualizer
|
|
37
37
|
|
|
38
|
-
if (!(visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.
|
|
38
|
+
if (!(visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.getState('status')))
|
|
39
39
|
return this.userDefineDefaultMaterial
|
|
40
40
|
|
|
41
|
-
var stockStatus = visualizer.legendTarget.
|
|
41
|
+
var stockStatus = visualizer.legendTarget.getState('status')
|
|
42
42
|
var range = stockStatus.ranges[index]
|
|
43
43
|
if (!(range && range.color)) {
|
|
44
44
|
this.stockMaterials[index] = this.userDefineDefaultMaterial
|
|
@@ -80,10 +80,10 @@ export class Stock extends RealObject<THREE.Mesh> {
|
|
|
80
80
|
var visualizer = this.visualizer
|
|
81
81
|
|
|
82
82
|
if (!visualizer!._default_material) {
|
|
83
|
-
if (!(visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.
|
|
83
|
+
if (!(visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.getState('status')))
|
|
84
84
|
return Stock.defaultMaterial
|
|
85
85
|
|
|
86
|
-
var stockStatus = visualizer!.legendTarget.
|
|
86
|
+
var stockStatus = visualizer!.legendTarget.getState('status')
|
|
87
87
|
var defaultColor = stockStatus.defaultColor
|
|
88
88
|
|
|
89
89
|
if (!defaultColor) return Stock.defaultMaterial
|
|
@@ -107,8 +107,8 @@ export class Stock extends RealObject<THREE.Mesh> {
|
|
|
107
107
|
|
|
108
108
|
var defaultColor = STOCK_COLOR
|
|
109
109
|
if (!visualizer!._empty_material) {
|
|
110
|
-
if (visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.
|
|
111
|
-
var stockStatus = visualizer!.legendTarget.
|
|
110
|
+
if (visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.getState('status')) {
|
|
111
|
+
var stockStatus = visualizer!.legendTarget.getState('status')
|
|
112
112
|
defaultColor = stockStatus.defaultColor || STOCK_COLOR
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -160,9 +160,9 @@ export class Stock extends RealObject<THREE.Mesh> {
|
|
|
160
160
|
}
|
|
161
161
|
var visualizer = this.visualizer
|
|
162
162
|
|
|
163
|
-
if (!(visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.
|
|
163
|
+
if (!(visualizer && visualizer && visualizer!.legendTarget && visualizer!.legendTarget.getState('status'))) return
|
|
164
164
|
|
|
165
|
-
var stockStatus = visualizer!.legendTarget.
|
|
165
|
+
var stockStatus = visualizer!.legendTarget.getState('status') as {
|
|
166
166
|
field: string
|
|
167
167
|
ranges: { min: number; max: number }[]
|
|
168
168
|
}
|
package/src/three-container.ts
CHANGED
|
@@ -624,7 +624,7 @@ export class ThreeContainer extends Container implements ThreeDimensionalContain
|
|
|
624
624
|
|
|
625
625
|
ondblclick(e: MouseEvent) {
|
|
626
626
|
if (this._controls) {
|
|
627
|
-
this.setState('zoom', this.
|
|
627
|
+
this.setState('zoom', this.getState('zoom'))
|
|
628
628
|
this._controls.reset()
|
|
629
629
|
e.stopPropagation()
|
|
630
630
|
}
|
package/src/three-controls.ts
CHANGED
|
@@ -540,10 +540,10 @@ var ThreeControls = function (this: any, object: THREE.Camera, component: Compon
|
|
|
540
540
|
var element = scope.component
|
|
541
541
|
|
|
542
542
|
// rotating across whole screen goes 360 degrees around
|
|
543
|
-
rotateLeft(((2 * Math.PI * rotateDelta.x) / element.
|
|
543
|
+
rotateLeft(((2 * Math.PI * rotateDelta.x) / element.getState('width')) * scope.rotateSpeed)
|
|
544
544
|
|
|
545
545
|
// rotating up and down along whole screen attempts to go 360, but limited to 180
|
|
546
|
-
rotateUp(((2 * Math.PI * rotateDelta.y) / element.
|
|
546
|
+
rotateUp(((2 * Math.PI * rotateDelta.y) / element.getState('height')) * scope.rotateSpeed)
|
|
547
547
|
|
|
548
548
|
rotateStart.copy(rotateEnd)
|
|
549
549
|
|
package/src/three-space.ts
CHANGED
|
@@ -633,7 +633,7 @@ export class ThreeSpace extends Container implements ThreeDimensionalContainer {
|
|
|
633
633
|
|
|
634
634
|
ondblclick(e: MouseEvent) {
|
|
635
635
|
if (this._controls) {
|
|
636
|
-
this.setState('zoom', this.
|
|
636
|
+
this.setState('zoom', this.getState('zoom'))
|
|
637
637
|
this._controls.reset()
|
|
638
638
|
e.stopPropagation()
|
|
639
639
|
}
|
package/tsconfig.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"module": "esnext",
|
|
5
5
|
"moduleResolution": "node",
|
|
6
6
|
"noEmitOnError": true,
|
|
7
|
-
"lib": ["
|
|
7
|
+
"lib": ["es2019", "dom"],
|
|
8
8
|
"strict": true,
|
|
9
9
|
"esModuleInterop": false,
|
|
10
10
|
"allowSyntheticDefaultImports": true,
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"rootDir": "src",
|
|
17
17
|
"declaration": true,
|
|
18
18
|
"incremental": true,
|
|
19
|
-
"types": [
|
|
19
|
+
"types": []
|
|
20
20
|
},
|
|
21
21
|
"include": ["**/*.ts", "**/*.d.ts"]
|
|
22
22
|
}
|