@hatiolab/things-scene 10.0.0-beta.21 → 10.0.0-beta.23

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 (64) hide show
  1. package/dist-types/components/line.d.ts +1 -1
  2. package/dist-types/components/mutater/path.d.ts.map +1 -1
  3. package/dist-types/layer/model-layer.d.ts +3 -1
  4. package/dist-types/layer/model-layer.d.ts.map +1 -1
  5. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  6. package/dist-types/search/index.d.ts +3 -0
  7. package/dist-types/search/index.d.ts.map +1 -0
  8. package/dist-types/search/scene-search-engine.d.ts +65 -0
  9. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  10. package/dist-types/search/search-overlay.d.ts +69 -0
  11. package/dist-types/search/search-overlay.d.ts.map +1 -0
  12. package/dist-types/things-scene/index.d.ts +1 -0
  13. package/dist-types/things-scene/index.d.ts.map +1 -1
  14. package/dist-types/things-scene/scene.d.ts +4 -0
  15. package/dist-types/things-scene/scene.d.ts.map +1 -1
  16. package/dist-types/threed/arrow-3d.d.ts +11 -3
  17. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  18. package/dist-types/threed/environments/base-environment.d.ts +9 -0
  19. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  20. package/dist-types/threed/environments/factory-environment.d.ts +2 -3
  21. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
  22. package/dist-types/threed/environments/home-environment.d.ts +2 -3
  23. package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
  24. package/dist-types/threed/environments/office-environment.d.ts +2 -3
  25. package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
  26. package/dist-types/threed/environments/studio-environment.d.ts +2 -3
  27. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
  28. package/dist-types/threed/environments/warehouse-environment.d.ts +2 -3
  29. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
  30. package/dist-types/threed/factories/banner.d.ts +1 -1
  31. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  32. package/dist-types/threed/factories/line.d.ts +10 -0
  33. package/dist-types/threed/factories/line.d.ts.map +1 -0
  34. package/dist-types/threed/factories/polyline.d.ts +10 -0
  35. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  36. package/dist-types/threed/index.d.ts +5 -0
  37. package/dist-types/threed/index.d.ts.map +1 -1
  38. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -1
  39. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +1 -0
  40. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  41. package/dist-types/threed/managers/index.d.ts +1 -0
  42. package/dist-types/threed/managers/index.d.ts.map +1 -1
  43. package/dist-types/threed/managers/interaction-manager.d.ts +6 -0
  44. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  45. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +109 -0
  46. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  47. package/dist-types/threed/material-3d.d.ts +5 -0
  48. package/dist-types/threed/material-3d.d.ts.map +1 -1
  49. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  50. package/dist-types/threed/real-object-line.d.ts +81 -0
  51. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  52. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  53. package/dist-types/threed/real-object.d.ts +7 -6
  54. package/dist-types/threed/real-object.d.ts.map +1 -1
  55. package/dist-types/threed/texture/fillstyle-texture.d.ts +37 -0
  56. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  57. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  58. package/dist-types/threed/three-capability.d.ts +18 -2
  59. package/dist-types/threed/three-capability.d.ts.map +1 -1
  60. package/package.json +1 -1
  61. package/things-scene-min.js +12 -12
  62. package/things-scene-min.js.map +1 -1
  63. package/things-scene.mjs +4 -4
  64. package/things-scene.mjs.map +1 -1
