@hatiolab/things-scene 10.0.0-beta.1 → 10.0.0-beta.100

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 (376) hide show
  1. package/CHANGELOG.md +2240 -0
  2. package/dist-types/animation/animate.d.ts.map +1 -1
  3. package/dist-types/animation/animations/animation.d.ts +5 -3
  4. package/dist-types/animation/animations/animation.d.ts.map +1 -1
  5. package/dist-types/animation/animations/heartbeat.d.ts +0 -7
  6. package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
  7. package/dist-types/animation/animations/waypoint.d.ts +45 -4
  8. package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
  9. package/dist-types/animation/interfaces.d.ts +1 -1
  10. package/dist-types/animation/interfaces.d.ts.map +1 -1
  11. package/dist-types/clock/frame-clock.d.ts +119 -0
  12. package/dist-types/clock/frame-clock.d.ts.map +1 -0
  13. package/dist-types/clock/index.d.ts +3 -0
  14. package/dist-types/clock/index.d.ts.map +1 -0
  15. package/dist-types/command/command-migrate.d.ts.map +1 -1
  16. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  17. package/dist-types/components/audio.d.ts +9 -5
  18. package/dist-types/components/audio.d.ts.map +1 -1
  19. package/dist-types/components/component-data.d.ts +24 -0
  20. package/dist-types/components/component-data.d.ts.map +1 -1
  21. package/dist-types/components/component-geometry.d.ts.map +1 -1
  22. package/dist-types/components/component.d.ts +14 -4
  23. package/dist-types/components/component.d.ts.map +1 -1
  24. package/dist-types/components/container-abstract.d.ts +52 -11
  25. package/dist-types/components/container-abstract.d.ts.map +1 -1
  26. package/dist-types/components/container.d.ts +9 -5
  27. package/dist-types/components/container.d.ts.map +1 -1
  28. package/dist-types/components/data/data.d.ts.map +1 -1
  29. package/dist-types/components/drawer/fill.d.ts.map +1 -1
  30. package/dist-types/components/drawer/stroke.d.ts.map +1 -1
  31. package/dist-types/components/ellipse.d.ts +9 -5
  32. package/dist-types/components/ellipse.d.ts.map +1 -1
  33. package/dist-types/components/generic-placeholders.d.ts +291 -0
  34. package/dist-types/components/generic-placeholders.d.ts.map +1 -0
  35. package/dist-types/components/geometry/snap-guide.d.ts +45 -0
  36. package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
  37. package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
  38. package/dist-types/components/global-ref.d.ts.map +1 -1
  39. package/dist-types/components/group.d.ts +1 -0
  40. package/dist-types/components/group.d.ts.map +1 -1
  41. package/dist-types/components/html/shadow.d.ts +33 -1
  42. package/dist-types/components/html/shadow.d.ts.map +1 -1
  43. package/dist-types/components/html-overlay-container.d.ts +9 -5
  44. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  45. package/dist-types/components/html-overlay-element.d.ts +17 -9
  46. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  47. package/dist-types/components/image-view.d.ts +9 -5
  48. package/dist-types/components/image-view.d.ts.map +1 -1
  49. package/dist-types/components/index.d.ts +6 -0
  50. package/dist-types/components/index.d.ts.map +1 -1
  51. package/dist-types/components/info-window.d.ts +9 -5
  52. package/dist-types/components/info-window.d.ts.map +1 -1
  53. package/dist-types/components/line.d.ts +2 -1
  54. package/dist-types/components/line.d.ts.map +1 -1
  55. package/dist-types/components/local-ref.d.ts +9 -5
  56. package/dist-types/components/local-ref.d.ts.map +1 -1
  57. package/dist-types/components/mixins/connectable.d.ts +9 -5
  58. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  59. package/dist-types/components/mixins/data-source.d.ts +9 -5
  60. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  61. package/dist-types/components/mixins/gltf-component.d.ts +280 -0
  62. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
  63. package/dist-types/components/mixins/html-element.d.ts +8 -4
  64. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  65. package/dist-types/components/mixins/move-handle.d.ts +9 -5
  66. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  67. package/dist-types/components/mixins/rect-path.d.ts +9 -5
  68. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  69. package/dist-types/components/mixins/three-d-only.d.ts +247 -0
  70. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
  71. package/dist-types/components/mixins/value-holder.d.ts +9 -5
  72. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  73. package/dist-types/components/mutater/path.d.ts.map +1 -1
  74. package/dist-types/components/node.d.ts +9 -5
  75. package/dist-types/components/node.d.ts.map +1 -1
  76. package/dist-types/components/outline/path-outline.d.ts.map +1 -1
  77. package/dist-types/components/polygon.d.ts +2 -0
  78. package/dist-types/components/polygon.d.ts.map +1 -1
  79. package/dist-types/components/polyline.d.ts.map +1 -1
  80. package/dist-types/components/popup-container.d.ts +25 -0
  81. package/dist-types/components/popup-container.d.ts.map +1 -0
  82. package/dist-types/components/popup.d.ts +39 -5
  83. package/dist-types/components/popup.d.ts.map +1 -1
  84. package/dist-types/components/position/popup-position.d.ts +11 -0
  85. package/dist-types/components/position/popup-position.d.ts.map +1 -1
  86. package/dist-types/components/rect.d.ts +18 -10
  87. package/dist-types/components/rect.d.ts.map +1 -1
  88. package/dist-types/components/root-container.d.ts +11 -4
  89. package/dist-types/components/root-container.d.ts.map +1 -1
  90. package/dist-types/components/ruler.d.ts +9 -5
  91. package/dist-types/components/ruler.d.ts.map +1 -1
  92. package/dist-types/components/service-component.d.ts +268 -0
  93. package/dist-types/components/service-component.d.ts.map +1 -0
  94. package/dist-types/components/shape.d.ts.map +1 -1
  95. package/dist-types/components/text.d.ts +9 -5
  96. package/dist-types/components/text.d.ts.map +1 -1
  97. package/dist-types/decorator/decorator-registry.d.ts +4 -0
  98. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  99. package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
  100. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
  101. package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
  102. package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
  103. package/dist-types/diagnostics/contract-inspector.d.ts +103 -0
  104. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
  105. package/dist-types/diagnostics/data-lag-tracker.d.ts +44 -0
  106. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
  107. package/dist-types/diagnostics/inspector.d.ts +58 -4
  108. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  109. package/dist-types/diagnostics/load-tracker.d.ts +82 -0
  110. package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
  111. package/dist-types/diagnostics/loading-overlay.d.ts +41 -0
  112. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
  113. package/dist-types/effect/shadow.d.ts +3 -1
  114. package/dist-types/effect/shadow.d.ts.map +1 -1
  115. package/dist-types/event-map/index.d.ts +1 -0
  116. package/dist-types/event-map/index.d.ts.map +1 -1
  117. package/dist-types/event-map/transition-handler.d.ts +2 -0
  118. package/dist-types/event-map/transition-handler.d.ts.map +1 -0
  119. package/dist-types/interfaces/layout.d.ts +35 -1
  120. package/dist-types/interfaces/layout.d.ts.map +1 -1
  121. package/dist-types/interfaces/providers.d.ts +20 -3
  122. package/dist-types/interfaces/providers.d.ts.map +1 -1
  123. package/dist-types/interfaces/real-object.d.ts +8 -1
  124. package/dist-types/interfaces/real-object.d.ts.map +1 -1
  125. package/dist-types/interfaces/rendering.d.ts +86 -14
  126. package/dist-types/interfaces/rendering.d.ts.map +1 -1
  127. package/dist-types/interfaces/types.d.ts +20 -1
  128. package/dist-types/interfaces/types.d.ts.map +1 -1
  129. package/dist-types/layer/action/popup.d.ts +13 -0
  130. package/dist-types/layer/action/popup.d.ts.map +1 -1
  131. package/dist-types/layer/add-layer.d.ts +8 -0
  132. package/dist-types/layer/add-layer.d.ts.map +1 -1
  133. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  134. package/dist-types/layer/index.d.ts +1 -0
  135. package/dist-types/layer/index.d.ts.map +1 -1
  136. package/dist-types/layer/layer.d.ts +1 -0
  137. package/dist-types/layer/layer.d.ts.map +1 -1
  138. package/dist-types/layer/model-layer.d.ts +67 -7
  139. package/dist-types/layer/model-layer.d.ts.map +1 -1
  140. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  141. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  142. package/dist-types/layer/selection/selected-finder.d.ts +1 -1
  143. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  144. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  145. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  146. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  147. package/dist-types/layout/absolute.d.ts +2 -2
  148. package/dist-types/layout/card.d.ts +2 -2
  149. package/dist-types/layout/linear-horizontal.d.ts +2 -2
  150. package/dist-types/layout/linear-vertical.d.ts +2 -2
  151. package/dist-types/layout/table.d.ts +3 -3
  152. package/dist-types/math/component-pose.d.ts +51 -0
  153. package/dist-types/math/component-pose.d.ts.map +1 -0
  154. package/dist-types/math/index.d.ts +3 -0
  155. package/dist-types/math/index.d.ts.map +1 -0
  156. package/dist-types/math/pose6dof.d.ts +93 -0
  157. package/dist-types/math/pose6dof.d.ts.map +1 -0
  158. package/dist-types/navigation/index.d.ts +7 -0
  159. package/dist-types/navigation/index.d.ts.map +1 -0
  160. package/dist-types/navigation/nav-graph.d.ts +55 -0
  161. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  162. package/dist-types/navigation/path-planner.d.ts +29 -0
  163. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  164. package/dist-types/navigation/reservation-table.d.ts +103 -0
  165. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  166. package/dist-types/navigation/types.d.ts +145 -0
  167. package/dist-types/navigation/types.d.ts.map +1 -0
  168. package/dist-types/placement/index.d.ts +3 -0
  169. package/dist-types/placement/index.d.ts.map +1 -0
  170. package/dist-types/placement/placement.d.ts +53 -0
  171. package/dist-types/placement/placement.d.ts.map +1 -0
  172. package/dist-types/search/index.d.ts +3 -0
  173. package/dist-types/search/index.d.ts.map +1 -0
  174. package/dist-types/search/scene-search-engine.d.ts +65 -0
  175. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  176. package/dist-types/search/search-overlay.d.ts +95 -0
  177. package/dist-types/search/search-overlay.d.ts.map +1 -0
  178. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  179. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  180. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  181. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  182. package/dist-types/things-scene/api/ids.d.ts +4 -1
  183. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  184. package/dist-types/things-scene/api/index.d.ts +1 -1
  185. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  186. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  187. package/dist-types/things-scene/application-context.d.ts +52 -0
  188. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  189. package/dist-types/things-scene/create.d.ts +44 -3
  190. package/dist-types/things-scene/create.d.ts.map +1 -1
  191. package/dist-types/things-scene/index.d.ts +25 -0
  192. package/dist-types/things-scene/index.d.ts.map +1 -1
  193. package/dist-types/things-scene/scene.d.ts +109 -3
  194. package/dist-types/things-scene/scene.d.ts.map +1 -1
  195. package/dist-types/threed/arrow-3d.d.ts +13 -4
  196. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  197. package/dist-types/threed/common.d.ts +5 -0
  198. package/dist-types/threed/common.d.ts.map +1 -1
  199. package/dist-types/threed/environments/base-environment.d.ts +17 -0
  200. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  201. package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
  202. package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
  203. package/dist-types/threed/environments/factory-environment.d.ts +11 -0
  204. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -0
  205. package/dist-types/threed/environments/home-environment.d.ts +11 -0
  206. package/dist-types/threed/environments/home-environment.d.ts.map +1 -0
  207. package/dist-types/threed/environments/index.d.ts +6 -0
  208. package/dist-types/threed/environments/index.d.ts.map +1 -0
  209. package/dist-types/threed/environments/office-environment.d.ts +11 -0
  210. package/dist-types/threed/environments/office-environment.d.ts.map +1 -0
  211. package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
  212. package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
  213. package/dist-types/threed/environments/studio-environment.d.ts +11 -0
  214. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -0
  215. package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
  216. package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
  217. package/dist-types/threed/environments/warehouse-environment.d.ts +11 -0
  218. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -0
  219. package/dist-types/threed/factories/backdrop.d.ts +535 -0
  220. package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
  221. package/dist-types/threed/factories/banner.d.ts +13 -6
  222. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  223. package/dist-types/threed/factories/camera.d.ts +10 -5
  224. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  225. package/dist-types/threed/factories/cube.d.ts +10 -5
  226. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  227. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  228. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  229. package/dist-types/threed/factories/decal.d.ts +512 -0
  230. package/dist-types/threed/factories/decal.d.ts.map +1 -0
  231. package/dist-types/threed/factories/floor-plate.d.ts +11 -0
  232. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
  233. package/dist-types/threed/factories/gltf-object.d.ts +266 -35
  234. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  235. package/dist-types/threed/factories/group.d.ts +2 -0
  236. package/dist-types/threed/factories/group.d.ts.map +1 -0
  237. package/dist-types/threed/factories/light.d.ts +1 -0
  238. package/dist-types/threed/factories/light.d.ts.map +1 -1
  239. package/dist-types/threed/factories/line.d.ts +10 -0
  240. package/dist-types/threed/factories/line.d.ts.map +1 -0
  241. package/dist-types/threed/factories/ortholine.d.ts +10 -0
  242. package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
  243. package/dist-types/threed/factories/polygon.d.ts +19 -0
  244. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  245. package/dist-types/threed/factories/polyline.d.ts +10 -0
  246. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  247. package/dist-types/threed/factories/rect.d.ts.map +1 -1
  248. package/dist-types/threed/factories/sphere.d.ts +6 -0
  249. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  250. package/dist-types/threed/factories/sprite.d.ts +10 -5
  251. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  252. package/dist-types/threed/factories/triangle.d.ts.map +1 -1
  253. package/dist-types/threed/factories/wall.d.ts +10 -5
  254. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  255. package/dist-types/threed/floor/floor.d.ts.map +1 -1
  256. package/dist-types/threed/handle-3d.d.ts +21 -0
  257. package/dist-types/threed/handle-3d.d.ts.map +1 -0
  258. package/dist-types/threed/html/elements.d.ts.map +1 -1
  259. package/dist-types/threed/index.d.ts +22 -0
  260. package/dist-types/threed/index.d.ts.map +1 -1
  261. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  262. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  263. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +127 -0
  264. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -0
  265. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  266. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  267. package/dist-types/threed/managers/controls-manager.d.ts +25 -4
  268. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  269. package/dist-types/threed/managers/event-manager3d.d.ts +8 -0
  270. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  271. package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
  272. package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
  273. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +55 -1
  274. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  275. package/dist-types/threed/managers/index.d.ts +4 -1
  276. package/dist-types/threed/managers/index.d.ts.map +1 -1
  277. package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
  278. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  279. package/dist-types/threed/managers/light-manager.d.ts +15 -0
  280. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  281. package/dist-types/threed/managers/renderer-manager.d.ts +43 -0
  282. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  283. package/dist-types/threed/managers/scene-manager.d.ts +21 -0
  284. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  285. package/dist-types/threed/managers/types.d.ts +5 -2
  286. package/dist-types/threed/managers/types.d.ts.map +1 -1
  287. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +155 -0
  288. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  289. package/dist-types/threed/material-3d.d.ts +5 -2
  290. package/dist-types/threed/material-3d.d.ts.map +1 -1
  291. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  292. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  293. package/dist-types/threed/real-object-dom-element.d.ts +1 -0
  294. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  295. package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
  296. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  297. package/dist-types/threed/real-object-external-model.d.ts +24 -0
  298. package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
  299. package/dist-types/threed/real-object-extrude.d.ts +16 -1
  300. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  301. package/dist-types/threed/real-object-gltf.d.ts +58 -11
  302. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  303. package/dist-types/threed/real-object-group.d.ts +2 -0
  304. package/dist-types/threed/real-object-group.d.ts.map +1 -1
  305. package/dist-types/threed/real-object-line.d.ts +83 -0
  306. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  307. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  308. package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
  309. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  310. package/dist-types/threed/real-object-service.d.ts +14 -0
  311. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  312. package/dist-types/threed/real-object-sprite.d.ts +7 -1
  313. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  314. package/dist-types/threed/real-object-text.d.ts +5 -0
  315. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  316. package/dist-types/threed/real-object.d.ts +176 -7
  317. package/dist-types/threed/real-object.d.ts.map +1 -1
  318. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  319. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  320. package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
  321. package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
  322. package/dist-types/threed/texture/fillstyle-texture.d.ts +46 -0
  323. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  324. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  325. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  326. package/dist-types/threed/three-capability.d.ts +148 -6
  327. package/dist-types/threed/three-capability.d.ts.map +1 -1
  328. package/dist-types/threed/three-container.d.ts +5 -1
  329. package/dist-types/threed/three-container.d.ts.map +1 -1
  330. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  331. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  332. package/dist-types/threed/utils/anchor.d.ts +33 -0
  333. package/dist-types/threed/utils/anchor.d.ts.map +1 -0
  334. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  335. package/dist-types/threed/utils/tether.d.ts +46 -0
  336. package/dist-types/threed/utils/tether.d.ts.map +1 -0
  337. package/dist-types/threed/z-priority.d.ts +27 -0
  338. package/dist-types/threed/z-priority.d.ts.map +1 -0
  339. package/dist-types/tracker/tracker.d.ts +57 -0
  340. package/dist-types/tracker/tracker.d.ts.map +1 -0
  341. package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
  342. package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
  343. package/dist-types/transfer/container-capacity.d.ts +342 -0
  344. package/dist-types/transfer/container-capacity.d.ts.map +1 -0
  345. package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
  346. package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
  347. package/dist-types/transfer/index.d.ts +15 -0
  348. package/dist-types/transfer/index.d.ts.map +1 -0
  349. package/dist-types/transfer/pickup-helpers.d.ts +65 -0
  350. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  351. package/dist-types/transfer/simulation-clock.d.ts +45 -0
  352. package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
  353. package/dist-types/transfer/transfer.d.ts +168 -0
  354. package/dist-types/transfer/transfer.d.ts.map +1 -0
  355. package/dist-types/transfer/types.d.ts +389 -0
  356. package/dist-types/transfer/types.d.ts.map +1 -0
  357. package/dist-types/transition/transition-effect.d.ts +97 -0
  358. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  359. package/dist-types/types/bounding.d.ts +1 -1
  360. package/dist-types/types/bounding.d.ts.map +1 -1
  361. package/dist-types/types/component.d.ts +6 -177
  362. package/dist-types/types/component.d.ts.map +1 -1
  363. package/dist-types/types/event.d.ts +57 -0
  364. package/dist-types/types/event.d.ts.map +1 -1
  365. package/dist-types/types/index.d.ts +1 -0
  366. package/dist-types/types/index.d.ts.map +1 -1
  367. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  368. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  369. package/dist-types/types/polygon-path.d.ts +153 -0
  370. package/dist-types/types/polygon-path.d.ts.map +1 -0
  371. package/package.json +8 -6
  372. package/things-scene-min.js +12 -13
  373. package/things-scene-min.js.map +1 -1
  374. package/things-scene-transfer.mjs +6 -0
  375. package/things-scene.mjs +8 -9
  376. package/things-scene.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"gizmo-operation-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/gizmo-operation-manager.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAA;IAClB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,UAAU,IAAI,IAAI,CAAA;CACnB;AAcD;;;;;GAKG;AACH,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,iBAAiB,CAAC,CAAkB;IAC5C,OAAO,CAAC,aAAa,CAAC,CAAqC;IAE3D,OAAO,CAAC,sBAAsB,CAAC,CAAQ;IAGvC,OAAO,CAAC,kBAAkB,CAAC,CAAoD;IAC/E,OAAO,CAAC,gBAAgB,CAAQ;IAGhC,OAAO,CAAC,mBAAmB,CAAC,CAAgC;IAC5D,OAAO,CAAC,qBAAqB,CAAC,CAAa;IAC3C,OAAO,CAAC,4BAA4B,CAAC,CAA8B;IACnE,OAAO,CAAC,6BAA6B,CAAC,CAAqC;IAE3E;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpC;;;;OAIG;IACH,cAAc,CACZ,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE;QAAE,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,EACvD,OAAO,EAAE,MAAM,kBAAkB,GAAG,SAAS,EAC7C,SAAS,CAAC,EAAE;QACV,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;KAChD,GACA,IAAI;IA6BP,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,wBAAwB;IA2ChC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,UAAU;IAuClB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiEtB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAsBhC"}
