@operato/scene-visualizer 1.2.11 → 1.2.13

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 (76) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/db.sqlite +0 -0
  3. package/dist/cube.d.ts +1 -3
  4. package/dist/cube.js +1 -5
  5. package/dist/cube.js.map +1 -1
  6. package/dist/cylinder.d.ts +1 -3
  7. package/dist/cylinder.js +1 -5
  8. package/dist/cylinder.js.map +1 -1
  9. package/dist/rack.js +3 -3
  10. package/dist/rack.js.map +1 -1
  11. package/dist/sphere.d.ts +1 -3
  12. package/dist/sphere.js +1 -8
  13. package/dist/sphere.js.map +1 -1
  14. package/dist/sprite.d.ts +0 -1
  15. package/dist/sprite.js +0 -6
  16. package/dist/sprite.js.map +1 -1
  17. package/dist/threed/common.js +3 -2
  18. package/dist/threed/common.js.map +1 -1
  19. package/dist/threed/real-object-camera-meshed.d.ts +1 -1
  20. package/dist/threed/real-object-camera-meshed.js +1 -1
  21. package/dist/threed/real-object-camera-meshed.js.map +1 -1
  22. package/dist/threed/real-object-dom-element.d.ts +0 -3
  23. package/dist/threed/real-object-dom-element.js +0 -51
  24. package/dist/threed/real-object-dom-element.js.map +1 -1
  25. package/dist/threed/real-object-extrude.d.ts +2 -3
  26. package/dist/threed/real-object-extrude.js +27 -66
  27. package/dist/threed/real-object-extrude.js.map +1 -1
  28. package/dist/threed/real-object-gltf.d.ts +0 -2
  29. package/dist/threed/real-object-gltf.js +2 -8
  30. package/dist/threed/real-object-gltf.js.map +1 -1
  31. package/dist/threed/real-object-mesh.d.ts +3 -2
  32. package/dist/threed/real-object-mesh.js +22 -13
  33. package/dist/threed/real-object-mesh.js.map +1 -1
  34. package/dist/threed/real-object-plane.d.ts +2 -3
  35. package/dist/threed/real-object-plane.js +6 -7
  36. package/dist/threed/real-object-plane.js.map +1 -1
  37. package/dist/threed/real-object-sprite-2d.js +0 -1
  38. package/dist/threed/real-object-sprite-2d.js.map +1 -1
  39. package/dist/threed/real-object-text.d.ts +3 -4
  40. package/dist/threed/real-object-text.js +41 -47
  41. package/dist/threed/real-object-text.js.map +1 -1
  42. package/dist/threed/real-object.d.ts +0 -1
  43. package/dist/threed/real-object.js +14 -18
  44. package/dist/threed/real-object.js.map +1 -1
  45. package/dist/wall.d.ts +2 -3
  46. package/dist/wall.js +4 -5
  47. package/dist/wall.js.map +1 -1
  48. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +6 -21
  49. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +10 -0
  50. package/logs/application-2023-03-05-12.log +6 -0
  51. package/logs/application-2023-03-05-23.log +6 -0
  52. package/logs/connections-2023-03-05-12.log +35 -0
  53. package/logs/connections-2023-03-05-23.log +35 -0
  54. package/package.json +2 -2
  55. package/src/cube.ts +1 -7
  56. package/src/cylinder.ts +1 -7
  57. package/src/rack.ts +3 -4
  58. package/src/sphere.ts +1 -10
  59. package/src/sprite.ts +0 -8
  60. package/src/threed/common.ts +3 -2
  61. package/src/threed/real-object-camera-meshed.ts +1 -1
  62. package/src/threed/real-object-dom-element.ts +0 -71
  63. package/src/threed/real-object-extrude.ts +31 -69
  64. package/src/threed/real-object-gltf.ts +2 -10
  65. package/src/threed/real-object-mesh.ts +21 -14
  66. package/src/threed/real-object-plane.ts +6 -9
  67. package/src/threed/real-object-sprite-2d.ts +0 -2
  68. package/src/threed/real-object-text.ts +49 -60
  69. package/src/threed/real-object.ts +15 -22
  70. package/src/wall.ts +5 -6
  71. package/tsconfig.tsbuildinfo +1 -1
  72. package/logs/application-2023-03-01-03.log +0 -6
  73. package/logs/application-2023-03-01-13.log +0 -6
  74. package/logs/application-2023-03-01-15.log +0 -6
  75. package/logs/application-2023-03-03-00.log +0 -25
  76. package/logs/application-2023-03-03-01.log +0 -6
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### [1.2.13](https://github.com/things-scene/operato-scene/compare/v1.2.12...v1.2.13) (2023-03-05)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * lighten data binding for 3d objects ([09db97e](https://github.com/things-scene/operato-scene/commit/09db97e1fe70563a734113e70538bdf6d18c6bc7))
12
+ * visualizer 3D component update efficiently ([8065089](https://github.com/things-scene/operato-scene/commit/80650891a837750b23e1bd026850ec045518c8bb))
13
+
14
+
15
+
16
+ ### [1.2.12](https://github.com/things-scene/operato-scene/compare/v1.2.11...v1.2.12) (2023-03-03)
17
+
18
+
19
+ ### :bug: Bug Fix
20
+
21
+ * delete sprite test code ([177efcf](https://github.com/things-scene/operato-scene/commit/177efcf84fc128096c398ad423d871952a06e4df))
22
+
23
+
24
+
6
25
  ### [1.2.11](https://github.com/things-scene/operato-scene/compare/v1.2.10...v1.2.11) (2023-03-03)
7
26
 
8
27
 
package/db.sqlite CHANGED
Binary file
package/dist/cube.d.ts CHANGED
@@ -1,10 +1,8 @@
1
1
  import { Shape } from '@hatiolab/things-scene';
2
- import * as THREE from 'three';
3
2
  import { RealObject } from './threed/real-object';
4
3
  import { RealObjectMesh } from './threed/real-object-mesh';
5
4
  export declare class Cube3D extends RealObjectMesh {
6
- buildGeometry(): THREE.BoxGeometry;
7
- buildMaterial(): THREE.MeshStandardMaterial;
5
+ buildGeometry(): void;
8
6
  }
9
7
  declare const Cube_base: typeof Shape;
10
8
  export declare class Cube extends Cube_base {
package/dist/cube.js CHANGED
@@ -14,11 +14,7 @@ const NATURE = {
14
14
  export class Cube3D extends RealObjectMesh {
15
15
  buildGeometry() {
16
16
  var { width = 0, height = 0, depth = 0 } = this.component.state;
17
- return new THREE.BoxGeometry(width, depth, height);
18
- }
19
- buildMaterial() {
20
- var { fillStyle = 'lightgray' } = this.component.state;
21
- return new THREE.MeshStandardMaterial({ color: fillStyle, side: THREE.FrontSide });
17
+ this.object3d.geometry = new THREE.BoxGeometry(width, depth, height);
22
18
  }
23
19
  }
24
20
  export class Cube extends RectPath(Shape) {
package/dist/cube.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cube.js","sourceRoot":"","sources":["../src/cube.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAQ,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,sBAAsB;CAC7B,CAAA;AAED,MAAM,OAAO,MAAO,SAAQ,cAAc;IACxC,aAAa;QACX,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAE/D,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAED,aAAa;QACX,IAAI,EAAE,SAAS,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAEtD,OAAO,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;IACpF,CAAC;CACF;AAED,MAAM,OAAO,IAAK,SAAQ,QAAQ,CAAC,KAAK,CAAC;IACvC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Rect, RectPath, Shape } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectMesh } from './threed/real-object-mesh'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [],\n help: 'scene/component/cube'\n}\n\nexport class Cube3D extends RealObjectMesh {\n buildGeometry() {\n var { width = 0, height = 0, depth = 0 } = this.component.state\n\n return new THREE.BoxGeometry(width, depth, height)\n }\n\n buildMaterial() {\n var { fillStyle = 'lightgray' } = this.component.state\n\n return new THREE.MeshStandardMaterial({ color: fillStyle, side: THREE.FrontSide })\n }\n}\n\nexport class Cube extends RectPath(Shape) {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new Cube3D(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('cube', Cube)\n"]}
1
+ {"version":3,"file":"cube.js","sourceRoot":"","sources":["../src/cube.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAQ,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,sBAAsB;CAC7B,CAAA;AAED,MAAM,OAAO,MAAO,SAAQ,cAAc;IACxC,aAAa;QACX,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAE/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACtE,CAAC;CACF;AAED,MAAM,OAAO,IAAK,SAAQ,QAAQ,CAAC,KAAK,CAAC;IACvC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Rect, RectPath, Shape } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectMesh } from './threed/real-object-mesh'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [],\n help: 'scene/component/cube'\n}\n\nexport class Cube3D extends RealObjectMesh {\n buildGeometry() {\n var { width = 0, height = 0, depth = 0 } = this.component.state\n\n this.object3d.geometry = new THREE.BoxGeometry(width, depth, height)\n }\n}\n\nexport class Cube extends RectPath(Shape) {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new Cube3D(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('cube', Cube)\n"]}
@@ -1,10 +1,8 @@
1
1
  import { Ellipse } from '@hatiolab/things-scene';
2
- import * as THREE from 'three';
3
2
  import { RealObject } from './threed/real-object';
4
3
  import { RealObjectMesh } from './threed/real-object-mesh';
5
4
  export declare class Cylinder3D extends RealObjectMesh {
6
- buildGeometry(): THREE.CylinderGeometry;
7
- buildMaterial(): THREE.MeshStandardMaterial;
5
+ buildGeometry(): void;
8
6
  }
9
7
  export declare class Cylinder extends Ellipse {
10
8
  is3dish(): boolean;
package/dist/cylinder.js CHANGED
@@ -14,11 +14,7 @@ const NATURE = {
14
14
  export class Cylinder3D extends RealObjectMesh {
15
15
  buildGeometry() {
16
16
  var { depth = 0, rx = 0 } = this.component.state;
17
- return new THREE.CylinderGeometry(rx, rx, depth, 25);
18
- }
19
- buildMaterial() {
20
- var { fillStyle = 'lightgray' } = this.component.state;
21
- return new THREE.MeshStandardMaterial({ color: fillStyle, side: THREE.FrontSide });
17
+ this.object3d.geometry = new THREE.CylinderGeometry(rx, rx, depth, 25);
22
18
  }
23
19
  }
24
20
  export class Cylinder extends Ellipse {
@@ -1 +1 @@
1
- {"version":3,"file":"cylinder.js","sourceRoot":"","sources":["../src/cylinder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,0BAA0B;CACjC,CAAA;AAED,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,aAAa;QACX,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAEhD,OAAO,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,aAAa;QACX,IAAI,EAAE,SAAS,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAEtD,OAAO,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;IACpF,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,OAAO;IACnC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Ellipse } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectMesh } from './threed/real-object-mesh'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [],\n help: 'scene/component/cylinder'\n}\n\nexport class Cylinder3D extends RealObjectMesh {\n buildGeometry() {\n var { depth = 0, rx = 0 } = this.component.state\n\n return new THREE.CylinderGeometry(rx, rx, depth, 25)\n }\n\n buildMaterial() {\n var { fillStyle = 'lightgray' } = this.component.state\n\n return new THREE.MeshStandardMaterial({ color: fillStyle, side: THREE.FrontSide })\n }\n}\n\nexport class Cylinder extends Ellipse {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new Cylinder3D(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('cylinder', Cylinder)\n"]}
1
+ {"version":3,"file":"cylinder.js","sourceRoot":"","sources":["../src/cylinder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,0BAA0B;CACjC,CAAA;AAED,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,aAAa;QACX,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAEhD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IACxE,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,OAAO;IACnC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Ellipse } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectMesh } from './threed/real-object-mesh'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [],\n help: 'scene/component/cylinder'\n}\n\nexport class Cylinder3D extends RealObjectMesh {\n buildGeometry() {\n var { depth = 0, rx = 0 } = this.component.state\n\n this.object3d.geometry = new THREE.CylinderGeometry(rx, rx, depth, 25)\n }\n}\n\nexport class Cylinder extends Ellipse {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new Cylinder3D(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('cylinder', Cylinder)\n"]}
package/dist/rack.js CHANGED
@@ -36,10 +36,10 @@ export class Rack extends RealObject {
36
36
  if (!Rack._boardMaterial) {
37
37
  Rack._boardMaterial = new THREE.MeshStandardMaterial({
38
38
  color: '#dedede',
39
- side: THREE.DoubleSide
39
+ side: THREE.DoubleSide,
40
+ polygonOffset: true,
41
+ polygonOffsetFactor: -0.1
40
42
  });
41
- Rack._boardMaterial.polygonOffset = true;
42
- Rack._boardMaterial.polygonOffsetFactor = -0.1;
43
43
  }
44
44
  return Rack._boardMaterial;
45
45
  }
package/dist/rack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rack.js","sourceRoot":"","sources":["../src/rack.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\n\nimport { Stock } from './stock'\nimport { Material } from 'three'\nimport { RackTable } from './rack-table'\nimport { RealObject } from './threed/real-object'\nimport { Visualizer } from './visualizer'\n\nexport class Rack extends RealObject {\n _frames: any[] = []\n _boards: any[] = []\n\n static frameMaterial: Material = new THREE.MeshStandardMaterial({\n color: 0xcccccc,\n roughness: 0.5,\n metalness: 0.3\n })\n static rackFrameGeometry = new THREE.BoxGeometry(1, 1, 1)\n static boardGeometry = new THREE.PlaneGeometry(1, 1, 1, 1)\n static _boardMaterial?: THREE.MeshStandardMaterial\n\n get visualizer(): Visualizer | undefined {\n var component = this.component\n\n while (component) {\n if (component.state.type == 'visualizer') {\n return component as Visualizer\n }\n component = component.parent\n }\n }\n\n get rackTable(): RackTable | undefined {\n var component = this.component\n\n while (component) {\n if (component.state.type == 'rack-table') {\n return component as RackTable\n }\n component = component.parent\n }\n }\n\n get cz() {\n var { shelves = 1, depth = 1 } = this.rackTable!.state\n\n return 0.5 * depth * shelves\n }\n\n static get boardMaterial() {\n if (!Rack._boardMaterial) {\n Rack._boardMaterial = new THREE.MeshStandardMaterial({\n color: '#dedede',\n side: THREE.DoubleSide\n })\n\n Rack._boardMaterial.polygonOffset = true\n Rack._boardMaterial.polygonOffsetFactor = -0.1\n }\n\n return Rack._boardMaterial\n }\n\n get frames() {\n return this._frames\n }\n\n get boards() {\n return this._boards\n }\n\n build() {\n super.build()\n\n var { depth, hideRackFrame, shelves, shelfLocations: commonShelfLocation, stockScale = 0.7 } = this.rackTable!.state\n\n var { width, height, shelfLocations = commonShelfLocation, binLocations = '' } = this.component.state\n\n let scale = stockScale\n\n if (!hideRackFrame) {\n var frame = this.createRackFrame(width, height, depth * shelves)\n\n this.object3d.add(frame)\n }\n\n var shelfLocIds\n\n if (!shelfLocations) {\n shelfLocIds = []\n for (var i = 0; i < shelves; i++) shelfLocIds.push(i + 1)\n } else shelfLocIds = shelfLocations.split(/\\s*,\\s*/)\n\n var shelfBins = binLocations.trim().split('\\n').reverse()\n\n for (var i = 0; i < shelves; i++) {\n let bottom = -depth * shelves * 0.5\n if (shelfLocIds[i] == '') continue\n\n if (i > 0 && !hideRackFrame) {\n let board = this.createRackBoard(width, height)\n board.position.set(0, bottom + depth * i, 0)\n board.rotation.x = Math.PI / 2\n board.material.opacity = 0.5\n board.material.transparent = true\n\n this.object3d.add(board)\n // frame.geometry.merge(board.geometry, board.matrix)\n\n // this._boards.push(board)\n }\n\n var bins = (shelfBins[i] || '').trim().split(/\\s*,\\s*/)\n\n var binWidth = width / (bins.length || 1)\n for (var b = 0; b < bins.length; b++) {\n let stock = new Stock(this.component, {\n width: binWidth * scale,\n height: height * scale,\n depth: depth * scale\n })\n stock.update()\n\n let stockDepth = depth * scale\n\n stock.object3d.position.set(\n (width / 2) * ((2 * b - (bins.length - 1)) / bins.length),\n bottom + depth * i + stockDepth * 0.5,\n 0\n )\n var binCode = (bins[b] || '').replace('.', '')\n stock.object3d.name = `${this.makeLocationString(shelfLocIds[i])}${binCode}`\n\n this.object3d.add(stock.object3d)\n this.visualizer!.putObject(stock.object3d.name, stock)\n }\n }\n }\n\n createRackFrame(w: number, h: number, d: number) {\n var frameWeight = Math.round(Math.min(w, h) / 10)\n\n var frames = new THREE.Group()\n for (var i = 0; i < 4; i++) {\n var geometry = Rack.rackFrameGeometry\n var material = Rack.frameMaterial\n var frame = new THREE.Mesh(geometry, material)\n frame.scale.set(frameWeight, d, frameWeight)\n switch (i) {\n case 0:\n frame.position.set(w / 2, 0, h / 2)\n break\n case 1:\n frame.position.set(w / 2, 0, -h / 2)\n break\n case 2:\n frame.position.set(-w / 2, 0, h / 2)\n break\n case 3:\n frame.position.set(-w / 2, 0, -h / 2)\n break\n }\n\n frames.add(frame)\n }\n\n return frames\n }\n\n createRackBoard(w: number, h: number) {\n var boardMaterial = Rack.boardMaterial\n var boardGeometry = Rack.boardGeometry\n var board = new THREE.Mesh(boardGeometry, boardMaterial)\n\n board.scale.set(w, h, 1)\n\n return board\n }\n\n makeLocationString(shelfString: string) {\n var { section = '', unit = '' } = this.component.state\n var { locPattern = '{z}{s}-{u}-{sh}', zone = '' } = this.rackTable!.state\n\n var locationString = locPattern\n\n locationString = locationString.replace(/{z}/i, zone)\n locationString = locationString.replace(/{s}/i, section)\n locationString = locationString.replace(/{u}/i, unit)\n locationString = locationString.replace(/{sh}/i, shelfString)\n\n return locationString\n }\n\n makeShelfString(pattern: string, shelf: number, length: number) {\n /**\n * pattern #: 숫자\n * pattern 0: 고정 자리수\n * pattern -: 역순\n */\n\n if (!pattern || !shelf || !length) return\n\n var isReverse = /^\\-/.test(pattern)\n pattern = pattern.replace(/#+/, '#')\n\n var fixedLength = (pattern.match(/0/g) || []).length || 0\n var shelfString = String(isReverse ? length - shelf + 1 : shelf)\n\n if (shelfString.length > fixedLength && fixedLength > 0) {\n shelfString = shelfString.substring(shelfString.length - fixedLength)\n } else {\n var prefix = ''\n for (var i = 0; i < fixedLength - shelfString.length; i++) {\n prefix += '0'\n }\n shelfString = prefix + shelfString\n }\n\n return shelfString\n }\n\n updateAlpha() {}\n}\n"]}
1
+ {"version":3,"file":"rack.js","sourceRoot":"","sources":["../src/rack.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\n\nimport { Stock } from './stock'\nimport { Material } from 'three'\nimport { RackTable } from './rack-table'\nimport { RealObject } from './threed/real-object'\nimport { Visualizer } from './visualizer'\n\nexport class Rack extends RealObject {\n _frames: any[] = []\n _boards: any[] = []\n\n static frameMaterial: Material = new THREE.MeshStandardMaterial({\n color: 0xcccccc,\n roughness: 0.5,\n metalness: 0.3\n })\n static rackFrameGeometry = new THREE.BoxGeometry(1, 1, 1)\n static boardGeometry = new THREE.PlaneGeometry(1, 1, 1, 1)\n static _boardMaterial?: THREE.MeshStandardMaterial\n\n get visualizer(): Visualizer | undefined {\n var component = this.component\n\n while (component) {\n if (component.state.type == 'visualizer') {\n return component as Visualizer\n }\n component = component.parent\n }\n }\n\n get rackTable(): RackTable | undefined {\n var component = this.component\n\n while (component) {\n if (component.state.type == 'rack-table') {\n return component as RackTable\n }\n component = component.parent\n }\n }\n\n get cz() {\n var { shelves = 1, depth = 1 } = this.rackTable!.state\n\n return 0.5 * depth * shelves\n }\n\n static get boardMaterial() {\n if (!Rack._boardMaterial) {\n Rack._boardMaterial = new THREE.MeshStandardMaterial({\n color: '#dedede',\n side: THREE.DoubleSide,\n polygonOffset: true,\n polygonOffsetFactor: -0.1\n })\n }\n\n return Rack._boardMaterial\n }\n\n get frames() {\n return this._frames\n }\n\n get boards() {\n return this._boards\n }\n\n build() {\n super.build()\n\n var { depth, hideRackFrame, shelves, shelfLocations: commonShelfLocation, stockScale = 0.7 } = this.rackTable!.state\n\n var { width, height, shelfLocations = commonShelfLocation, binLocations = '' } = this.component.state\n\n let scale = stockScale\n\n if (!hideRackFrame) {\n var frame = this.createRackFrame(width, height, depth * shelves)\n\n this.object3d.add(frame)\n }\n\n var shelfLocIds\n\n if (!shelfLocations) {\n shelfLocIds = []\n for (var i = 0; i < shelves; i++) shelfLocIds.push(i + 1)\n } else shelfLocIds = shelfLocations.split(/\\s*,\\s*/)\n\n var shelfBins = binLocations.trim().split('\\n').reverse()\n\n for (var i = 0; i < shelves; i++) {\n let bottom = -depth * shelves * 0.5\n if (shelfLocIds[i] == '') continue\n\n if (i > 0 && !hideRackFrame) {\n let board = this.createRackBoard(width, height)\n board.position.set(0, bottom + depth * i, 0)\n board.rotation.x = Math.PI / 2\n board.material.opacity = 0.5\n board.material.transparent = true\n\n this.object3d.add(board)\n // frame.geometry.merge(board.geometry, board.matrix)\n\n // this._boards.push(board)\n }\n\n var bins = (shelfBins[i] || '').trim().split(/\\s*,\\s*/)\n\n var binWidth = width / (bins.length || 1)\n for (var b = 0; b < bins.length; b++) {\n let stock = new Stock(this.component, {\n width: binWidth * scale,\n height: height * scale,\n depth: depth * scale\n })\n stock.update()\n\n let stockDepth = depth * scale\n\n stock.object3d.position.set(\n (width / 2) * ((2 * b - (bins.length - 1)) / bins.length),\n bottom + depth * i + stockDepth * 0.5,\n 0\n )\n var binCode = (bins[b] || '').replace('.', '')\n stock.object3d.name = `${this.makeLocationString(shelfLocIds[i])}${binCode}`\n\n this.object3d.add(stock.object3d)\n this.visualizer!.putObject(stock.object3d.name, stock)\n }\n }\n }\n\n createRackFrame(w: number, h: number, d: number) {\n var frameWeight = Math.round(Math.min(w, h) / 10)\n\n var frames = new THREE.Group()\n for (var i = 0; i < 4; i++) {\n var geometry = Rack.rackFrameGeometry\n var material = Rack.frameMaterial\n var frame = new THREE.Mesh(geometry, material)\n frame.scale.set(frameWeight, d, frameWeight)\n switch (i) {\n case 0:\n frame.position.set(w / 2, 0, h / 2)\n break\n case 1:\n frame.position.set(w / 2, 0, -h / 2)\n break\n case 2:\n frame.position.set(-w / 2, 0, h / 2)\n break\n case 3:\n frame.position.set(-w / 2, 0, -h / 2)\n break\n }\n\n frames.add(frame)\n }\n\n return frames\n }\n\n createRackBoard(w: number, h: number) {\n var boardMaterial = Rack.boardMaterial\n var boardGeometry = Rack.boardGeometry\n var board = new THREE.Mesh(boardGeometry, boardMaterial)\n\n board.scale.set(w, h, 1)\n\n return board\n }\n\n makeLocationString(shelfString: string) {\n var { section = '', unit = '' } = this.component.state\n var { locPattern = '{z}{s}-{u}-{sh}', zone = '' } = this.rackTable!.state\n\n var locationString = locPattern\n\n locationString = locationString.replace(/{z}/i, zone)\n locationString = locationString.replace(/{s}/i, section)\n locationString = locationString.replace(/{u}/i, unit)\n locationString = locationString.replace(/{sh}/i, shelfString)\n\n return locationString\n }\n\n makeShelfString(pattern: string, shelf: number, length: number) {\n /**\n * pattern #: 숫자\n * pattern 0: 고정 자리수\n * pattern -: 역순\n */\n\n if (!pattern || !shelf || !length) return\n\n var isReverse = /^\\-/.test(pattern)\n pattern = pattern.replace(/#+/, '#')\n\n var fixedLength = (pattern.match(/0/g) || []).length || 0\n var shelfString = String(isReverse ? length - shelf + 1 : shelf)\n\n if (shelfString.length > fixedLength && fixedLength > 0) {\n shelfString = shelfString.substring(shelfString.length - fixedLength)\n } else {\n var prefix = ''\n for (var i = 0; i < fixedLength - shelfString.length; i++) {\n prefix += '0'\n }\n shelfString = prefix + shelfString\n }\n\n return shelfString\n }\n\n updateAlpha() {}\n}\n"]}
package/dist/sphere.d.ts CHANGED
@@ -1,10 +1,8 @@
1
1
  import { Ellipse } from '@hatiolab/things-scene';
2
- import * as THREE from 'three';
3
2
  import { RealObject } from './threed/real-object';
4
3
  import { RealObjectMesh } from './threed/real-object-mesh';
5
4
  export declare class Sphere3D extends RealObjectMesh {
6
- buildGeometry(): THREE.SphereGeometry;
7
- buildMaterial(): THREE.MeshStandardMaterial;
5
+ buildGeometry(): void;
8
6
  }
9
7
  export declare class Sphere extends Ellipse {
10
8
  is3dish(): boolean;
package/dist/sphere.js CHANGED
@@ -14,14 +14,7 @@ const NATURE = {
14
14
  export class Sphere3D extends RealObjectMesh {
15
15
  buildGeometry() {
16
16
  var { rx = 0 } = this.component.state;
17
- return new THREE.SphereGeometry(rx, 20, 20);
18
- }
19
- buildMaterial() {
20
- var { fillStyle = 'gray' } = this.component.state;
21
- return new THREE.MeshStandardMaterial({
22
- color: fillStyle,
23
- side: THREE.FrontSide
24
- });
17
+ this.object3d.geometry = new THREE.SphereGeometry(rx, 20, 20);
25
18
  }
26
19
  }
27
20
  export class Sphere extends Ellipse {
@@ -1 +1 @@
1
- {"version":3,"file":"sphere.js","sourceRoot":"","sources":["../src/sphere.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,wBAAwB;CAC/B,CAAA;AAED,MAAM,OAAO,QAAS,SAAQ,cAAc;IAC1C,aAAa;QACX,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAErC,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,aAAa;QACX,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAEjD,OAAO,IAAI,KAAK,CAAC,oBAAoB,CAAC;YACpC,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,KAAK,CAAC,SAAS;SACtB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,OAAO;IACjC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Ellipse } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectMesh } from './threed/real-object-mesh'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [],\n help: 'scene/component/sphere'\n}\n\nexport class Sphere3D extends RealObjectMesh {\n buildGeometry() {\n var { rx = 0 } = this.component.state\n\n return new THREE.SphereGeometry(rx, 20, 20)\n }\n\n buildMaterial() {\n var { fillStyle = 'gray' } = this.component.state\n\n return new THREE.MeshStandardMaterial({\n color: fillStyle,\n side: THREE.FrontSide\n })\n }\n}\n\nexport class Sphere extends Ellipse {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new Sphere3D(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('sphere', Sphere)\n"]}
1
+ {"version":3,"file":"sphere.js","sourceRoot":"","sources":["../src/sphere.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,wBAAwB;CAC/B,CAAA;AAED,MAAM,OAAO,QAAS,SAAQ,cAAc;IAC1C,aAAa;QACX,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAErC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,OAAO;IACjC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Ellipse } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectMesh } from './threed/real-object-mesh'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [],\n help: 'scene/component/sphere'\n}\n\nexport class Sphere3D extends RealObjectMesh {\n buildGeometry() {\n var { rx = 0 } = this.component.state\n\n this.object3d.geometry = new THREE.SphereGeometry(rx, 20, 20)\n }\n}\n\nexport class Sphere extends Ellipse {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new Sphere3D(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('sphere', Sphere)\n"]}
package/dist/sprite.d.ts CHANGED
@@ -4,7 +4,6 @@ declare const Sprite_base: typeof Shape;
4
4
  export declare class Sprite extends Sprite_base {
5
5
  is3dish(): boolean;
6
6
  buildRealObject(): RealObject | undefined;
7
- ready(): void;
8
7
  get nature(): ComponentNature;
9
8
  }
10
9
  export {};
package/dist/sprite.js CHANGED
@@ -16,12 +16,6 @@ export class Sprite extends RectPath(Shape) {
16
16
  buildRealObject() {
17
17
  return new RealObjectSprite2D(this);
18
18
  }
19
- ready() {
20
- super.ready();
21
- setInterval(() => {
22
- this.text = String(Math.random());
23
- }, 1000);
24
- }
25
19
  get nature() {
26
20
  return NATURE;
27
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sprite.js","sourceRoot":"","sources":["../src/sprite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAmB,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEnE,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;CACf,CAAA;AAED,MAAM,OAAO,MAAO,SAAQ,QAAQ,CAAC,KAAK,CAAC;IACzC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACnC,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, RectPath, Shape } from '@hatiolab/things-scene'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectSprite2D } from './threed/real-object-sprite-2d'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: []\n}\n\nexport class Sprite extends RectPath(Shape) {\n is3dish(): boolean {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new RealObjectSprite2D(this)\n }\n\n ready() {\n super.ready()\n\n setInterval(() => {\n this.text = String(Math.random())\n }, 1000)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('sprite', Sprite)\n"]}
1
+ {"version":3,"file":"sprite.js","sourceRoot":"","sources":["../src/sprite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAmB,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEnE,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,EAAE;CACf,CAAA;AAED,MAAM,OAAO,MAAO,SAAQ,QAAQ,CAAC,KAAK,CAAC;IACzC,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;QACb,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, RectPath, Shape } from '@hatiolab/things-scene'\nimport { RealObject } from './threed/real-object'\nimport { RealObjectSprite2D } from './threed/real-object-sprite-2d'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: []\n}\n\nexport class Sprite extends RectPath(Shape) {\n is3dish(): boolean {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new RealObjectSprite2D(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('sprite', Sprite)\n"]}
@@ -2,14 +2,15 @@ import tinycolor from 'tinycolor2';
2
2
  export const SCALE_MIN = 0.001;
3
3
  export function applyAlpha(material, alpha, fillStyle) {
4
4
  var opacity = 1;
5
- if (!fillStyle || fillStyle == 'none') {
6
- opacity = alpha;
5
+ if (!fillStyle || fillStyle == 'none' || fillStyle == 'transparent') {
6
+ opacity = 0;
7
7
  }
8
8
  else {
9
9
  var fillAlpha = typeof fillStyle == 'string' ? tinycolor(fillStyle).getAlpha() : 1;
10
10
  opacity = alpha * fillAlpha;
11
11
  }
12
12
  material.opacity = opacity;
13
+ material.transparent = opacity < 1;
13
14
  }
14
15
  export const UNIT_DIMENSION = { width: 1, height: 1, depth: 1 };
15
16
  export const UNIT_SCALE = { x: 1, y: 1, z: 1 };
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/threed/common.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAA;AAE9B,MAAM,UAAU,UAAU,CAAC,QAAa,EAAE,KAAa,EAAE,SAAc;IACrE,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE;QACrC,OAAO,GAAG,KAAK,CAAA;KAChB;SAAM;QACL,IAAI,SAAS,GAAG,OAAO,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAClF,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;KAC5B;IAED,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA","sourcesContent":["import tinycolor from 'tinycolor2'\n\nexport const SCALE_MIN = 0.001\n\nexport function applyAlpha(material: any, alpha: number, fillStyle: any) {\n var opacity = 1\n if (!fillStyle || fillStyle == 'none') {\n opacity = alpha\n } else {\n var fillAlpha = typeof fillStyle == 'string' ? tinycolor(fillStyle).getAlpha() : 1\n opacity = alpha * fillAlpha\n }\n\n material.opacity = opacity\n}\n\nexport const UNIT_DIMENSION = { width: 1, height: 1, depth: 1 }\nexport const UNIT_SCALE = { x: 1, y: 1, z: 1 }\nexport const UNIT_TRANSLATE = { x: 0, y: 0, z: 0 }\nexport const UNIT_ROTATE = { x: 0, y: 0, z: 0 }\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/threed/common.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAA;AAE9B,MAAM,UAAU,UAAU,CAAC,QAAa,EAAE,KAAa,EAAE,SAAc;IACrE,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,aAAa,EAAE;QACnE,OAAO,GAAG,CAAC,CAAA;KACZ;SAAM;QACL,IAAI,SAAS,GAAG,OAAO,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAClF,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;KAC5B;IAED,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,QAAQ,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA","sourcesContent":["import tinycolor from 'tinycolor2'\n\nexport const SCALE_MIN = 0.001\n\nexport function applyAlpha(material: any, alpha: number, fillStyle: any) {\n var opacity = 1\n if (!fillStyle || fillStyle == 'none' || fillStyle == 'transparent') {\n opacity = 0\n } else {\n var fillAlpha = typeof fillStyle == 'string' ? tinycolor(fillStyle).getAlpha() : 1\n opacity = alpha * fillAlpha\n }\n\n material.opacity = opacity\n material.transparent = opacity < 1\n}\n\nexport const UNIT_DIMENSION = { width: 1, height: 1, depth: 1 }\nexport const UNIT_SCALE = { x: 1, y: 1, z: 1 }\nexport const UNIT_TRANSLATE = { x: 0, y: 0, z: 0 }\nexport const UNIT_ROTATE = { x: 0, y: 0, z: 0 }\n"]}
@@ -8,5 +8,5 @@ export declare class RealObjectCamera extends RealObjectMesh {
8
8
  updateCamera(): void;
9
9
  build(): void;
10
10
  clear(): THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
11
- buildGeometry(): THREE.SphereGeometry;
11
+ buildGeometry(): void;
12
12
  }
@@ -43,7 +43,7 @@ export class RealObjectCamera extends RealObjectMesh {
43
43
  buildGeometry() {
44
44
  var { width = 1, height = 1, depth = 1 } = this.component.state.dimension || UNIT_DIMENSION;
45
45
  var radius = Math.min(width, height, depth) / 2;
46
- return new THREE.SphereGeometry(radius, 32, 32);
46
+ this.object3d.geometry = new THREE.SphereGeometry(radius, 32, 32);
47
47
  }
48
48
  }
49
49
  //# sourceMappingURL=real-object-camera-meshed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"real-object-camera-meshed.js","sourceRoot":"","sources":["../../src/threed/real-object-camera-meshed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACR,CAAA;AAED,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAGlD,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAA;QAEd,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YAClC,IAAI,CAAC,YAAY,EAAE,CAAA;SACpB;QAED,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAA;IACtC,CAAC;IAED,YAAY;QACV,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAE7G,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAA;QAEnB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,aAAa;QACX,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,cAAc,CAAA;QAE3F,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAE/C,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,CAAC;CACF","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\n\nimport { RealObjectMesh } from './real-object-mesh'\nimport { UNIT_DIMENSION } from './common'\n\nconst DEFAULT = {\n far: 100000,\n fov: 80,\n near: 1,\n zoom: 1\n}\n\nexport class RealObjectCamera extends RealObjectMesh {\n protected _camera?: THREE.PerspectiveCamera\n\n update() {\n super.update()\n\n this.updateCamera()\n }\n\n get camera(): THREE.PerspectiveCamera {\n if (!this._camera) {\n this._camera = this.createCamera()\n this.updateCamera()\n }\n\n return this._camera\n }\n\n createCamera() {\n return new THREE.PerspectiveCamera()\n }\n\n updateCamera() {\n var { near = DEFAULT.near, far = DEFAULT.far, fov = DEFAULT.fov, zoom = DEFAULT.zoom } = this.component.state\n\n this.camera.far = far\n this.camera.fov = fov\n this.camera.near = near\n this.camera.zoom = zoom\n }\n\n build() {\n super.build()\n\n this.object3d.add(this.camera)\n }\n\n clear() {\n delete this._camera\n\n return super.clear()\n }\n\n buildGeometry() {\n var { width = 1, height = 1, depth = 1 } = this.component.state.dimension || UNIT_DIMENSION\n\n var radius = Math.min(width, height, depth) / 2\n\n return new THREE.SphereGeometry(radius, 32, 32)\n }\n}\n"]}
1
+ {"version":3,"file":"real-object-camera-meshed.js","sourceRoot":"","sources":["../../src/threed/real-object-camera-meshed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACR,CAAA;AAED,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAGlD,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAA;QAEd,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YAClC,IAAI,CAAC,YAAY,EAAE,CAAA;SACpB;QAED,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAA;IACtC,CAAC;IAED,YAAY;QACV,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAE7G,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAA;QAEnB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,aAAa;QACX,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,cAAc,CAAA;QAE3F,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAE/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;CACF","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\n\nimport { RealObjectMesh } from './real-object-mesh'\nimport { UNIT_DIMENSION } from './common'\n\nconst DEFAULT = {\n far: 100000,\n fov: 80,\n near: 1,\n zoom: 1\n}\n\nexport class RealObjectCamera extends RealObjectMesh {\n protected _camera?: THREE.PerspectiveCamera\n\n update() {\n super.update()\n\n this.updateCamera()\n }\n\n get camera(): THREE.PerspectiveCamera {\n if (!this._camera) {\n this._camera = this.createCamera()\n this.updateCamera()\n }\n\n return this._camera\n }\n\n createCamera() {\n return new THREE.PerspectiveCamera()\n }\n\n updateCamera() {\n var { near = DEFAULT.near, far = DEFAULT.far, fov = DEFAULT.fov, zoom = DEFAULT.zoom } = this.component.state\n\n this.camera.far = far\n this.camera.fov = fov\n this.camera.near = near\n this.camera.zoom = zoom\n }\n\n build() {\n super.build()\n\n this.object3d.add(this.camera)\n }\n\n clear() {\n delete this._camera\n\n return super.clear()\n }\n\n buildGeometry() {\n var { width = 1, height = 1, depth = 1 } = this.component.state.dimension || UNIT_DIMENSION\n\n var radius = Math.min(width, height, depth) / 2\n\n this.object3d.geometry = new THREE.SphereGeometry(radius, 32, 32)\n }\n}\n"]}
@@ -3,9 +3,6 @@ import { RealObject } from './real-object';
3
3
  export declare class RealObjectDomElement extends RealObject<CSS3DObject> {
4
4
  protected getObject3dInstance(): CSS3DObject;
5
5
  build(): void;
6
- /**
7
- * Component의 상태값의 변화를 Object3D에 반영 - translate, rotation, scale
8
- */
9
6
  updateDimension(): void;
10
7
  updateAlpha(): void;
11
8
  }
@@ -7,25 +7,6 @@ export class RealObjectDomElement extends RealObject {
7
7
  getObject3dInstance() {
8
8
  return new CSS3DObject(this.component.element);
9
9
  }
10
- // private _cssObject3d?: THREE.Object3D
11
- // buildGeometry() {
12
- // var { width, height } = this.component.bounds
13
- // return new THREE.PlaneGeometry(width, height)
14
- // }
15
- // buildMaterial() /* : THREE.MeshMaterialType | THREE.MeshMaterialType[] */ {
16
- // var material = new THREE.MeshBasicMaterial()
17
- // material.color.set('black')
18
- // material.opacity = 0
19
- // material.side = THREE.DoubleSide
20
- // material.blending = THREE.NoBlending
21
- // return material
22
- // }
23
- // get cssObject3d(): THREE.Object3D {
24
- // if (!this._cssObject3d) {
25
- // this._cssObject3d = this.buildCSS3DObject()
26
- // }
27
- // return this._cssObject3d
28
- // }
29
10
  build() {
30
11
  super.build();
31
12
  var element = this.component.element;
@@ -34,39 +15,7 @@ export class RealObjectDomElement extends RealObject {
34
15
  element.style.height = height + 'px';
35
16
  element.style.left = '';
36
17
  element.style.top = '';
37
- // this.object3d.add()
38
- // const cssobj = new CSS3DObject(element)
39
- // cssobj.position.set(-1, -1, 0)
40
- // this.object3d.add(cssobj)
41
- // return cssobj
42
18
  }
43
- /**
44
- * Component의 상태값의 변화를 Object3D에 반영 - translate, rotation, scale
45
- */
46
- // updateTransform() {
47
- // super.updateTransform()
48
- // var { x: tx, y: ty, z: tz } = this.position
49
- // var { x: rx, y: ry, z: rz } = this.rotation
50
- // var { x: sx, y: sy, z: sz } = this.scale
51
- // this.cssObject3d.position.set(tx, ty, tz)
52
- // this.cssObject3d.rotation.set(rx, ry, rz)
53
- // this.cssObject3d.scale.set(Math.max(sx, SCALE_MIN), Math.max(sy, SCALE_MIN), Math.max(sz, SCALE_MIN))
54
- // }
55
- // updatePosition() {
56
- // super.updatePosition()
57
- // var { x: tx, y: ty, z: tz } = this.position
58
- // this.cssObject3d.position.set(tx, ty, tz)
59
- // }
60
- // updateRotate() {
61
- // super.updateRotate()
62
- // var { x: rx, y: ry, z: rz } = this.rotation
63
- // this.cssObject3d.rotation.set(rx, ry, rz)
64
- // }
65
- // updateScale() {
66
- // super.updateScale()
67
- // var { x: sx, y: sy, z: sz } = this.scale
68
- // this.cssObject3d.scale.set(Math.max(sx, SCALE_MIN), Math.max(sy, SCALE_MIN), Math.max(sz, SCALE_MIN))
69
- // }
70
19
  updateDimension() {
71
20
  super.updateDimension();
72
21
  var dimension = this.dimension;
@@ -1 +1 @@
1
- {"version":3,"file":"real-object-dom-element.js","sourceRoot":"","sources":["../../src/threed/real-object-dom-element.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG1C,MAAM,OAAO,oBAAqB,SAAQ,UAAuB;IACrD,mBAAmB;QAC3B,OAAO,IAAI,WAAW,CAAE,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,CAAA;IAC/F,CAAC;IAED,wCAAwC;IAExC,oBAAoB;IACpB,kDAAkD;IAElD,kDAAkD;IAClD,IAAI;IAEJ,8EAA8E;IAC9E,iDAAiD;IAEjD,gCAAgC;IAChC,yBAAyB;IACzB,qCAAqC;IACrC,yCAAyC;IAEzC,oBAAoB;IACpB,IAAI;IAEJ,sCAAsC;IACtC,8BAA8B;IAC9B,kDAAkD;IAClD,MAAM;IACN,6BAA6B;IAC7B,IAAI;IAEJ,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,OAAO,GAAI,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAA;QAEnF,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;QAE7C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAA;QAClC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;QAEpC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAA;QACvB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAA;QAEtB,sBAAsB;QAEtB,0CAA0C;QAC1C,iCAAiC;QAEjC,4BAA4B;QAE5B,gBAAgB;IAClB,CAAC;IAED;;OAEG;IACH,sBAAsB;IACtB,4BAA4B;IAE5B,gDAAgD;IAChD,gDAAgD;IAChD,6CAA6C;IAE7C,8CAA8C;IAC9C,8CAA8C;IAC9C,0GAA0G;IAC1G,IAAI;IAEJ,qBAAqB;IACrB,2BAA2B;IAE3B,gDAAgD;IAChD,8CAA8C;IAC9C,IAAI;IAEJ,mBAAmB;IACnB,yBAAyB;IAEzB,gDAAgD;IAChD,8CAA8C;IAC9C,IAAI;IAEJ,kBAAkB;IAClB,wBAAwB;IAExB,6CAA6C;IAC7C,0GAA0G;IAC1G,IAAI;IAEJ,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAA;QAEvB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAC7B;QAAC,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,IAAI,CAC1G;QAAC,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAA;IAC/G,CAAC;IAED,WAAW;QACT,KAAK,CAAC,WAAW,EAAE,CAAA;QAEnB,sCAAsC;QACtC,uCAAuC;QACvC,iEAAiE;QACjE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAEvC;QAAC,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;IAC9F,CAAC;CACF","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\nimport { HTMLOverlayElement, HTMLOverlayContainer } from '@hatiolab/things-scene'\n\nimport { RealObjectMesh } from './real-object-mesh'\nimport { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer.js'\nimport { RealObject } from './real-object'\nimport { SCALE_MIN } from './common'\n\nexport class RealObjectDomElement extends RealObject<CSS3DObject> {\n protected getObject3dInstance() {\n return new CSS3DObject((this.component as HTMLOverlayElement | HTMLOverlayContainer).element)\n }\n\n // private _cssObject3d?: THREE.Object3D\n\n // buildGeometry() {\n // var { width, height } = this.component.bounds\n\n // return new THREE.PlaneGeometry(width, height)\n // }\n\n // buildMaterial() /* : THREE.MeshMaterialType | THREE.MeshMaterialType[] */ {\n // var material = new THREE.MeshBasicMaterial()\n\n // material.color.set('black')\n // material.opacity = 0\n // material.side = THREE.DoubleSide\n // material.blending = THREE.NoBlending\n\n // return material\n // }\n\n // get cssObject3d(): THREE.Object3D {\n // if (!this._cssObject3d) {\n // this._cssObject3d = this.buildCSS3DObject()\n // }\n // return this._cssObject3d\n // }\n\n build() {\n super.build()\n\n var element = (this.component as HTMLOverlayElement | HTMLOverlayContainer).element\n\n var { width, height } = this.component.bounds\n\n element.style.width = width + 'px'\n element.style.height = height + 'px'\n\n element.style.left = ''\n element.style.top = ''\n\n // this.object3d.add()\n\n // const cssobj = new CSS3DObject(element)\n // cssobj.position.set(-1, -1, 0)\n\n // this.object3d.add(cssobj)\n\n // return cssobj\n }\n\n /**\n * Component의 상태값의 변화를 Object3D에 반영 - translate, rotation, scale\n */\n // updateTransform() {\n // super.updateTransform()\n\n // var { x: tx, y: ty, z: tz } = this.position\n // var { x: rx, y: ry, z: rz } = this.rotation\n // var { x: sx, y: sy, z: sz } = this.scale\n\n // this.cssObject3d.position.set(tx, ty, tz)\n // this.cssObject3d.rotation.set(rx, ry, rz)\n // this.cssObject3d.scale.set(Math.max(sx, SCALE_MIN), Math.max(sy, SCALE_MIN), Math.max(sz, SCALE_MIN))\n // }\n\n // updatePosition() {\n // super.updatePosition()\n\n // var { x: tx, y: ty, z: tz } = this.position\n // this.cssObject3d.position.set(tx, ty, tz)\n // }\n\n // updateRotate() {\n // super.updateRotate()\n\n // var { x: rx, y: ry, z: rz } = this.rotation\n // this.cssObject3d.rotation.set(rx, ry, rz)\n // }\n\n // updateScale() {\n // super.updateScale()\n\n // var { x: sx, y: sy, z: sz } = this.scale\n // this.cssObject3d.scale.set(Math.max(sx, SCALE_MIN), Math.max(sy, SCALE_MIN), Math.max(sz, SCALE_MIN))\n // }\n\n updateDimension() {\n super.updateDimension()\n\n var dimension = this.dimension\n ;(this.component as HTMLOverlayElement | HTMLOverlayContainer).element.style.width = dimension.width + 'px'\n ;(this.component as HTMLOverlayElement | HTMLOverlayContainer).element.style.height = dimension.height + 'px'\n }\n\n updateAlpha() {\n super.updateAlpha()\n\n // material의 opacity는 항상 0으로 유지되어야 하며,\n // dom element의 opacity에 alpha를 적용해야한다.\n // 하지만, 컬러톤의 반영 외에 transparent 기능은 하지 못하므로, 뒤에 있는 오브젝트를 보여주지 못한다.\n var { alpha = 1 } = this.component.state\n\n ;(this.component as HTMLOverlayElement | HTMLOverlayContainer).element.style.opacity = alpha\n }\n}\n"]}
1
+ {"version":3,"file":"real-object-dom-element.js","sourceRoot":"","sources":["../../src/threed/real-object-dom-element.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG1C,MAAM,OAAO,oBAAqB,SAAQ,UAAuB;IACrD,mBAAmB;QAC3B,OAAO,IAAI,WAAW,CAAE,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,CAAA;IAC/F,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,IAAI,OAAO,GAAI,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAA;QAEnF,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;QAE7C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAA;QAClC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;QAEpC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAA;QACvB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAA;IACxB,CAAC;IAED,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAA;QAEvB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAC7B;QAAC,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,IAAI,CAC1G;QAAC,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAA;IAC/G,CAAC;IAED,WAAW;QACT,KAAK,CAAC,WAAW,EAAE,CAAA;QAEnB,sCAAsC;QACtC,uCAAuC;QACvC,iEAAiE;QACjE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAEvC;QAAC,IAAI,CAAC,SAAuD,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;IAC9F,CAAC;CACF","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\nimport { HTMLOverlayElement, HTMLOverlayContainer } from '@hatiolab/things-scene'\n\nimport { RealObjectMesh } from './real-object-mesh'\nimport { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer.js'\nimport { RealObject } from './real-object'\nimport { SCALE_MIN } from './common'\n\nexport class RealObjectDomElement extends RealObject<CSS3DObject> {\n protected getObject3dInstance() {\n return new CSS3DObject((this.component as HTMLOverlayElement | HTMLOverlayContainer).element)\n }\n\n build() {\n super.build()\n\n var element = (this.component as HTMLOverlayElement | HTMLOverlayContainer).element\n\n var { width, height } = this.component.bounds\n\n element.style.width = width + 'px'\n element.style.height = height + 'px'\n\n element.style.left = ''\n element.style.top = ''\n }\n\n updateDimension() {\n super.updateDimension()\n\n var dimension = this.dimension\n ;(this.component as HTMLOverlayElement | HTMLOverlayContainer).element.style.width = dimension.width + 'px'\n ;(this.component as HTMLOverlayElement | HTMLOverlayContainer).element.style.height = dimension.height + 'px'\n }\n\n updateAlpha() {\n super.updateAlpha()\n\n // material의 opacity는 항상 0으로 유지되어야 하며,\n // dom element의 opacity에 alpha를 적용해야한다.\n // 하지만, 컬러톤의 반영 외에 transparent 기능은 하지 못하므로, 뒤에 있는 오브젝트를 보여주지 못한다.\n var { alpha = 1 } = this.component.state\n\n ;(this.component as HTMLOverlayElement | HTMLOverlayContainer).element.style.opacity = alpha\n }\n}\n"]}
@@ -10,12 +10,11 @@ export declare class RealObjectExtrude extends RealObject {
10
10
  get boundUVGenerator(): BoundUVGenerator;
11
11
  build(): void;
12
12
  createGeometry(shape: THREE.Shape): THREE.BufferGeometry;
13
- createMaterial(): THREE.MeshStandardMaterial;
14
- createMesh(geometry: THREE.BufferGeometry, material: THREE.Material): THREE.Mesh<THREE.BufferGeometry, THREE.Material>;
13
+ createMainMaterial(): THREE.MeshStandardMaterial;
14
+ createMainMesh(geometry: THREE.BufferGeometry, material: THREE.Material): THREE.Mesh<THREE.BufferGeometry, THREE.Material>;
15
15
  createSideMesh(geometry: THREE.BufferGeometry, shape: THREE.Shape): THREE.Mesh<THREE.ExtrudeGeometry, THREE.MeshStandardMaterial>;
16
16
  createTexture(): THREE.CanvasTexture;
17
17
  updateAlpha(): void;
18
18
  updateStrokeStyle(): void;
19
19
  updateFillStyle(): void;
20
- get rebuildingProperties(): string[];
21
20
  }
@@ -2,7 +2,6 @@
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
4
  import * as THREE from 'three';
5
- import tinycolor from 'tinycolor2';
6
5
  import { RealObject } from './real-object';
7
6
  import { BoundUVGenerator } from './utils/bound-uv-generator';
8
7
  import { createCanvas } from './html/elements';
@@ -21,7 +20,7 @@ export class RealObjectExtrude extends RealObject {
21
20
  }
22
21
  build() {
23
22
  super.build();
24
- var { depth = 1, fillStyle = 0xffffff, strokeStyle = 0x636363, lineWidth = 1, alpha = 1 } = this.component.state;
23
+ var { depth = 1 } = this.component.state;
25
24
  // 다각형 그리기
26
25
  var shape = this.shape;
27
26
  if (!shape) {
@@ -37,17 +36,15 @@ export class RealObjectExtrude extends RealObject {
37
36
  });
38
37
  }
39
38
  var geometry = this.createGeometry(shape);
40
- if (fillStyle && fillStyle != 'none') {
41
- var material = this.createMaterial();
42
- this._mainMesh = this.createMesh(geometry, material);
43
- this._mainMesh.castShadow = true;
44
- this.object3d.add(this._mainMesh);
45
- }
46
- if (strokeStyle && strokeStyle != 'transparent' && lineWidth > 0) {
47
- this._sideMesh = this.createSideMesh(geometry, shape /* FIXME , extrudeSettings */);
48
- this._sideMesh.castShadow = true;
49
- this.object3d.add(this._sideMesh);
50
- }
39
+ var material = this.createMainMaterial();
40
+ this._mainMesh = this.createMainMesh(geometry, material);
41
+ this._mainMesh.castShadow = true;
42
+ this.object3d.add(this._mainMesh);
43
+ this._sideMesh = this.createSideMesh(geometry, shape /* FIXME , extrudeSettings */);
44
+ this._sideMesh.castShadow = true;
45
+ this.object3d.add(this._sideMesh);
46
+ this.updateFillStyle();
47
+ this.updateStrokeStyle();
51
48
  }
52
49
  createGeometry(shape) {
53
50
  const { depth = 1 } = this.component.state;
@@ -61,35 +58,13 @@ export class RealObjectExtrude extends RealObject {
61
58
  geometry.center();
62
59
  return geometry;
63
60
  }
64
- createMaterial() {
65
- var { fillStyle = 'black', alpha = 1 } = this.component.state;
66
- var params = {};
67
- var opacity = alpha;
68
- const texture = RealObject.buildFillStyleTexture(this.component);
69
- if (texture) {
70
- params = {
71
- map: texture,
72
- side: THREE.FrontSide
73
- };
74
- }
75
- else if (typeof fillStyle == 'string') {
76
- if (fillStyle !== 'transparent') {
77
- params.color = fillStyle;
78
- opacity *= tinycolor(fillStyle).getAlpha();
79
- }
80
- else {
81
- opacity = 0;
82
- }
83
- }
61
+ createMainMaterial() {
84
62
  return new THREE.MeshStandardMaterial({
85
- ...params,
86
- opacity,
87
- transparent: opacity < 1,
88
63
  metalness: 0.5,
89
64
  roughness: 0.5
90
65
  });
91
66
  }
92
- createMesh(geometry, material) {
67
+ createMainMesh(geometry, material) {
93
68
  var mesh = new THREE.Mesh(geometry, material);
94
69
  mesh.rotation.x = -Math.PI / 2;
95
70
  mesh.rotation.y = -Math.PI;
@@ -97,21 +72,16 @@ export class RealObjectExtrude extends RealObject {
97
72
  return mesh;
98
73
  }
99
74
  createSideMesh(geometry, shape) {
100
- var { strokeStyle = 0x000000, depth = 1, lineWidth = 0, alpha = 1 } = this.component.state;
75
+ var { depth = 1, lineWidth = 0 } = this.component.state;
101
76
  var hole = new THREE.Path();
102
77
  hole.setFromPoints(shape.getPoints());
103
78
  var sideMaterial = new THREE.MeshStandardMaterial({
104
- color: strokeStyle,
105
79
  metalness: 0.5,
106
- roughness: 0.5
80
+ roughness: 0.5,
81
+ // prevent overlapped layers flickering
82
+ polygonOffset: true,
83
+ polygonOffsetFactor: -0.1
107
84
  });
108
- var tinyStrokeStyle = tinycolor(strokeStyle);
109
- var strokeAlpha = tinyStrokeStyle.getAlpha();
110
- sideMaterial.opacity = alpha * strokeAlpha;
111
- sideMaterial.transparent = alpha < 1 || strokeAlpha < 1;
112
- // prevent overlapped layers flickering
113
- sideMaterial.polygonOffset = true;
114
- sideMaterial.polygonOffsetFactor = -0.1;
115
85
  shape = this.sideShape || shape;
116
86
  shape.holes.push(hole);
117
87
  var sideExtrudeSettings = {
@@ -143,7 +113,6 @@ export class RealObjectExtrude extends RealObject {
143
113
  return 1 << count;
144
114
  }
145
115
  var { width, height } = this.component.bounds;
146
- // TODO component.text의 heavy한 로직을 반복적으로 실행하지 않도록, 캐싱하자.
147
116
  var poweredWidth = nextPowerOf2(width);
148
117
  var poweredHeight = nextPowerOf2(height);
149
118
  let canvas = createCanvas(poweredWidth, poweredHeight);
@@ -158,21 +127,22 @@ export class RealObjectExtrude extends RealObject {
158
127
  return texture;
159
128
  }
160
129
  updateAlpha() {
161
- var { alpha = 1, fillStyle, lineStyle } = this.component.state;
130
+ var { alpha = 1, fillStyle, strokeStyle } = this.component.state;
162
131
  this._mainMesh && applyAlpha(this._mainMesh.material, alpha, fillStyle);
163
- this._sideMesh && applyAlpha(this._sideMesh.material, alpha, lineStyle && lineStyle.strokeStyle);
132
+ this._sideMesh && applyAlpha(this._sideMesh.material, alpha, strokeStyle);
164
133
  }
165
134
  updateStrokeStyle() {
166
135
  var _a;
167
- var { strokeStyle } = this.component.state;
168
- if (typeof strokeStyle == 'string') {
169
- ;
170
- ((_a = this._sideMesh) === null || _a === void 0 ? void 0 : _a.material).color.set(strokeStyle);
136
+ const material = (_a = this._sideMesh) === null || _a === void 0 ? void 0 : _a.material;
137
+ if (!material) {
138
+ return;
171
139
  }
140
+ var { strokeStyle } = this.component.state;
141
+ material.color.set(strokeStyle);
172
142
  }
173
143
  updateFillStyle() {
174
144
  var _a;
175
- var { fillStyle } = this.component.state;
145
+ var { fillStyle, alpha = 1 } = this.component.state;
176
146
  var material = (_a = this._mainMesh) === null || _a === void 0 ? void 0 : _a.material;
177
147
  if (!material) {
178
148
  return;
@@ -181,18 +151,9 @@ export class RealObjectExtrude extends RealObject {
181
151
  if (texture) {
182
152
  material.map = texture;
183
153
  }
184
- else if (typeof fillStyle == 'string') {
185
- if (fillStyle !== 'transparent') {
186
- material.color.set(fillStyle);
187
- }
188
- else {
189
- // material.color.set(fillStyle)
190
- material.opacity = 0;
191
- }
154
+ else {
155
+ material.color.set(fillStyle);
192
156
  }
193
157
  }
194
- get rebuildingProperties() {
195
- return ['width', 'height', 'depth', 'text', 'path'];
196
- }
197
158
  }
198
159
  //# sourceMappingURL=real-object-extrude.js.map