@@ -0,0 +1,109 @@
1
+ import * as THREE from 'three';
2
+ import type Component from '../../components/component.js';
3
+ /**
4
+ * 선택된 path 기반 컴포넌트의 각 vertex에 드래그 가능한 핸들을 표시하는 매니저.
5
+ *
6
+ * polyline, line, polygon, path 등 mutable+path 속성을 가진 컴포넌트에 공통 적용.
7
+ * 멀티셀렉트 시 모든 mutable+path 컴포넌트의 핸들을 표시한다.
8
+ *
9
+ * 기능:
10
+ * - vertex 핸들 드래그: vertex 이동
11
+ * - midpoint 핸들 드래그: 세그먼트 중간에 새 vertex 삽입
12
+ * - Alt+드래그 끝점: 끝에 새 vertex 추가 (pathExtendable인 경우)
13
+ * - 더블클릭 vertex: vertex 삭제 (pathExtendable이고 path.length > 2)
14
+ */
15
+ export declare class VertexGizmoManager {
16
+ private _componentHandles;
17
+ private _handleGroup?;
18
+ private _scene3d?;
19
+ private _commander?;
20
+ private _activeComponent?;
21
+ private _activeVertexHandles;
22
+ private _activeHandleIndex;
23
+ private _isDragging;
24
+ private _isExtending;
25
+ private _dragPlane;
26
+ private _dragOffset;
27
+ private _raycaster;
28
+ private _intersection;
29
+ get isDragging(): boolean;
30
+ get isAttached(): boolean;
31
+ /** 핸들 표시/숨김 (기즈모 드래그 중에는 숨김) */
32
+ setVisible(visible: boolean): void;
33
+ /**
34
+ * 선택된 컴포넌트들에 vertex 핸들을 표시한다.
35
+ */
36
+ attachMultiple(components: Component[], scene: THREE.Scene, commander?: any): void;
37
+ /** 하위 호환: 단일 컴포넌트 attach */
38
+ attach(component: Component, scene: THREE.Scene, commander?: any): void;
39
+ /**
40
+ * 핸들을 제거한다.
41
+ */
42
+ detach(): void;
43
+ /**
44
+ * 컴포넌트에 대한 핸들을 생성한다.
45
+ */
46
+ private _buildComponentHandles;
47
+ /**
48
+ * 특정 컴포넌트의 핸들만 재생성한다.
49
+ */
50
+ private _rebuildComponentHandles;
51
+ private _createVertexHandle;
52
+ private _createMidpointHandle;
53
+ /**
54
+ * 3D 핸들 위치 → 2D path 포인트 역변환
55
+ */
56
+ private _handlePosToPoint;
57
+ /**
58
+ * mutatePath를 commander undo 지원과 함께 실행
59
+ */
60
+ private _execMutatePath;
61
+ /** 모든 핸들을 flat 배열로 반환 */
62
+ private _getAllHandles;
63
+ /** 컴포넌트에 속하는 ComponentHandles를 찾는다 */
64
+ private _findComponentHandles;
65
+ /**
66
+ * 마우스 다운: vertex/midpoint 핸들 raycast hit 감지 → 드래그 시작.
67
+ * @returns true이면 이벤트를 소비
68
+ */
69
+ onPointerDown(ndc: THREE.Vector2, camera: THREE.Camera, event: MouseEvent): boolean;
70
+ /**
71
+ * midpoint 핸들 드래그 시작: 세그먼트 중간에 새 vertex를 삽입
72
+ */
73
+ private _startMidpointDrag;
74
+ /**
75
+ * Alt+드래그 끝점: 끝에 새 vertex를 추가하고 드래그 시작
76
+ */
77
+ private _startEndpointExtend;
78
+ /**
79
+ * 카메라 방향 기반 드래그 평면 설정
80
+ */
81
+ private _setupDragPlane;
82
+ /**
83
+ * 마우스 이동: 드래그 중이면 핸들 이동.
84
+ */
85
+ onPointerMove(ndc: THREE.Vector2, camera: THREE.Camera, event: MouseEvent): boolean;
86
+ /**
87
+ * 현재 활성 컴포넌트의 vertex 핸들 위치로부터 Line2 geometry를 실시간 업데이트한다.
88
+ */
89
+ private _updateLinePreview;
90
+ /**
91
+ * 마우스 업: 드래그 종료 → component.mutatePath() 호출.
92
+ */
93
+ onPointerUp(): boolean;
94
+ /**
95
+ * 더블클릭: vertex 핸들 위에서 더블클릭하면 해당 vertex 삭제.
96
+ * @returns true이면 이벤트를 소비
97
+ */
98
+ onDblClick(ndc: THREE.Vector2, camera: THREE.Camera): boolean;
99
+ /**
100
+ * 핸들 위치를 현재 path 데이터에서 갱신한다.
101
+ */
102
+ syncHandles(): void;
103
+ /**
104
+ * 카메라 거리에 따라 핸들 크기를 조절하여 화면상 일정한 크기를 유지한다.
105
+ */
106
+ updateHandleScales(camera: THREE.Camera): void;
107
+ destroy(): void;
108
+ }
109
+ //# sourceMappingURL=vertex-gizmo-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex-gizmo-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/vertex-gizmo-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AA2B1D;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAK;IAGxB,OAAO,CAAC,gBAAgB,CAAC,CAAW;IACpC,OAAO,CAAC,oBAAoB,CAAmB;IAC/C,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,aAAa,CAAsB;IAE3C,IAAI,UAAU,YAA8B;IAC5C,IAAI,UAAU,YAA+C;IAE7D,gCAAgC;IAChC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMlC;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI;IAqBlF,4BAA4B;IAC5B,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI;IAIvE;;OAEG;IACH,MAAM,IAAI,IAAI;IAiBd;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB,yBAAyB;IACzB,OAAO,CAAC,cAAc;IAQtB,sCAAsC;IACtC,OAAO,CAAC,qBAAqB;IAI7B;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAgDnF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IA6BnF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,WAAW,IAAI,OAAO;IA+BtB;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO;IA8B7D;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;IAuB9C,OAAO,IAAI,IAAI;CAGhB"}
@@ -33,4 +33,9 @@ export interface MaterialPreset {
33
33
  export declare const MATERIAL_PRESETS: Record<string, MaterialPreset>;
34
34
  export declare function resolveMaterial3d(material3d?: Material3D): ResolvedMaterial3D;
35
35
  export declare function toThreeSide(side: ResolvedMaterial3D['side']): THREE.Side;
36
+ /**
37
+ * resolved material3d 속성을 MeshStandardMaterial에 일괄 적용한다.
38
+ * createMaterials / updateMaterial3d 에서 공통으로 사용.
39
+ */
40
+ export declare function applyMaterial3dProps(material: THREE.MeshStandardMaterial, resolved: ResolvedMaterial3D): void;
36
41
  //# sourceMappingURL=material-3d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"material-3d.d.ts","sourceRoot":"","sources":["../../src/threed/material-3d.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,WAAW,UAAU;IAEzB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IAGlC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;IAGlC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACjC,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAQ3D,CAAA;AAED,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,kBAAkB,CA4B7E;AAQD,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAExE"}
1
+ {"version":3,"file":"material-3d.d.ts","sourceRoot":"","sources":["../../src/threed/material-3d.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,WAAW,UAAU;IAEzB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IAGlC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;IAGlC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACjC,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAQ3D,CAAA;AAED,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,kBAAkB,CA4B7E;AAQD,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAExE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,oBAAoB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAS7G"}
@@ -1 +1 @@
1
- {"version":3,"file":"real-object-extrude.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-extrude.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAOhE;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,iBAAiB,CAAC,EAAE,gBAAgB,CAAA;IACpC,OAAO,CAAC,KAAK,CAAC,CAAY;IAE1B,KAAK;IAKL,IAAI,KAAK,IAAI,GAAG,CAEf;IAED,IAAI,gBAAgB,qBAInB;IAED,KAAK;IAoCL,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc;IAoBxD,eAAe,IAAI,KAAK,CAAC,QAAQ,EAAE;IAuBnC,aAAa;IAoCb,OAAO,CAAC,YAAY;IAMpB,gBAAgB;IAqBhB,WAAW;IAUX,iBAAiB;IAQjB,eAAe;IAIf,UAAU;IAIV;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA4DxB,eAAe;CAKhB"}
1
+ {"version":3,"file":"real-object-extrude.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-extrude.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAOhE;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,iBAAiB,CAAC,EAAE,gBAAgB,CAAA;IACpC,OAAO,CAAC,KAAK,CAAC,CAAY;IAE1B,KAAK;IAKL,IAAI,KAAK,IAAI,GAAG,CAEf;IAED,IAAI,gBAAgB,qBAInB;IAED,KAAK;IAoCL,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc;IAoBxD,eAAe,IAAI,KAAK,CAAC,QAAQ,EAAE;IAcnC,aAAa;IAqBb,OAAO,CAAC,YAAY;IAMpB,gBAAgB;IAYhB,WAAW;IAUX,iBAAiB;IAQjB,eAAe;IAIf,UAAU;IAIV;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA4DxB,eAAe;CAKhB"}
@@ -0,0 +1,81 @@
1
+ import * as THREE from 'three';
2
+ import { Line2 } from 'three/examples/jsm/lines/Line2.js';
3
+ import { RealObject } from './real-object.js';
4
+ import type { Properties } from '../interfaces/types.js';
5
+ /**
6
+ * 선형 컴포넌트(line, polyline, path 등)를 3D에서 Line2(fat line)로 렌더링하는 베이스 클래스.
7
+ *
8
+ * RealObjectMesh, RealObjectExtrude와 동급의 추상 클래스.
9
+ * 서브클래스는 worldPath를 구현하여 컴포넌트별 좌표 변환 로직을 제공한다.
10
+ */
11
+ export declare abstract class RealObjectLine extends RealObject<THREE.Group> {
12
+ protected _line2?: Line2;
13
+ /** 서브클래스가 오버라이드: 컴포넌트 path → 3D 로컬 좌표 배열 반환 */
14
+ abstract get worldPath(): THREE.Vector3[];
15
+ protected getObject3dInstance(): THREE.Group<THREE.Object3DEventMap>;
16
+ /** 선형 컴포넌트도 기즈모 변환 가능 — 결과를 path 좌표에 베이킹 */
17
+ get gizmoTransformable(): boolean;
18
+ /** 선형 컴포넌트는 볼륨이 없으므로 바닥면에 위치 */
19
+ protected get syncZPosOffset(): number;
20
+ /**
21
+ * 기즈모 드래그 중에는 컴포넌트 상태를 변경하지 않는다.
22
+ * object3d가 움직이면서 Line2가 함께 이동하므로 시각적으로는 정상.
23
+ * 드래그 종료 시 onGizmoDragEnd에서 일괄 베이킹한다.
24
+ */
25
+ syncFromObject3D(): void;
26
+ /**
27
+ * scale 기즈모 드래그 중에도 dimension 변경을 방지한다.
28
+ */
29
+ applyDimensionFromGizmo(_props: Record<string, number>): void;
30
+ build(): void;
31
+ /**
32
+ * round 속성을 적용하여 worldPath를 보간한 최종 positions을 반환한다.
33
+ */
34
+ protected get smoothedPath(): THREE.Vector3[];
35
+ protected _buildLine(): void;
36
+ /**
37
+ * 팁 오브젝트를 위치/회전/색상 설정하여 object3d에 추가한다.
38
+ */
39
+ private _placeTip;
40
+ private _getResolution;
41
+ /**
42
+ * 기즈모 드래그 종료 시 호출.
43
+ * object3d의 현재 transform(translate/rotate/scale)을
44
+ * path vertex 좌표에 베이킹하고, object3d transform을 리셋한다.
45
+ *
46
+ * 핵심: line/path 컴포넌트는 position/rotation/scale 속성을 갖지 않는다.
47
+ * 오직 vertex 좌표만으로 형태를 결정한다.
48
+ */
49
+ onGizmoDragEnd(_mode: string): void;
50
+ /**
51
+ * object3d의 transform matrix를 path vertex에 적용한 새 parent 좌표를 계산한다.
52
+ * 순수 함수로 추출하여 단위 테스트 가능.
53
+ *
54
+ * @param path - 컴포넌트 path (local coords, rotation=0이므로 parent coords와 동일)
55
+ * @param center - component.center (parent coords)
56
+ * @param parentSize - 부모 컨테이너의 bounds { width, height }
57
+ * @param object3d - 기즈모에 의해 변환된 Object3D
58
+ * @returns 새 path (parent coords)
59
+ */
60
+ static computeBakedPath(path: Array<{
61
+ x: number;
62
+ y: number;
63
+ z?: number;
64
+ }>, center: {
65
+ x: number;
66
+ y: number;
67
+ }, parentSize: {
68
+ width: number;
69
+ height: number;
70
+ }, object3d: THREE.Object3D): Array<{
71
+ x: number;
72
+ y: number;
73
+ z?: number;
74
+ }>;
75
+ updateStrokeStyle(): void;
76
+ updateAlpha(): void;
77
+ updateDimension(): void;
78
+ onchange(after: Properties, before: Properties): void;
79
+ clear(): THREE.Group<THREE.Object3DEventMap>;
80
+ }
81
+ //# sourceMappingURL=real-object-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"real-object-line.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-line.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAKzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAyDxD;;;;;GAKG;AACH,8BAAsB,cAAe,SAAQ,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IAClE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;IAExB,+CAA+C;IAC/C,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;IAEzC,SAAS,CAAC,mBAAmB;IAI7B,4CAA4C;IAC5C,IAAa,kBAAkB,IAAI,OAAO,CAEzC;IAED,gCAAgC;IAChC,SAAS,KAAK,cAAc,IAAI,MAAM,CAErC;IAED;;;;OAIG;IACM,gBAAgB,IAAI,IAAI;IAIjC;;OAEG;IACM,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAItE,KAAK;IAKL;;OAEG;IACH,SAAS,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE,CAqD5C;IAED,SAAS,CAAC,UAAU;IA0FpB;;OAEG;IACH,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,cAAc;IAStB;;;;;;;OAOG;IACM,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAuC5C;;;;;;;;;OASG;IACH,MAAM,CAAC,gBAAgB,CACrB,IAAI,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EACjD,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,GACvB,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC9C,iBAAiB;IAKjB,WAAW;IAIX,eAAe;IAKf,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAgB9C,KAAK;CAYN"}
@@ -1 +1 @@
1
- {"version":3,"file":"real-object-mesh.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-mesh.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,8BAAsB,cAAe,SAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;IACjE,SAAS,CAAC,mBAAmB;IAI7B,KAAK;IASL,WAAW;IAMX,YAAY;IAIZ,eAAe;IAsBf,iBAAiB;IAuBjB,eAAe,IAAI,IAAI;IAqBvB,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAExC,aAAa,IAAI,IAAI;IAerB,gBAAgB;IAiBhB,KAAK;CAKN"}
1
+ {"version":3,"file":"real-object-mesh.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-mesh.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,8BAAsB,cAAe,SAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;IACjE,SAAS,CAAC,mBAAmB;IAI7B,KAAK;IASL,WAAW;IAMX,YAAY;IAIZ,eAAe;IAsBf,iBAAiB;IAuBjB,eAAe,IAAI,IAAI;IAqBvB,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAExC,aAAa,IAAI,IAAI;IAOrB,gBAAgB;IAShB,KAAK;CAKN"}
@@ -11,18 +11,14 @@ export declare abstract class RealObject<T extends THREE.Object3D = THREE.Object
11
11
  object3d: T;
12
12
  private _onchangeWrapper;
13
13
  static buildFillStyleTexture(component: Component): THREE.Texture<unknown> | undefined;
14
- /**
15
- * 패턴 fillStyle을 2D 옵션(fitPattern, offset, align, repeat, color)에 맞춰
16
- * 캔버스 텍스처로 생성한다. 이미지 로드 완료 후 component.invalidate()로 갱신.
17
- */
18
- private static buildPatternTexture;
19
- private static buildGradientTexture;
20
14
  constructor(component: Component);
21
15
  update(): void;
22
16
  protected getObject3dInstance(): T;
23
17
  build(): void;
24
18
  updateMaterial3d(): void;
25
19
  private _applyShadow;
20
+ /** 기즈모(translate/rotate/scale)를 통한 변환이 가능한지 여부. 기본 true. */
21
+ get gizmoTransformable(): boolean;
26
22
  get component(): Component;
27
23
  get threeContainer(): ThreeDimensionalContainer | undefined;
28
24
  get focused(): boolean;
@@ -100,6 +96,11 @@ export declare abstract class RealObject<T extends THREE.Object3D = THREE.Object
100
96
  * Object3D → Component 방향의 동기화. scale은 dimension으로 처리하므로 여기서는 제외.
101
97
  */
102
98
  syncFromObject3D(): void;
99
+ /**
100
+ * 기즈모 드래그 종료 시 호출. 서브클래스가 오버라이드하여
101
+ * 기즈모 결과를 컴포넌트 데이터에 베이킹할 수 있다.
102
+ */
103
+ onGizmoDragEnd(_mode: string): void;
103
104
  /**
104
105
  * scale 기즈모 드래그 결과를 dimension으로 역산하여 컴포넌트에 적용한다.
105
106
  * _suppressOnchange로 피드백 루프를 방지한다.
@@ -1 +1 @@
1
- {"version":3,"file":"real-object.d.ts","sourceRoot":"","sources":["../../src/threed/real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,wBAAwB,CAAA;AAM/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAO5E,8BAAsB,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAE,YAAW,WAAW;IAChG,SAAS,CAAC,UAAU,EAAE,SAAS,CAAA;IAC/B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAQ;IACnC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,iBAAiB,UAAQ;IAE5B,QAAQ,EAAE,CAAC,CAAA;IAKlB,OAAO,CAAC,gBAAgB,CAGvB;IAED,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS;IAcjD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA2FlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;gBA8DvB,SAAS,EAAE,SAAS;IAOhC,MAAM;IAYN,SAAS,CAAC,mBAAmB,IAAI,CAAC;IAIlC,KAAK;IAOL,gBAAgB;IAMhB,OAAO,CAAC,YAAY;IAWpB,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,cAAc,IAAI,yBAAyB,GAAG,SAAS,CAS1D;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAK3B;IAED,OAAO;IAMP,KAAK;IASL;;OAEG;IACH,eAAe;IAUf,IAAI,QAAQ;;;;MAOX;IAED,IAAI,QAAQ;;;;MAQX;IAED,IAAI,KAAK;;;;MAUR;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,QAKL;IAED,IAAI,MAAM;;;;MAWT;IAED,IAAI,SAAS;;;;MAOZ;IAED;;;OAGG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAGD,cAAc;IAKd,YAAY;IAKZ,WAAW;IAKX;;;;OAIG;IACH,kBAAkB;IAuClB,eAAe;IAKf,WAAW;IAoBX,YAAY;IAIZ,iBAAiB;IACjB,eAAe;IACf,UAAU;IAEV;;;OAGG;IACH;;;OAGG;IACH,SAAS,KAAK,cAAc,IAAI,MAAM,CAErC;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;;OAGG;IACH,gBAAgB;IA6BhB;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrD,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;CAyC/C"}
1
+ {"version":3,"file":"real-object.d.ts","sourceRoot":"","sources":["../../src/threed/real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,wBAAwB,CAAA;AAK/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAQ5E,8BAAsB,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAE,YAAW,WAAW;IAChG,SAAS,CAAC,UAAU,EAAE,SAAS,CAAA;IAC/B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAQ;IACnC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,iBAAiB,UAAQ;IAE5B,QAAQ,EAAE,CAAC,CAAA;IAKlB,OAAO,CAAC,gBAAgB,CAGvB;IAED,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS;gBAIrC,SAAS,EAAE,SAAS;IAOhC,MAAM;IAYN,SAAS,CAAC,mBAAmB,IAAI,CAAC;IAIlC,KAAK;IAOL,gBAAgB;IAMhB,OAAO,CAAC,YAAY;IAWpB,4DAA4D;IAC5D,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,cAAc,IAAI,yBAAyB,GAAG,SAAS,CAS1D;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAK3B;IAED,OAAO;IAMP,KAAK;IASL;;OAEG;IACH,eAAe;IAUf,IAAI,QAAQ;;;;MAOX;IAED,IAAI,QAAQ;;;;MAQX;IAED,IAAI,KAAK;;;;MAUR;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,QAKL;IAED,IAAI,MAAM;;;;MAWT;IAED,IAAI,SAAS;;;;MAOZ;IAED;;;OAGG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAGD,cAAc;IAKd,YAAY;IAKZ,WAAW;IAKX;;;;OAIG;IACH,kBAAkB;IAuClB,eAAe;IAKf,WAAW;IAoBX,YAAY;IAIZ,iBAAiB;IACjB,eAAe;IACf,UAAU;IAEV;;;OAGG;IACH;;;OAGG;IACH,SAAS,KAAK,cAAc,IAAI,MAAM,CAErC;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;;OAGG;IACH,gBAAgB;IA6BhB;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrD,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;CAyC/C"}
@@ -0,0 +1,37 @@
1
+ import * as THREE from 'three';
2
+ import type Component from '../../components/component.js';
3
+ /**
4
+ * gradient fillStyle을 캔버스에 그려 반환한다.
5
+ * text-texture.ts의 텍스트+gradient 합성과 real-object.ts의 gradient 텍스처 모두 이 함수를 사용한다.
6
+ */
7
+ export declare function drawGradientCanvas(fillStyle: {
8
+ gradientType?: string;
9
+ rotation?: number;
10
+ center?: string;
11
+ colorStops: {
12
+ position: number;
13
+ color: string;
14
+ }[];
15
+ }, w: number, h: number): HTMLCanvasElement | null;
16
+ /**
17
+ * 패턴 fillStyle을 2D 옵션(fitPattern, offset, align, repeat, color)에 맞춰
18
+ * 캔버스 텍스처로 생성한다. 이미지 로드 완료 후 component.invalidate()로 갱신.
19
+ */
20
+ export declare function buildPatternTexture(component: Component, fillStyle: any): THREE.Texture;
21
+ /**
22
+ * gradient fillStyle을 THREE.CanvasTexture로 생성한다.
23
+ */
24
+ export declare function buildGradientTexture(fillStyle: {
25
+ gradientType?: string;
26
+ rotation?: number;
27
+ center?: string;
28
+ colorStops: {
29
+ position: number;
30
+ color: string;
31
+ }[];
32
+ }): THREE.CanvasTexture | undefined;
33
+ /**
34
+ * fillStyle 객체(pattern 또는 gradient)에 따라 적절한 텍스처를 생성한다.
35
+ */
36
+ export declare function buildFillStyleTexture(component: Component): THREE.Texture | undefined;
37
+ //# sourceMappingURL=fillstyle-texture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fillstyle-texture.d.ts","sourceRoot":"","sources":["../../../src/threed/texture/fillstyle-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAG1D;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAC3H,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,iBAAiB,GAAG,IAAI,CAmC1B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAyFvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAC1H,KAAK,CAAC,aAAa,GAAG,SAAS,CASjC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC,OAAO,GAAG,SAAS,CAYrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-texture.d.ts","sourceRoot":"","sources":["../../../src/threed/texture/text-texture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAUtG;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,UAerC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,QA+CtF;AAgDD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,0CAwCtF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,GAC9C,IAAI,CAoGN;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0B1F"}
1
+ {"version":3,"file":"text-texture.d.ts","sourceRoot":"","sources":["../../../src/threed/texture/text-texture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAUtG;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,UAerC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,QA+CtF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,0CAwCtF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,GAC9C,IAAI,CAoGN;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0B1F"}
@@ -1,7 +1,7 @@
1
1
  import Component from '../components/component.js';
2
2
  import * as THREE from 'three';
3
3
  import { type ArrowStyle3D } from './arrow-3d.js';
4
- import { SceneManager, CameraManager, RendererManager, LightManager, ControlsManager, EventManager3D, GizmoManager, GizmoOperationManager, InteractionManager, PlacementManager, CameraBookmarkManager, BoxSelectionManager, LightingConfig } from './managers/index.js';
4
+ import { SceneManager, CameraManager, RendererManager, LightManager, ControlsManager, EventManager3D, GizmoManager, GizmoOperationManager, InteractionManager, PlacementManager, CameraBookmarkManager, BoxSelectionManager, VertexGizmoManager, LightingConfig } from './managers/index.js';
5
5
  import type { CameraViewName } from './managers/index.js';
6
6
  /**
7
7
  * ThreeCapability를 사용하는 호스트가 구현해야 하는 인터페이스.
@@ -63,6 +63,7 @@ export declare class ThreeCapability {
63
63
  protected gizmoOperationManager: GizmoOperationManager;
64
64
  readonly bookmarkManager: CameraBookmarkManager;
65
65
  protected boxSelectionManager: BoxSelectionManager;
66
+ protected vertexGizmoManager: VertexGizmoManager;
66
67
  private _host?;
67
68
  private _isSpacePanning;
68
69
  private _beforeSpaceMode?;
@@ -101,7 +102,8 @@ export declare class ThreeCapability {
101
102
  onGizmoAttachChanged?: (isAttached: boolean) => void;
102
103
  onCameraViewChanged?: (view: string) => void;
103
104
  onBookmarkChanged?: () => void;
104
- onShortcutHelpToggle?: () => void;
105
+ onHelpToggle?: () => void;
106
+ onSearchToggle?: () => void;
105
107
  onBookmarkNavToggle?: () => void;
106
108
  onBookmarkEditToggle?: () => void;
107
109
  setGizmoMode(mode: 'translate' | 'rotate' | 'scale'): void;
@@ -221,6 +223,8 @@ export declare class ThreeCapability {
221
223
  * NDC는 InteractionManager가 이미 업데이트한 상태여야 한다.
222
224
  */
223
225
  private _handleClickAt;
226
+ /** Shift+클릭 토글 / 일반 클릭 단일 선택 / 빈 공간 클릭 해제 */
227
+ private _applySelection;
224
228
  /**
225
229
  * Raycast로 마우스 아래의 3D 오브젝트를 찾는다.
226
230
  */
@@ -258,6 +262,18 @@ export declare class ThreeCapability {
258
262
  onPan(e: TouchEvent): boolean;
259
263
  onTouchEnd(e: TouchEvent): boolean;
260
264
  onKeyDown(e: KeyboardEvent): boolean;
265
+ /** Escape: MODE_ADD 취소, paste mode 종료, 기즈모 detach + 선택 해제 */
266
+ private _handleEscapeKey;
267
+ /** 편집 모드 전용 키: Ctrl+Z/C/X/V/D, Enter, W/E/R, Delete, 화살표 */
268
+ private _handleEditModeKey;
269
+ /** 화살표 키로 선택된 오브젝트 이동 */
270
+ private _handleArrowKeyMove;
271
+ /** Alt/Shift 키: orbit/pan 및 박스 셀렉션 힌트 커서 */
272
+ private _handleCursorHintKey;
273
+ /** 카메라 뷰 전환 (0-6, Q), H: 도움말, F: 검색, B: 북마크 네비게이션 */
274
+ private _handleCameraAndViewKey;
275
+ /** Space/P/O: 재생 제어 (뷰어), Space: 패닝 모드 (편집) */
276
+ private _handlePlaybackKey;
261
277
  private _onKeyUp;
262
278
  onPinch(e: TouchEvent): boolean;
263
279
  onDoubleTap(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"three-capability.d.ts","sourceRoot":"","sources":["../../src/threed/three-capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"three-capability.d.ts","sourceRoot":"","sources":["../../src/threed/three-capability.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/things-scene",
3
- "version": "10.0.0-beta.21",
3
+ "version": "10.0.0-beta.23",
4
4
  "description": "A high-performance 2D/3D scene graph library for building interactive visual editors, combining HTML5 Canvas and Three.js to enable facility visualization, data-driven animations, and real-time monitoring dashboards",
5
5
  "main": "things-scene-min.js",
6
6
  "module": "things-scene.mjs",