1
+ {"version":3,"file":"gizmo-operation-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/gizmo-operation-manager.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAA;IAClB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,UAAU,IAAI,IAAI,CAAA;CACnB;AAcD;;;;;GAKG;AACH,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,iBAAiB,CAAC,CAAkB;IAC5C,OAAO,CAAC,aAAa,CAAC,CAAqC;IAE3D,OAAO,CAAC,sBAAsB,CAAC,CAAQ;IAGvC,OAAO,CAAC,gBAAgB,CAAC,CAAqC;IAE9D,OAAO,CAAC,wBAAwB,CAAC,CAAe;IAGhD,OAAO,CAAC,kBAAkB,CAAC,CAAoD;IAC/E,OAAO,CAAC,gBAAgB,CAAQ;IAGhC,OAAO,CAAC,mBAAmB,CAAC,CAAgC;IAC5D,OAAO,CAAC,qBAAqB,CAAC,CAAa;IAC3C,OAAO,CAAC,4BAA4B,CAAC,CAA8B;IACnE,OAAO,CAAC,6BAA6B,CAAC,CAAqC;IAE3E,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAe;IAE1C;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpC;;;;OAIG;IACH,cAAc,CACZ,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE;QAAE,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,EACvD,OAAO,EAAE,MAAM,kBAAkB,GAAG,SAAS,EAC7C,SAAS,CAAC,EAAE;QACV,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;QAC/C,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;KAClD,GACA,IAAI;IAuCP,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,wBAAwB;IA2ChC,OAAO,CAAC,oBAAoB;IAiB5B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,UAAU;IA4ElB;;OAEG;IACH,OAAO,CAAC,cAAc;IAwDtB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B;IA0BtC,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,kBAAkB;IA2C1B;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -1,4 +1,4 @@
1
- export { SceneManager } from './scene-manager.js';
1
+ export { SceneManager, recommendsLogarithmicDepthForSky } from './scene-manager.js';
2
2
  export { CameraManager, type CameraViewName } from './camera-manager.js';
3
3
  export { RendererManager } from './renderer-manager.js';
4
4
  export { LightManager } from './light-manager.js';
@@ -8,5 +8,8 @@ export { GizmoManager, type GizmoMode } from './gizmo-manager.js';
8
8
  export { GizmoOperationManager, type GizmoOperationHost } from './gizmo-operation-manager.js';
9
9
  export { InteractionManager, type InteractionDelegate } from './interaction-manager.js';
10
10
  export { PlacementManager, type PlacementDelegate } from './placement-manager.js';
11
+ export { CameraBookmarkManager, type CameraBookmark } from './camera-bookmark-manager.js';
12
+ export { BoxSelectionManager } from './box-selection-manager.js';
13
+ export { VertexGizmoManager } from './vertex-gizmo-manager.js';
11
14
  export type { CameraConfig, RendererConfig, LightingConfig } from './types.js';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACjF,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
@@ -32,6 +32,22 @@ export interface InteractionDelegate {
32
32
  handleTouchEnd(e: TouchEvent): void;
33
33
  /** 키 입력. 처리했으면 true, 상위로 전파해야 하면 false */
34
34
  handleKeyDown(e: KeyboardEvent): boolean;
35
+ /** 키 해제. 처리했으면 true */
36
+ handleKeyUp?(e: KeyboardEvent): boolean;
37
+ /** Space 키 패닝 모드 여부 */
38
+ isSpacePanning?(): boolean;
39
+ /** 박스 셀렉션 시작 */
40
+ handleBoxSelectionStart?(x: number, y: number): void;
41
+ /** 박스 셀렉션 업데이트 */
42
+ handleBoxSelectionUpdate?(x: number, y: number): void;
43
+ /** 박스 셀렉션 종료 (additive: Shift 유지 여부, typeFiltered: Ctrl/Cmd 유지 여부) */
44
+ handleBoxSelectionEnd?(additive: boolean, typeFiltered?: boolean): void;
45
+ /** vertex 핸들 드래그 시작 시도. 성공 시 true 반환 */
46
+ tryVertexDragStart?(e: MouseEvent): boolean;
47
+ /** vertex 핸들 드래그 이동 */
48
+ handleVertexDragMove?(e: MouseEvent): void;
49
+ /** vertex 핸들 드래그 종료 */
50
+ handleVertexDragEnd?(e: MouseEvent): void;
35
51
  }
36
52
  /**
37
53
  * DOM 이벤트 핸들링과 드래그 상태 관리를 담당하는 매니저.
@@ -45,6 +61,7 @@ export declare class InteractionManager {
45
61
  private _hostElement?;
46
62
  private _mouseIsDown;
47
63
  private _isDragging;
64
+ private _touchGizmoCaptured;
48
65
  private _mouseDownPos;
49
66
  private _boundHandlers?;
50
67
  private _docMoveHandler?;
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/interaction-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/interaction-manager.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,21 @@ export declare class LightManager {
18
18
  color?: number | string;
19
19
  intensity?: number;
20
20
  }): void;
21
+ /**
22
+ * directional light를 camera에 붙일지, scene에 독립 배치할지 전환한다.
23
+ * - follow=true: camera에 attach — light는 카메라 이동에 따라 함께 이동 (기본 동작)
24
+ * - follow=false: scene에 attach — light는 고정 월드 위치, angle 기반 조명 가능
25
+ */
26
+ setDirectionalFollowCamera(follow: boolean): void;
27
+ /**
28
+ * directional light의 방향을 방위각/고도각으로 설정 (world-space).
29
+ * - azimuth: 수평면 회전 (deg, 0=+Z/정면, 90=+X/우측)
30
+ * - elevation: 수직 고도 (deg, 0=수평, 90=정수리)
31
+ * - distance: 중심으로부터의 거리 (기본 1000)
32
+ *
33
+ * follow-camera 모드일 땐 설정해도 효과 없음 (camera 좌표계 기준으로 재계산됨).
34
+ */
35
+ setDirectionalAngle(azimuthDeg: number, elevationDeg: number, distance?: number): void;
21
36
  setDirectionalEnabled(enabled: boolean, config?: {
22
37
  color?: number | string;
23
38
  intensity?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"light-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/light-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAC,CAAuB;IAC1C,OAAO,CAAC,SAAS,CAAC,CAAwB;IAC1C,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAc;IAE9B,IAAI,SAAS,IAAI,KAAK,CAAC,eAAe,GAAG,SAAS,CAEjD;IAED,IAAI,QAAQ,IAAI,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAEjD;IAED,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc;IAoDtE,gBAAgB,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOhH,iBAAiB,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM/E,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAevG,OAAO;CAQR"}
1
+ {"version":3,"file":"light-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/light-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAC,CAAuB;IAC1C,OAAO,CAAC,SAAS,CAAC,CAAwB;IAC1C,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAc;IAE9B,IAAI,SAAS,IAAI,KAAK,CAAC,eAAe,GAAG,SAAS,CAEjD;IAED,IAAI,QAAQ,IAAI,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAEjD;IAED,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc;IAwDtE,gBAAgB,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOhH,iBAAiB,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM/E;;;;OAIG;IACH,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAOjD;;;;;;;OAOG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,IAAI;IAiBpF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiBvG,OAAO;CAQR"}
@@ -9,29 +9,72 @@ export declare class RendererManager {
9
9
  private _composer?;
10
10
  private _outlinePass?;
11
11
  private _noSupportWebgl;
12
+ private _hudScene?;
13
+ private _hudCamera?;
14
+ private _hudCSS3DRenderer?;
15
+ private _hudCSS3DScene?;
16
+ private _hudCSS3DCamera?;
12
17
  get renderer(): THREE.WebGLRenderer | undefined;
18
+ /**
19
+ * 런타임에 tone mapping exposure만 갱신한다. property-panel에서 slider로
20
+ * 조정할 때 호출 — renderer 재생성 없이 다음 renderThreeD()부터 반영.
21
+ */
22
+ setExposure(value: number): void;
13
23
  get css3DRenderer(): CSS3DRenderer;
14
24
  get css3DScene(): THREE.Scene;
15
25
  get composer(): EffectComposer | undefined;
16
26
  get noSupportWebgl(): boolean;
17
27
  get domElement(): HTMLCanvasElement | undefined;
28
+ get hudScene(): THREE.Scene;
29
+ get hudCSS3DScene(): THREE.Scene;
30
+ get hudCamera(): THREE.OrthographicCamera | undefined;
31
+ /**
32
+ * HUD 직교 카메라를 초기화한다.
33
+ * 2D 좌표계와 동일: 원점 = 좌상단, X→오른쪽, Y→아래
34
+ */
35
+ setupHUD(width: number, height: number): void;
36
+ /**
37
+ * HUD 카메라 프러스텀을 캔버스 크기에 맞춘다.
38
+ */
39
+ resizeHUD(width: number, height: number): void;
18
40
  setupWebGL(width: number, height: number, config: RendererConfig): boolean;
19
41
  setupCSS3D(isViewMode: boolean, sceneAttr?: string): void;
20
42
  private createCSS3DRenderer;
21
43
  setupComposer(scene: THREE.Scene, camera: THREE.Camera, width: number, height: number, gizmoHelper?: THREE.Object3D): EffectComposer;
44
+ setupLightComposer(scene: THREE.Scene, camera: THREE.Camera, width: number, height: number): EffectComposer;
45
+ get hasOutlinePass(): boolean;
22
46
  updateRenderPassCamera(camera: THREE.Camera): void;
23
47
  /**
24
48
  * 아웃라인을 표시할 오브젝트 목록을 설정한다.
25
49
  */
26
50
  setOutlineObjects(objects: THREE.Object3D[]): void;
51
+ /**
52
+ * 아웃라인 색을 설정한다. visibleEdge / hiddenEdge 둘 다 같은 색으로.
53
+ * Tracker 등 외부 모듈이 selection/tracking outline 색을 자기 정책으로
54
+ * 동기화할 때 사용. 기본 색 (#f26522) 복원도 같은 메서드.
55
+ */
56
+ setOutlineColor(color: number): void;
27
57
  resize(width: number, height: number): void;
58
+ private _scene?;
59
+ private _camera?;
60
+ /**
61
+ * 경량 composer를 해제하고 direct render 모드로 복귀한다.
62
+ */
63
+ teardownLightComposer(): void;
64
+ /**
65
+ * 포스트프로세싱 없이 직접 렌더링할 때 사용할 scene/camera를 설정한다.
66
+ */
67
+ setDirectRenderTargets(scene: THREE.Scene, camera: THREE.Camera): void;
28
68
  render(): void;
69
+ private renderHUD;
29
70
  renderCSS3D(camera: THREE.Camera): void;
71
+ get hudCSS3DRenderer(): CSS3DRenderer | undefined;
30
72
  getSize(): {
31
73
  width: number;
32
74
  height: number;
33
75
  };
34
76
  destroy(): void;
77
+ disposeHUD(): void;
35
78
  disposeCSS3DScene(): void;
36
79
  }
37
80
  //# sourceMappingURL=renderer-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/renderer-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAA;AAKpF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAqB;IACvC,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,SAAS,CAAC,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,eAAe,CAAQ;IAE/B,IAAI,QAAQ,oCAEX;IAED,IAAI,aAAa,kBAKhB;IAED,IAAI,UAAU,gBAKb;IAED,IAAI,QAAQ,+BAEX;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,UAAU,kCAEb;IAED,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO;IAuC1E,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM;IAmBlD,OAAO,CAAC,mBAAmB;IAI3B,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ;IA4CnH,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM;IAS3C;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;IAM3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOpC,MAAM;IAIN,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM;IAIhC,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAM5C,OAAO;IAQP,iBAAiB;CAMlB"}
1
+ {"version":3,"file":"renderer-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/renderer-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAA;AAKpF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAqB;IACvC,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,SAAS,CAAC,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,eAAe,CAAQ;IAG/B,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAC,CAA0B;IAE7C,OAAO,CAAC,iBAAiB,CAAC,CAAe;IACzC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,eAAe,CAAC,CAA0B;IAElD,IAAI,QAAQ,oCAEX;IAED;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC,IAAI,aAAa,kBAKhB;IAED,IAAI,UAAU,gBAKb;IAED,IAAI,QAAQ,+BAEX;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,UAAU,kCAEb;IAED,IAAI,QAAQ,gBAKX;IAED,IAAI,aAAa,gBAKhB;IAED,IAAI,SAAS,yCAEZ;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA4CtC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQvC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO;IAmD1E,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM;IAmBlD,OAAO,CAAC,mBAAmB;IAI3B,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ;IA4CnH,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAsB1F,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM;IAa3C;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;IAM3C;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM;IAO7B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAkBpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAc;IAE9B;;OAEG;IACH,qBAAqB;IAQrB;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;IAK/D,MAAM;IAsBN,OAAO,CAAC,SAAS;IAcjB,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM;IAchC,IAAI,gBAAgB,8BAEnB;IAED,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAM5C,OAAO;IAYP,UAAU;IAkCV,iBAAiB;CAMlB"}
@@ -1,15 +1,36 @@
1
1
  import * as THREE from 'three';
2
2
  import type Component from '../../components/component.js';
3
+ /**
4
+ * 환경 프리셋의 logarithmicDepthBuffer 추천 여부.
5
+ * 실내 (warehouse/factory/office/home) = true. 그 외 / unknown = false.
6
+ * Renderer 생성 시 사용자가 명시 override 안 했을 때 default 로 적용.
7
+ */
8
+ export declare function recommendsLogarithmicDepthForSky(sky?: string): boolean;
3
9
  export declare class SceneManager {
4
10
  private _scene?;
5
11
  private _mixer?;
6
12
  private _timer?;
7
13
  private _envTexture?;
14
+ private _renderer?;
8
15
  get scene(): THREE.Scene | undefined;
9
16
  get mixer(): THREE.AnimationMixer | undefined;
10
17
  setup(): THREE.Scene;
11
18
  setupMixer(): THREE.AnimationMixer;
12
19
  setupEnvironment(renderer: THREE.WebGLRenderer): void;
20
+ /**
21
+ * 환경맵 프리셋을 적용한다.
22
+ */
23
+ private _applyEnvironment;
24
+ /**
25
+ * 환경맵을 해제한다. (IBL 기여 제거)
26
+ */
27
+ private _clearEnvironment;
28
+ /**
29
+ * 3D 씬 배경(sky)을 설정한다. environment(IBL)도 함께 관리한다.
30
+ * @param sky - 프리셋 이름 (studio/warehouse/factory/office/home | sunny/cloudy/rainy) | 'color' | '' (none)
31
+ * @param skyColor - sky='color'일 때 사용할 색상
32
+ */
33
+ setSky(sky?: string, skyColor?: string): void;
13
34
  addFloor(component: Component): void;
14
35
  /**
15
36
  * 기존 floor를 제거하고 새로 생성하여 교체한다.
@@ -1 +1 @@
1
- {"version":3,"file":"scene-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/scene-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAI1D,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAsB;IACrC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAe;IAEnC,IAAI,KAAK,4BAER;IAED,IAAI,KAAK,qCAER;IAED,KAAK;IAKL,UAAU;IAOV,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa;IAO9C,QAAQ,CAAC,SAAS,EAAE,SAAS;IAO7B;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS;IAYhC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ;IAI/B,eAAe;IAOf,OAAO;CAwBR"}
1
+ {"version":3,"file":"scene-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/scene-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AA2B1D;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAItE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAsB;IACrC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAC,CAAqB;IAEvC,IAAI,KAAK,4BAER;IAED,IAAI,KAAK,qCAER;IAED,KAAK;IAKL,UAAU;IAOV,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa;IAO9C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAmBtC,QAAQ,CAAC,SAAS,EAAE,SAAS;IAO7B;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS;IAYhC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ;IAI/B,eAAe;IAOf,OAAO;CAyBR"}
@@ -2,7 +2,6 @@ export interface CameraConfig {
2
2
  fov: number;
3
3
  near: number;
4
4
  far: number;
5
- zoom: number;
6
5
  cameraX?: number;
7
6
  cameraY?: number;
8
7
  cameraZ?: number;
@@ -11,6 +10,9 @@ export interface RendererConfig {
11
10
  precision: string;
12
11
  antialias: boolean;
13
12
  exposure: number;
13
+ postprocessing?: boolean;
14
+ shadowMap?: boolean;
15
+ logarithmicDepthBuffer?: boolean;
14
16
  }
15
17
  export interface LightingConfig {
16
18
  hemisphere: {
@@ -21,7 +23,8 @@ export interface LightingConfig {
21
23
  directional?: {
22
24
  color: number;
23
25
  intensity: number;
24
- attachToCamera: boolean;
26
+ attachToCamera?: boolean;
27
+ position?: [number, number, number];
25
28
  castShadow?: boolean;
26
29
  shadowMapSize?: number;
27
30
  shadowBias?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,cAAc,EAAE,OAAO,CAAA;QACvB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,OAAO,CAAA;QACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAClC,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QACnC,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,OAAO,CAAA;QACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAClC,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF"}
@@ -0,0 +1,155 @@
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 _activeKind;
24
+ private _activeHandle?;
25
+ private _isDragging;
26
+ private _isExtending;
27
+ private _isPending;
28
+ private _pendingHit?;
29
+ private _pendingHandleType?;
30
+ private _pendingScreenStart;
31
+ private _dragPlane;
32
+ private _dragOffset;
33
+ private _raycaster;
34
+ private _intersection;
35
+ get isDragging(): boolean;
36
+ get isAttached(): boolean;
37
+ /** 핸들 표시/숨김 (기즈모 드래그 중에는 숨김) */
38
+ setVisible(visible: boolean): void;
39
+ /**
40
+ * 선택된 컴포넌트들에 vertex 핸들을 표시한다.
41
+ */
42
+ attachMultiple(components: Component[], scene: THREE.Scene, commander?: any): void;
43
+ /** 하위 호환: 단일 컴포넌트 attach */
44
+ attach(component: Component, scene: THREE.Scene, commander?: any): void;
45
+ /**
46
+ * 핸들을 제거한다.
47
+ */
48
+ detach(): void;
49
+ /**
50
+ * 컴포넌트에 대한 핸들을 생성한다.
51
+ */
52
+ private _buildComponentHandles;
53
+ /**
54
+ * 특정 컴포넌트의 핸들만 재생성한다.
55
+ */
56
+ private _rebuildComponentHandles;
57
+ private _createVertexHandle;
58
+ private _createMidpointHandle;
59
+ private _createCornerHandle;
60
+ private _createBulgeHandle;
61
+ /**
62
+ * 3D 핸들 위치 → 2D path 포인트 역변환
63
+ */
64
+ private _handlePosToPoint;
65
+ /**
66
+ * mutatePath를 commander undo 지원과 함께 실행
67
+ */
68
+ private _execMutatePath;
69
+ /** 모든 핸들을 flat 배열로 반환 */
70
+ private _getAllHandles;
71
+ /** 컴포넌트에 속하는 ComponentHandles를 찾는다 */
72
+ private _findComponentHandles;
73
+ /**
74
+ * 마우스 다운: 핸들 raycast hit 감지 → **pending 상태 진입** (드래그 시작 X).
75
+ *
76
+ * 2D `ua-event-handler.ts` 와 동일 컨벤션: mousedown 만으로 path mutation 을 일으키지
77
+ * 않고, mousemove 가 DRAG_THRESHOLD_PX2 를 넘는 순간 dragstart 처리.
78
+ * 이전엔 midpoint 핸들 클릭만 해도 vertex 가 즉시 추가되었고, vertex 클릭만 해도
79
+ * mouseup 에서 no-op CommandChange 가 쌓였다 — 두 케이스 모두 2D 와 다른 거동.
80
+ *
81
+ * vertex/midpoint 우선 raycast — corner/bulge 는 vertex 가 hit 안 될 때만 검사.
82
+ * 같은 ray 위에 vertex 와 corner 가 겹칠 때 vertex 가 우선되도록.
83
+ *
84
+ * @returns true이면 이벤트를 소비
85
+ */
86
+ onPointerDown(ndc: THREE.Vector2, camera: THREE.Camera, event: MouseEvent): boolean;
87
+ /**
88
+ * pending 상태에서 임계값 통과 시점에 호출 — kind 별 dragstart 처리.
89
+ * `_startMidpointDrag` 는 vertex 를 splice 하므로 이 시점까지 path mutation 이 미뤄진다.
90
+ */
91
+ private _beginDrag;
92
+ /**
93
+ * corner radius 핸들 드래그 시작 — 보드 평면 ray-cast 로 드래그 좌표를 받아
94
+ * cornerRadiusFromDrag 으로 새 radius 계산.
95
+ */
96
+ private _startCornerDrag;
97
+ /**
98
+ * bulge 핸들 드래그 시작.
99
+ */
100
+ private _startBulgeDrag;
101
+ /**
102
+ * midpoint 핸들 드래그 시작: 세그먼트 중간에 새 vertex를 삽입
103
+ */
104
+ private _startMidpointDrag;
105
+ /**
106
+ * Alt+드래그 끝점: 끝에 새 vertex를 추가하고 드래그 시작
107
+ */
108
+ private _startEndpointExtend;
109
+ /**
110
+ * 카메라 방향 기반 드래그 평면 설정
111
+ */
112
+ private _setupDragPlane;
113
+ /**
114
+ * 마우스 이동: pending 인 경우 임계값 검사 후 dragstart, 그 후 dragmove 처리.
115
+ *
116
+ * 첫 mousemove 가 임계값을 넘는 순간 `_beginDrag` 호출 — 이 함수가 _setupDragPlane 까지
117
+ * 처리하므로 같은 mousemove 내에서 fallthrough 로 dragmove 까지 이어지면 된다.
118
+ */
119
+ onPointerMove(ndc: THREE.Vector2, camera: THREE.Camera, event: MouseEvent): boolean;
120
+ /** corner 드래그 라이브 갱신 — 보드 좌표 변환 후 cornerRadiusFromDrag */
121
+ private _dragCornerLive;
122
+ /** bulge 드래그 라이브 갱신 */
123
+ private _dragBulgeLive;
124
+ /**
125
+ * 현재 활성 컴포넌트의 vertex 핸들 위치로부터 Line2 geometry를 실시간 업데이트한다.
126
+ */
127
+ private _updateLinePreview;
128
+ /**
129
+ * 마우스 업: 드래그 종료 → component.mutatePath() 호출.
130
+ *
131
+ * pending 만 있고 드래그가 시작 안 된 경우 = 클릭만. mutation 없이 정리만 한다
132
+ * (2D 와 동일 — 클릭은 path 를 더럽히지 않음). dblclick 은 별개 이벤트라 정리해도 무방.
133
+ */
134
+ onPointerUp(): boolean;
135
+ /**
136
+ * 더블클릭:
137
+ * - vertex 핸들 → vertex 삭제 (기존)
138
+ * - corner 핸들 → radius 제거 (직각 복귀)
139
+ * - bulge 핸들 → bulge 제거 (직선 복귀)
140
+ *
141
+ * vertex 우선 raycast — corner/bulge 는 vertex 가 hit 안 될 때만 검사.
142
+ * onPointerDown 과 동일 컨벤션 (vertex 위 클릭이 corner 로 떨어지지 않도록).
143
+ */
144
+ onDblClick(ndc: THREE.Vector2, camera: THREE.Camera): boolean;
145
+ /**
146
+ * 핸들 위치를 현재 path 데이터에서 갱신한다.
147
+ */
148
+ syncHandles(): void;
149
+ /**
150
+ * 카메라 거리에 따라 핸들 크기를 조절하여 화면상 일정한 크기를 유지한다.
151
+ */
152
+ updateHandleScales(camera: THREE.Camera): void;
153
+ destroy(): void;
154
+ }
155
+ //# 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;AA4D1D;;;;;;;;;;;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,CAAuB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,kBAAkB,CAAC,CAAY;IACvC,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,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;IAsBd;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqF9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB,yBAAyB;IACzB,OAAO,CAAC,cAAc;IAatB,sCAAsC;IACtC,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAyDnF;;;OAGG;IACH,OAAO,CAAC,UAAU;IAuClB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAkEnF,0DAA0D;IAC1D,OAAO,CAAC,eAAe;IAwCvB,uBAAuB;IACvB,OAAO,CAAC,cAAc;IA0CtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;;;;OAKG;IACH,WAAW,IAAI,OAAO;IA+DtB;;;;;;;;OAQG;IACH,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO;IAuE7D;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;IA2B9C,OAAO,IAAI,IAAI;CAGhB"}
@@ -10,8 +10,6 @@ export interface Material3D {
10
10
  side?: 'double' | 'front' | 'back';
11
11
  castShadow?: boolean;
12
12
  receiveShadow?: boolean;
13
- spriteMode?: 'billboard' | 'plane';
14
- renderMode?: 'css3d' | 'texture';
15
13
  }
16
14
  export interface ResolvedMaterial3D {
17
15
  metalness: number;
@@ -33,4 +31,9 @@ export interface MaterialPreset {
33
31
  export declare const MATERIAL_PRESETS: Record<string, MaterialPreset>;
34
32
  export declare function resolveMaterial3d(material3d?: Material3D): ResolvedMaterial3D;
35
33
  export declare function toThreeSide(side: ResolvedMaterial3D['side']): THREE.Side;
34
+ /**
35
+ * resolved material3d 속성을 MeshStandardMaterial에 일괄 적용한다.
36
+ * createMaterials / updateMaterial3d 에서 공통으로 사용.
37
+ */
38
+ export declare function applyMaterial3dProps(material: THREE.MeshStandardMaterial, resolved: ResolvedMaterial3D): void;
36
39
  //# 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;CACxB;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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 3축의 변화율 중 가장 큰 것을 기준으로 균일 비율을 반환한다.
3
+ * 모든 변화가 threshold 미만이면 null 반환 (변경 없음).
4
+ *
5
+ * @param ratios - [x, y, z] 각 축의 변화 비율 (1.0 = 변화 없음)
6
+ * @returns 균일 비율 또는 null
7
+ */
8
+ export declare function getUniformRatio(ratios: [number, number, number]): number | null;
9
+ //# sourceMappingURL=ratio-lock-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratio-lock-utils.d.ts","sourceRoot":"","sources":["../../src/threed/ratio-lock-utils.ts"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAW/E"}
@@ -3,6 +3,7 @@ import { RealObject } from './real-object.js';
3
3
  export declare class RealObjectDomElement extends RealObject<CSS3DObject> {
4
4
  /** 평면 오브젝트: 바닥 위로 올려 z-fighting 방지 */
5
5
  protected get syncZPosOffset(): number;
6
+ get geometricOffsetY(): number;
6
7
  protected getObject3dInstance(): CSS3DObject;
7
8
  /**
8
9
  * CSS3DObject는 geometry가 없으므로 Euler rotation으로 바닥에 눕힘.
@@ -1 +1 @@
1
- {"version":3,"file":"real-object-dom-element.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-dom-element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,WAAW,CAAC;IAC/D,sCAAsC;IACtC,SAAS,KAAK,cAAc,WAE3B;IAED,SAAS,CAAC,mBAAmB;IAI7B;;;OAGG;IACH,IAAI,QAAQ;;;;MAQX;IAED;;OAEG;IACH,gBAAgB;IA0BhB,KAAK;IAeL,eAAe;IAWf,WAAW;CAUZ"}
1
+ {"version":3,"file":"real-object-dom-element.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-dom-element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,WAAW,CAAC;IAC/D,sCAAsC;IACtC,SAAS,KAAK,cAAc,WAE3B;IAED,IAAa,gBAAgB,WAE5B;IAED,SAAS,CAAC,mBAAmB;IAI7B;;;OAGG;IACH,IAAI,QAAQ;;;;MAQX;IAED;;OAEG;IACH,gBAAgB;IAqChB,KAAK;IAsBL,eAAe;IAsBf,WAAW;CAUZ"}
@@ -3,7 +3,10 @@ import { RealObject } from './real-object.js';
3
3
  export declare class RealObjectDomTexture extends RealObject<THREE.Mesh> {
4
4
  /** 평면 오브젝트: 바닥 위로 올려 z-fighting 방지 */
5
5
  protected get syncZPosOffset(): number;
6
+ get geometricOffsetY(): number;
6
7
  private _debounceTimer?;
8
+ private _origInvalidate?;
9
+ constructor(component: any);
7
10
  protected getObject3dInstance(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
8
11
  build(): void;
9
12
  updateDimension(): void;
@@ -11,9 +14,15 @@ export declare class RealObjectDomTexture extends RealObject<THREE.Mesh> {
11
14
  updateHidden(): void;
12
15
  private _debouncedRebuild;
13
16
  private _rebuildTexture;
17
+ /**
18
+ * 기존 캔버스/텍스처를 유지한 채 그림만 다시 그린다. 애니메이션 프레임용 경량 경로.
19
+ * 캔버스는 세팅된 상태에서만 호출되므로 canvas/texture가 아직 없으면 no-op.
20
+ */
21
+ private _refreshTextureNow;
14
22
  updateFillStyle(): void;
15
23
  updateStrokeStyle(): void;
16
24
  updateText(): void;
25
+ onchange(after: Record<string, any>, before: Record<string, any>): void;
17
26
  updateMaterial3d(): void;
18
27
  clear(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
19
28
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"real-object-dom-texture.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-dom-texture.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAO7C,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9D,sCAAsC;IACtC,SAAS,KAAK,cAAc,WAE3B;IAED,OAAO,CAAC,cAAc,CAAC,CAA+B;IAEtD,SAAS,CAAC,mBAAmB;IAI7B,KAAK;IA4BL,eAAe;IAOf,WAAW;IAKX,YAAY;IAIZ,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IAQvB,eAAe;IAIf,iBAAiB;IAIjB,UAAU;IAIV,gBAAgB;IAahB,KAAK;IASL,OAAO;CAOR"}
1
+ {"version":3,"file":"real-object-dom-texture.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-dom-texture.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAe7C,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9D,sCAAsC;IACtC,SAAS,KAAK,cAAc,WAE3B;IAED,IAAa,gBAAgB,WAE5B;IAED,OAAO,CAAC,cAAc,CAAC,CAA+B;IACtD,OAAO,CAAC,eAAe,CAAC,CAAY;gBAExB,SAAS,EAAE,GAAG;IAiB1B,SAAS,CAAC,mBAAmB;IAI7B,KAAK;IA4BL,eAAe;IAMf,WAAW;IAKX,YAAY;IAIZ,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAW1B,eAAe;IAIf,iBAAiB;IAIjB,UAAU;IAIV,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAYhE,gBAAgB;IAahB,KAAK;IASL,OAAO;CAWR"}
@@ -0,0 +1,24 @@
1
+ import * as THREE from 'three';
2
+ import { RealObject } from './real-object.js';
3
+ export declare abstract class RealObjectExternalModel<TData = unknown> extends RealObject {
4
+ /**
5
+ * 로드 세대 카운터. build() 호출마다 증가한다.
6
+ * 비동기 load 콜백은 gen 비교로 stale 여부를 판단해야 한다.
7
+ */
8
+ protected _loadGen: number;
9
+ /** 모델 subtree의 직접 부모. clear() 시 통째로 disposeObject3D된다. */
10
+ protected pivot?: THREE.Object3D;
11
+ protected _objectSize?: THREE.Vector3;
12
+ get objectSize(): THREE.Vector3 | undefined;
13
+ build(): void;
14
+ updateSource(): void;
15
+ protected abstract _loadExternal(url: string): Promise<TData>;
16
+ protected abstract _onLoaded(data: TData): void;
17
+ protected abstract get _formatLabel(): string;
18
+ /** 빈 상태 placeholder의 색상. 포맷별로 식별 색 override 가능. */
19
+ protected get _placeholderColor(): number;
20
+ protected _showEmptyPlaceholder(): void;
21
+ protected _showErrorPlaceholder(): void;
22
+ clear(): THREE.Object3D<THREE.Object3DEventMap>;
23
+ }
24
+ //# sourceMappingURL=real-object-external-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"real-object-external-model.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-external-model.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,8BAAsB,uBAAuB,CAAC,KAAK,GAAG,OAAO,CAAE,SAAQ,UAAU;IAC/E;;;OAGG;IACH,SAAS,CAAC,QAAQ,SAAI;IAEtB,0DAA0D;IAC1D,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAA;IAEhC,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAsB;IAE3D,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,GAAG,SAAS,CAE1C;IAED,KAAK;IAqCL,YAAY;IAMZ,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7D,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAC/C,SAAS,CAAC,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAA;IAI7C,mDAAmD;IACnD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,CAAC,qBAAqB;IA8B/B,SAAS,CAAC,qBAAqB;IAa/B,KAAK;CASN"}
@@ -14,7 +14,7 @@ import { BoundUVGenerator } from './utils/bound-uv-generator.js';
14
14
  */
15
15
  export declare class RealObjectExtrude extends RealObject {
16
16
  _boundUVGenerator?: BoundUVGenerator;
17
- private _mesh?;
17
+ protected _mesh?: THREE.Mesh;
18
18
  clear(): THREE.Object3D<THREE.Object3DEventMap>;
19
19
  get shape(): any;
20
20
  get boundUVGenerator(): BoundUVGenerator;
@@ -27,6 +27,21 @@ export declare class RealObjectExtrude extends RealObject {
27
27
  updateAlpha(): void;
28
28
  updateStrokeStyle(): void;
29
29
  updateFillStyle(): void;
30
+ updateText(): void;
31
+ /**
32
+ * cap 면(앞/뒤)에 fillStyle + 텍스트를 합성한 텍스처를 적용한다.
33
+ * 텍스트가 없으면 fillStyle만 적용한다.
34
+ */
35
+ private _applyCapTexture;
30
36
  updateDimension(): void;
37
+ /**
38
+ * path 변경 시 geometry 만 교체 (material/texture 보존).
39
+ *
40
+ * 이전엔 `update()` (clear + build) 호출했는데, 그러면 build 가 새 materials 를
41
+ * 만들고 updateFillStyle → 패턴인 경우 patternTextTexture 비동기 이미지 로드를
42
+ * 매번 다시 시작 → drag 중 race 로 패턴 깜빡임/누락. geometry 만 교체하면
43
+ * material/CanvasTexture 가 그대로 보존되어 안정.
44
+ */
45
+ onchange(after: any, before: any): void;
31
46
  }
32
47
  //# sourceMappingURL=real-object-extrude.d.ts.map
@@ -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;AAMhE;;;;;;;;;;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;IAiBf,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,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAA;IAE5B,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;IA+DxB,eAAe;IAMf;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;CAajC"}