@operato/scene-visualizer 9.0.0-beta.4 → 9.0.0-beta.7
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.
|
@@ -6,7 +6,7 @@ import { css, html } from 'lit';
|
|
|
6
6
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
7
7
|
import { OxPropertyEditor } from '@operato/property-editor';
|
|
8
8
|
import * as THREE from 'three';
|
|
9
|
-
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
|
|
9
|
+
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
10
10
|
let GLTFInfoEditor = class GLTFInfoEditor extends OxPropertyEditor {
|
|
11
11
|
constructor() {
|
|
12
12
|
super(...arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-editor-gltf-info.js","sourceRoot":"","sources":["../../src/editors/property-editor-gltf-info.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,yCAAyC,CAAA;AAChD,OAAO,0BAA0B,CAAA;AAEjC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAA;AAGzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"property-editor-gltf-info.js","sourceRoot":"","sources":["../../src/editors/property-editor-gltf-info.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/elevated-button.js'\nimport '@operato/i18n/ox-i18n.js'\n\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { OxPropertyEditor, PropertySpec } from '@operato/property-editor'\nimport { Component } from '@hatiolab/things-scene'\n\nimport * as THREE from 'three'\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'\n\n@customElement('property-editor-gltf-info')\nexport default class GLTFInfoEditor extends OxPropertyEditor {\n static styles = [\n ...OxPropertyEditor.styles,\n css`\n div[info] {\n display: flex;\n flex-direction: row;\n font-size: 12px;\n }\n\n div[info] * {\n align-self: center;\n }\n\n div[info] title {\n font-weight: bold;\n }\n\n div[info] md-elevated-button {\n margin-left: auto;\n --md-icon-size: 24px;\n }\n `\n ]\n\n @property({ type: String }) src?: string\n\n @state() width: number = 0\n @state() height: number = 0\n @state() depth: number = 0\n\n editorTemplate(value: any, spec: PropertySpec): TemplateResult {\n const valid = this.width && this.height && this.depth\n\n var property = spec.property || {}\n var { action } = property\n\n return html`\n <fieldset fullwidth>\n <legend><ox-i18n msgid=\"label.gltf-info\">GLTF info.</ox-i18n></legend>\n\n <div>\n <div info>\n <div label>[W x H x D] :</div>\n ${valid\n ? html` <div value>${this.width} x ${this.height} x ${this.depth}</div>\n <md-elevated-button\n @click=${(e: MouseEvent) => {\n this.dispatchEvent(\n new CustomEvent('i-need-selected', {\n bubbles: true,\n composed: true,\n detail: {\n callback: (selected: any[]) => {\n typeof action === 'function' &&\n action(selected[0], {\n width: this.width,\n height: this.height,\n depth: this.depth\n })\n }\n }\n })\n )\n }}\n >\n <md-icon>autorenew</md-icon>\n </md-elevated-button>`\n : html` <div></div> `}\n </div>\n </div>\n </fieldset>\n `\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('src')) {\n this.dispatchEvent(\n new CustomEvent('i-need-selected', {\n bubbles: true,\n composed: true,\n detail: {\n callback: async (selected: any[]) => {\n await this.fetchSourceInfo(selected[0], this.src!)\n }\n }\n })\n )\n }\n }\n\n async fetchSourceInfo(component: Component, src: string) {\n if (!src || !src.trim()) {\n return\n }\n\n try {\n const path = component.app.url(src)\n\n let gltfLoader = new GLTFLoader()\n\n gltfLoader.setCrossOrigin('use-credentials')\n\n return new Promise((resolve: any) => {\n gltfLoader.load(path, gltf => {\n var box = new THREE.Box3().setFromObject(gltf.scene)\n var { x, y, z } = box.getSize(new THREE.Vector3())\n\n this.width = Math.floor(x)\n this.depth = Math.floor(y)\n this.height = Math.floor(z)\n\n resolve()\n })\n })\n } catch (e) {\n console.error(e)\n return\n }\n }\n}\n"]}
|
|
@@ -5,8 +5,8 @@ import * as THREE from 'three';
|
|
|
5
5
|
import { error } from '@hatiolab/things-scene';
|
|
6
6
|
import { RealObject } from './real-object.js';
|
|
7
7
|
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
8
|
-
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader';
|
|
9
|
-
import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader';
|
|
8
|
+
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
|
|
9
|
+
import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';
|
|
10
10
|
// @ts-ignore
|
|
11
11
|
import { MeshoptDecoder } from 'three/examples/jsm/libs/meshopt_decoder.module.js';
|
|
12
12
|
export class RealObjectGLTF extends RealObject {
|
|
@@ -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,kBAAkB,CAAA;AAE7C,OAAO,EAAQ,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
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,kBAAkB,CAAA;AAE7C,OAAO,EAAQ,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAA;AACrE,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAA;AAGlF,MAAM,OAAO,cAAe,SAAQ,UAAU;IAA9C;;QAIU,eAAU,GAAmB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;IAmH1D,CAAC;IAjHC,MAAM,KAAK,UAAU;QACnB,OAAO,cAAc,CAAC,WAAW,CAAA;IACnC,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,OAAM;QACR,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QAEjC,0EAA0E;QAC1E,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;QACrC,WAAW,CAAC,cAAc,CAAC,8CAA8C,CAAC,CAAA;QAC1E,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAEtC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAA;QACnC,UAAU,CAAC,iBAAiB,CAAC,8CAA8C,CAAC,CAAA;QAC5E,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,cAAe,CAAC,UAAW,CAAC,CAAA;QAC1D,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAEpC,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;QAE5C,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/C,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;QAE5C,UAAU,CAAC,IAAI,CACb,UAAU,EACV,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,EACD,GAAG,CAAC,EAAE;YACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,CAAA;QACtE,CAAC,EACD,GAAG,CAAC,EAAE;YACJ,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;YAC7B,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC,CACF,CAAA;IACH,CAAC;IAEO,UAAU,CAAC,IAAU;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAEtB,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAChC,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAA;QAE9B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAqB,EAAE,EAAE;YACxC,IAAK,KAAa,CAAC,MAAM,EAAE,CAAC;gBAC1B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;YACzB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,WAAW,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACxD,IAAI,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,CAAA;QAEvD,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzB,6CAA6C;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEtB,IAAI,CAAC,eAAe,EAAE,CAAA;QAEtB,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;gBAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,cAAe,CAAC,KAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;gBAC9D,MAAM,CAAC,IAAI,EAAE,CAAA;YACf,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAED,KAAK;QACH,yCAAyC;QACzC,mCAAmC;QAEnC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,eAAe;QACb,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAE/D,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAA;QAEnD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAEpE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,QAAQ,CAAC,KAAiB,EAAE,MAAkB;QAC5C,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAE7B,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;;AArHc,0BAAW,GAAG,IAAI,UAAU,EAAE,AAAnB,CAAmB","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.js'\n\nimport { GLTF, GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'\nimport { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js'\nimport { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js'\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": "9.0.0-beta.
|
|
5
|
+
"version": "9.0.0-beta.7",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"module": "dist/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@hatiolab/things-scene": "^9.0.0-beta",
|
|
32
32
|
"@operato/i18n": "^9.0.0-beta",
|
|
33
33
|
"lit": "^3.1.2",
|
|
34
|
-
"three": "^0.
|
|
34
|
+
"three": "^0.172.0",
|
|
35
35
|
"tinycolor2": "^1.6.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"@typescript-eslint/parser": "^4.33.0",
|
|
46
46
|
"@web/dev-server": "^0.1.28",
|
|
47
47
|
"concurrently": "^8.0.1",
|
|
48
|
-
"eslint": "^
|
|
49
|
-
"eslint-config-prettier": "^
|
|
48
|
+
"eslint": "^9.18.0",
|
|
49
|
+
"eslint-config-prettier": "^10.0.1",
|
|
50
50
|
"husky": "^8.0.3",
|
|
51
51
|
"lint-staged": "^13.2.2",
|
|
52
52
|
"prettier": "^2.4.1",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"prettier --write"
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "97e5af48dff339375c9fb2668741276409321b0b"
|
|
69
69
|
}
|