@hatiolab/things-scene 10.0.0-beta.13 → 10.0.0-beta.131

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 (465) hide show
  1. package/dist-types/animation/animate.d.ts.map +1 -1
  2. package/dist-types/animation/animations/animation.d.ts +5 -3
  3. package/dist-types/animation/animations/animation.d.ts.map +1 -1
  4. package/dist-types/animation/animations/heartbeat.d.ts +0 -7
  5. package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
  6. package/dist-types/animation/animations/waypoint.d.ts +45 -4
  7. package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
  8. package/dist-types/animation/interfaces.d.ts +1 -1
  9. package/dist-types/animation/interfaces.d.ts.map +1 -1
  10. package/dist-types/clock/frame-clock.d.ts +119 -0
  11. package/dist-types/clock/frame-clock.d.ts.map +1 -0
  12. package/dist-types/clock/index.d.ts +3 -0
  13. package/dist-types/clock/index.d.ts.map +1 -0
  14. package/dist-types/command/command-migrate.d.ts.map +1 -1
  15. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  16. package/dist-types/components/audio.d.ts +10 -3
  17. package/dist-types/components/audio.d.ts.map +1 -1
  18. package/dist-types/components/component-data.d.ts +24 -0
  19. package/dist-types/components/component-data.d.ts.map +1 -1
  20. package/dist-types/components/component-drawing.d.ts.map +1 -1
  21. package/dist-types/components/component-geometry.d.ts.map +1 -1
  22. package/dist-types/components/component-hierarchy.d.ts +1 -1
  23. package/dist-types/components/component-hierarchy.d.ts.map +1 -1
  24. package/dist-types/components/component.d.ts +33 -4
  25. package/dist-types/components/component.d.ts.map +1 -1
  26. package/dist-types/components/container-abstract.d.ts +56 -11
  27. package/dist-types/components/container-abstract.d.ts.map +1 -1
  28. package/dist-types/components/container.d.ts +9 -2
  29. package/dist-types/components/container.d.ts.map +1 -1
  30. package/dist-types/components/data/data.d.ts.map +1 -1
  31. package/dist-types/components/data/evaluator.d.ts +27 -0
  32. package/dist-types/components/data/evaluator.d.ts.map +1 -1
  33. package/dist-types/components/donut.d.ts.map +1 -1
  34. package/dist-types/components/drawer/fill.d.ts.map +1 -1
  35. package/dist-types/components/drawer/stroke.d.ts.map +1 -1
  36. package/dist-types/components/ellipse.d.ts +10 -3
  37. package/dist-types/components/ellipse.d.ts.map +1 -1
  38. package/dist-types/components/generic-placeholders.d.ts +294 -0
  39. package/dist-types/components/generic-placeholders.d.ts.map +1 -0
  40. package/dist-types/components/geometry/snap-guide.d.ts +45 -0
  41. package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
  42. package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
  43. package/dist-types/components/global-ref.d.ts.map +1 -1
  44. package/dist-types/components/group.d.ts +2 -0
  45. package/dist-types/components/group.d.ts.map +1 -1
  46. package/dist-types/components/html/reposition.d.ts.map +1 -1
  47. package/dist-types/components/html/shadow.d.ts +33 -1
  48. package/dist-types/components/html/shadow.d.ts.map +1 -1
  49. package/dist-types/components/html-overlay-container.d.ts +9 -2
  50. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  51. package/dist-types/components/html-overlay-element.d.ts +19 -5
  52. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  53. package/dist-types/components/image-view.d.ts +10 -3
  54. package/dist-types/components/image-view.d.ts.map +1 -1
  55. package/dist-types/components/index.d.ts +7 -0
  56. package/dist-types/components/index.d.ts.map +1 -1
  57. package/dist-types/components/info-window.d.ts +10 -3
  58. package/dist-types/components/info-window.d.ts.map +1 -1
  59. package/dist-types/components/line.d.ts +2 -1
  60. package/dist-types/components/line.d.ts.map +1 -1
  61. package/dist-types/components/local-ref.d.ts +10 -3
  62. package/dist-types/components/local-ref.d.ts.map +1 -1
  63. package/dist-types/components/mixins/connectable.d.ts +10 -3
  64. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  65. package/dist-types/components/mixins/data-source.d.ts +10 -3
  66. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  67. package/dist-types/components/mixins/gltf-component.d.ts +282 -0
  68. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
  69. package/dist-types/components/mixins/holdable.d.ts +12 -0
  70. package/dist-types/components/mixins/holdable.d.ts.map +1 -0
  71. package/dist-types/components/mixins/html-element.d.ts +9 -2
  72. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  73. package/dist-types/components/mixins/move-handle.d.ts +19 -7
  74. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  75. package/dist-types/components/mixins/rect-path.d.ts +10 -3
  76. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  77. package/dist-types/components/mixins/three-d-only.d.ts +250 -0
  78. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
  79. package/dist-types/components/mixins/value-holder.d.ts +10 -3
  80. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  81. package/dist-types/components/mutater/path.d.ts.map +1 -1
  82. package/dist-types/components/node.d.ts +10 -3
  83. package/dist-types/components/node.d.ts.map +1 -1
  84. package/dist-types/components/outline/path-outline.d.ts.map +1 -1
  85. package/dist-types/components/polygon-container.d.ts +61 -0
  86. package/dist-types/components/polygon-container.d.ts.map +1 -0
  87. package/dist-types/components/polygon.d.ts +2 -0
  88. package/dist-types/components/polygon.d.ts.map +1 -1
  89. package/dist-types/components/polyline.d.ts +6 -0
  90. package/dist-types/components/polyline.d.ts.map +1 -1
  91. package/dist-types/components/popup-container.d.ts +25 -0
  92. package/dist-types/components/popup-container.d.ts.map +1 -0
  93. package/dist-types/components/popup.d.ts +40 -3
  94. package/dist-types/components/popup.d.ts.map +1 -1
  95. package/dist-types/components/position/popup-position.d.ts +11 -0
  96. package/dist-types/components/position/popup-position.d.ts.map +1 -1
  97. package/dist-types/components/rect.d.ts +20 -6
  98. package/dist-types/components/rect.d.ts.map +1 -1
  99. package/dist-types/components/retention/retention-manager.d.ts +9 -1
  100. package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
  101. package/dist-types/components/root-container.d.ts +18 -4
  102. package/dist-types/components/root-container.d.ts.map +1 -1
  103. package/dist-types/components/ruler.d.ts +10 -3
  104. package/dist-types/components/ruler.d.ts.map +1 -1
  105. package/dist-types/components/service-component.d.ts +271 -0
  106. package/dist-types/components/service-component.d.ts.map +1 -0
  107. package/dist-types/components/shape.d.ts.map +1 -1
  108. package/dist-types/components/star.d.ts.map +1 -1
  109. package/dist-types/components/text.d.ts +10 -3
  110. package/dist-types/components/text.d.ts.map +1 -1
  111. package/dist-types/core/dom-to-image.d.ts.map +1 -1
  112. package/dist-types/core/logger.d.ts.map +1 -1
  113. package/dist-types/core/memoize.d.ts.map +1 -1
  114. package/dist-types/decorator/decorator-registry.d.ts +14 -1
  115. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  116. package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
  117. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts +0 -4
  118. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
  119. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts +0 -3
  120. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts.map +1 -1
  121. package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
  122. package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
  123. package/dist-types/diagnostics/contract-inspector.d.ts +110 -0
  124. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
  125. package/dist-types/diagnostics/data-lag-tracker.d.ts +50 -0
  126. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
  127. package/dist-types/diagnostics/inspector.d.ts +192 -5
  128. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  129. package/dist-types/diagnostics/load-tracker.d.ts +82 -0
  130. package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
  131. package/dist-types/diagnostics/loading-overlay.d.ts +58 -0
  132. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
  133. package/dist-types/diagnostics/metrics.d.ts +10 -0
  134. package/dist-types/diagnostics/metrics.d.ts.map +1 -1
  135. package/dist-types/effect/shadow.d.ts +3 -1
  136. package/dist-types/effect/shadow.d.ts.map +1 -1
  137. package/dist-types/event-map/index.d.ts +1 -0
  138. package/dist-types/event-map/index.d.ts.map +1 -1
  139. package/dist-types/event-map/transition-handler.d.ts +2 -0
  140. package/dist-types/event-map/transition-handler.d.ts.map +1 -0
  141. package/dist-types/flow/auto-route.d.ts +36 -0
  142. package/dist-types/flow/auto-route.d.ts.map +1 -0
  143. package/dist-types/flow/face-anchors.d.ts +26 -0
  144. package/dist-types/flow/face-anchors.d.ts.map +1 -0
  145. package/dist-types/flow/flow-engine.d.ts +122 -0
  146. package/dist-types/flow/flow-engine.d.ts.map +1 -0
  147. package/dist-types/flow/flow-graph-coordinator.d.ts +80 -0
  148. package/dist-types/flow/flow-graph-coordinator.d.ts.map +1 -0
  149. package/dist-types/flow/flow-graph-validator.d.ts +33 -0
  150. package/dist-types/flow/flow-graph-validator.d.ts.map +1 -0
  151. package/dist-types/flow/flow-graph.d.ts +76 -0
  152. package/dist-types/flow/flow-graph.d.ts.map +1 -0
  153. package/dist-types/flow/flow-introspection.d.ts +36 -0
  154. package/dist-types/flow/flow-introspection.d.ts.map +1 -0
  155. package/dist-types/flow/flow-node.d.ts +69 -0
  156. package/dist-types/flow/flow-node.d.ts.map +1 -0
  157. package/dist-types/flow/flow-orientation-coordinator.d.ts +13 -0
  158. package/dist-types/flow/flow-orientation-coordinator.d.ts.map +1 -0
  159. package/dist-types/flow/flow-orientation.d.ts +42 -0
  160. package/dist-types/flow/flow-orientation.d.ts.map +1 -0
  161. package/dist-types/flow/flow-trace.d.ts +5 -0
  162. package/dist-types/flow/flow-trace.d.ts.map +1 -0
  163. package/dist-types/flow/index.d.ts +16 -0
  164. package/dist-types/flow/index.d.ts.map +1 -0
  165. package/dist-types/flow/segment-topology.d.ts +225 -0
  166. package/dist-types/flow/segment-topology.d.ts.map +1 -0
  167. package/dist-types/flow/station-host-inference.d.ts +23 -0
  168. package/dist-types/flow/station-host-inference.d.ts.map +1 -0
  169. package/dist-types/interfaces/event-handler.d.ts +40 -0
  170. package/dist-types/interfaces/event-handler.d.ts.map +1 -0
  171. package/dist-types/interfaces/index.d.ts +2 -0
  172. package/dist-types/interfaces/index.d.ts.map +1 -1
  173. package/dist-types/interfaces/layout.d.ts +35 -1
  174. package/dist-types/interfaces/layout.d.ts.map +1 -1
  175. package/dist-types/interfaces/providers.d.ts +27 -3
  176. package/dist-types/interfaces/providers.d.ts.map +1 -1
  177. package/dist-types/interfaces/real-object.d.ts +8 -1
  178. package/dist-types/interfaces/real-object.d.ts.map +1 -1
  179. package/dist-types/interfaces/rendering.d.ts +86 -14
  180. package/dist-types/interfaces/rendering.d.ts.map +1 -1
  181. package/dist-types/interfaces/types.d.ts +20 -1
  182. package/dist-types/interfaces/types.d.ts.map +1 -1
  183. package/dist-types/items/arrangement/centering-queue-strategy.d.ts +10 -0
  184. package/dist-types/items/arrangement/centering-queue-strategy.d.ts.map +1 -0
  185. package/dist-types/items/arrangement/index.d.ts +2 -0
  186. package/dist-types/items/arrangement/index.d.ts.map +1 -0
  187. package/dist-types/items/capacity-mixin.d.ts +303 -0
  188. package/dist-types/items/capacity-mixin.d.ts.map +1 -0
  189. package/dist-types/items/capacity.d.ts +53 -0
  190. package/dist-types/items/capacity.d.ts.map +1 -0
  191. package/dist-types/items/index.d.ts +7 -0
  192. package/dist-types/items/index.d.ts.map +1 -0
  193. package/dist-types/items/items-data-binding.d.ts +103 -0
  194. package/dist-types/items/items-data-binding.d.ts.map +1 -0
  195. package/dist-types/items/slot-record.d.ts +23 -0
  196. package/dist-types/items/slot-record.d.ts.map +1 -0
  197. package/dist-types/items/stacking/index.d.ts +3 -0
  198. package/dist-types/items/stacking/index.d.ts.map +1 -0
  199. package/dist-types/items/stacking/stack-layout.d.ts +33 -0
  200. package/dist-types/items/stacking/stack-layout.d.ts.map +1 -0
  201. package/dist-types/items/stacking/stacking-strategy.d.ts +114 -0
  202. package/dist-types/items/stacking/stacking-strategy.d.ts.map +1 -0
  203. package/dist-types/layer/action/popup.d.ts +13 -0
  204. package/dist-types/layer/action/popup.d.ts.map +1 -1
  205. package/dist-types/layer/add-layer.d.ts +8 -0
  206. package/dist-types/layer/add-layer.d.ts.map +1 -1
  207. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  208. package/dist-types/layer/index.d.ts +1 -0
  209. package/dist-types/layer/index.d.ts.map +1 -1
  210. package/dist-types/layer/layer.d.ts +2 -0
  211. package/dist-types/layer/layer.d.ts.map +1 -1
  212. package/dist-types/layer/model-layer.d.ts +81 -7
  213. package/dist-types/layer/model-layer.d.ts.map +1 -1
  214. package/dist-types/layer/modeler/index.d.ts +1 -0
  215. package/dist-types/layer/modeler/index.d.ts.map +1 -1
  216. package/dist-types/layer/modeler/move-handle-icon.d.ts +2 -0
  217. package/dist-types/layer/modeler/move-handle-icon.d.ts.map +1 -0
  218. package/dist-types/layer/modeler/move-handle-modeler.d.ts +18 -0
  219. package/dist-types/layer/modeler/move-handle-modeler.d.ts.map +1 -0
  220. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  221. package/dist-types/layer/modeler/rotator.d.ts.map +1 -1
  222. package/dist-types/layer/modeling-layer.d.ts +19 -0
  223. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  224. package/dist-types/layer/selection/selected-finder.d.ts +1 -1
  225. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  226. package/dist-types/layer/selection-layer.d.ts +7 -0
  227. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  228. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  229. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  230. package/dist-types/layout/absolute.d.ts +2 -2
  231. package/dist-types/layout/card.d.ts +2 -2
  232. package/dist-types/layout/linear-horizontal.d.ts +2 -2
  233. package/dist-types/layout/linear-vertical.d.ts +2 -2
  234. package/dist-types/layout/table.d.ts +3 -3
  235. package/dist-types/license/license.d.ts.map +1 -1
  236. package/dist-types/math/component-pose.d.ts +51 -0
  237. package/dist-types/math/component-pose.d.ts.map +1 -0
  238. package/dist-types/math/index.d.ts +3 -0
  239. package/dist-types/math/index.d.ts.map +1 -0
  240. package/dist-types/math/pose6dof.d.ts +93 -0
  241. package/dist-types/math/pose6dof.d.ts.map +1 -0
  242. package/dist-types/navigation/index.d.ts +7 -0
  243. package/dist-types/navigation/index.d.ts.map +1 -0
  244. package/dist-types/navigation/nav-graph.d.ts +55 -0
  245. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  246. package/dist-types/navigation/path-planner.d.ts +29 -0
  247. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  248. package/dist-types/navigation/reservation-table.d.ts +103 -0
  249. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  250. package/dist-types/navigation/types.d.ts +145 -0
  251. package/dist-types/navigation/types.d.ts.map +1 -0
  252. package/dist-types/placement/index.d.ts +3 -0
  253. package/dist-types/placement/index.d.ts.map +1 -0
  254. package/dist-types/placement/placement.d.ts +53 -0
  255. package/dist-types/placement/placement.d.ts.map +1 -0
  256. package/dist-types/search/index.d.ts +3 -0
  257. package/dist-types/search/index.d.ts.map +1 -0
  258. package/dist-types/search/scene-search-engine.d.ts +64 -0
  259. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  260. package/dist-types/search/search-overlay.d.ts +94 -0
  261. package/dist-types/search/search-overlay.d.ts.map +1 -0
  262. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  263. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  264. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  265. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  266. package/dist-types/things-scene/api/ids.d.ts +4 -1
  267. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  268. package/dist-types/things-scene/api/index.d.ts +1 -1
  269. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  270. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  271. package/dist-types/things-scene/api/zorder.d.ts.map +1 -1
  272. package/dist-types/things-scene/application-context.d.ts +62 -0
  273. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  274. package/dist-types/things-scene/create.d.ts +43 -3
  275. package/dist-types/things-scene/create.d.ts.map +1 -1
  276. package/dist-types/things-scene/index.d.ts +29 -0
  277. package/dist-types/things-scene/index.d.ts.map +1 -1
  278. package/dist-types/things-scene/scene.d.ts +120 -2
  279. package/dist-types/things-scene/scene.d.ts.map +1 -1
  280. package/dist-types/threed/arrow-3d.d.ts +13 -4
  281. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  282. package/dist-types/threed/environments/base-environment.d.ts +17 -0
  283. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  284. package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
  285. package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
  286. package/dist-types/threed/environments/factory-environment.d.ts +3 -3
  287. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
  288. package/dist-types/threed/environments/home-environment.d.ts +3 -3
  289. package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
  290. package/dist-types/threed/environments/office-environment.d.ts +3 -3
  291. package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
  292. package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
  293. package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
  294. package/dist-types/threed/environments/studio-environment.d.ts +2 -3
  295. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
  296. package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
  297. package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
  298. package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
  299. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
  300. package/dist-types/threed/factories/backdrop.d.ts +541 -0
  301. package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
  302. package/dist-types/threed/factories/banner.d.ts +16 -4
  303. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  304. package/dist-types/threed/factories/camera.d.ts +12 -3
  305. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  306. package/dist-types/threed/factories/cube.d.ts +11 -3
  307. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  308. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  309. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  310. package/dist-types/threed/factories/decal.d.ts +516 -0
  311. package/dist-types/threed/factories/decal.d.ts.map +1 -0
  312. package/dist-types/threed/factories/floor-plate.d.ts +11 -0
  313. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
  314. package/dist-types/threed/factories/gltf-object.d.ts +270 -38
  315. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  316. package/dist-types/threed/factories/group.d.ts +2 -0
  317. package/dist-types/threed/factories/group.d.ts.map +1 -0
  318. package/dist-types/threed/factories/light.d.ts +1 -0
  319. package/dist-types/threed/factories/light.d.ts.map +1 -1
  320. package/dist-types/threed/factories/line.d.ts +10 -0
  321. package/dist-types/threed/factories/line.d.ts.map +1 -0
  322. package/dist-types/threed/factories/ortholine.d.ts +10 -0
  323. package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
  324. package/dist-types/threed/factories/polygon.d.ts +19 -0
  325. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  326. package/dist-types/threed/factories/polyline.d.ts +10 -0
  327. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  328. package/dist-types/threed/factories/rect.d.ts.map +1 -1
  329. package/dist-types/threed/factories/sphere.d.ts +6 -0
  330. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  331. package/dist-types/threed/factories/sprite.d.ts +11 -3
  332. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  333. package/dist-types/threed/factories/triangle.d.ts.map +1 -1
  334. package/dist-types/threed/factories/wall.d.ts +11 -3
  335. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  336. package/dist-types/threed/floor/floor.d.ts.map +1 -1
  337. package/dist-types/threed/handle-3d.d.ts +21 -0
  338. package/dist-types/threed/handle-3d.d.ts.map +1 -0
  339. package/dist-types/threed/html/elements.d.ts.map +1 -1
  340. package/dist-types/threed/index.d.ts +24 -0
  341. package/dist-types/threed/index.d.ts.map +1 -1
  342. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  343. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  344. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +66 -32
  345. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -1
  346. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  347. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  348. package/dist-types/threed/managers/controls-manager.d.ts +25 -4
  349. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  350. package/dist-types/threed/managers/event-manager3d.d.ts +14 -0
  351. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  352. package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
  353. package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
  354. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +54 -1
  355. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  356. package/dist-types/threed/managers/index.d.ts +3 -1
  357. package/dist-types/threed/managers/index.d.ts.map +1 -1
  358. package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
  359. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  360. package/dist-types/threed/managers/light-manager.d.ts +15 -0
  361. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  362. package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
  363. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  364. package/dist-types/threed/managers/scene-manager.d.ts +12 -2
  365. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  366. package/dist-types/threed/managers/types.d.ts +4 -2
  367. package/dist-types/threed/managers/types.d.ts.map +1 -1
  368. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +154 -0
  369. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  370. package/dist-types/threed/material-3d.d.ts +5 -2
  371. package/dist-types/threed/material-3d.d.ts.map +1 -1
  372. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  373. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  374. package/dist-types/threed/real-object-dom-element.d.ts +2 -0
  375. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  376. package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
  377. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  378. package/dist-types/threed/real-object-external-model.d.ts +24 -0
  379. package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
  380. package/dist-types/threed/real-object-extrude.d.ts +16 -1
  381. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  382. package/dist-types/threed/real-object-gltf.d.ts +21 -11
  383. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  384. package/dist-types/threed/real-object-group.d.ts +2 -0
  385. package/dist-types/threed/real-object-group.d.ts.map +1 -1
  386. package/dist-types/threed/real-object-line.d.ts +83 -0
  387. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  388. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  389. package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
  390. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  391. package/dist-types/threed/real-object-service.d.ts +14 -0
  392. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  393. package/dist-types/threed/real-object-sprite.d.ts +7 -1
  394. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  395. package/dist-types/threed/real-object-text.d.ts +5 -0
  396. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  397. package/dist-types/threed/real-object.d.ts +261 -7
  398. package/dist-types/threed/real-object.d.ts.map +1 -1
  399. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  400. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  401. package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
  402. package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
  403. package/dist-types/threed/texture/fillstyle-texture.d.ts +57 -0
  404. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  405. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  406. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  407. package/dist-types/threed/three-capability.d.ts +131 -15
  408. package/dist-types/threed/three-capability.d.ts.map +1 -1
  409. package/dist-types/threed/three-container.d.ts +0 -1
  410. package/dist-types/threed/three-container.d.ts.map +1 -1
  411. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  412. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  413. package/dist-types/threed/utils/anchor.d.ts +33 -0
  414. package/dist-types/threed/utils/anchor.d.ts.map +1 -0
  415. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  416. package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
  417. package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
  418. package/dist-types/threed/utils/tether.d.ts +46 -0
  419. package/dist-types/threed/utils/tether.d.ts.map +1 -0
  420. package/dist-types/threed/z-priority.d.ts +27 -0
  421. package/dist-types/threed/z-priority.d.ts.map +1 -0
  422. package/dist-types/tracker/tracker.d.ts +57 -0
  423. package/dist-types/tracker/tracker.d.ts.map +1 -0
  424. package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
  425. package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
  426. package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
  427. package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
  428. package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
  429. package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
  430. package/dist-types/transfer/index.d.ts +24 -0
  431. package/dist-types/transfer/index.d.ts.map +1 -0
  432. package/dist-types/transfer/pickup-helpers.d.ts +75 -0
  433. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  434. package/dist-types/transfer/simulation-clock.d.ts +45 -0
  435. package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
  436. package/dist-types/transfer/tracer.d.ts +35 -0
  437. package/dist-types/transfer/tracer.d.ts.map +1 -0
  438. package/dist-types/transfer/transfer-helpers.d.ts +18 -0
  439. package/dist-types/transfer/transfer-helpers.d.ts.map +1 -0
  440. package/dist-types/transfer/transfer.d.ts +257 -0
  441. package/dist-types/transfer/transfer.d.ts.map +1 -0
  442. package/dist-types/transfer/transferable-mixin.d.ts +275 -0
  443. package/dist-types/transfer/transferable-mixin.d.ts.map +1 -0
  444. package/dist-types/transfer/types.d.ts +462 -0
  445. package/dist-types/transfer/types.d.ts.map +1 -0
  446. package/dist-types/transition/transition-effect.d.ts +117 -0
  447. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  448. package/dist-types/types/bounding.d.ts +1 -1
  449. package/dist-types/types/bounding.d.ts.map +1 -1
  450. package/dist-types/types/capability.d.ts +59 -0
  451. package/dist-types/types/capability.d.ts.map +1 -0
  452. package/dist-types/types/component.d.ts +6 -177
  453. package/dist-types/types/component.d.ts.map +1 -1
  454. package/dist-types/types/event.d.ts +57 -0
  455. package/dist-types/types/event.d.ts.map +1 -1
  456. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  457. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  458. package/dist-types/types/polygon-path.d.ts +153 -0
  459. package/dist-types/types/polygon-path.d.ts.map +1 -0
  460. package/package.json +13 -2
  461. package/things-scene-min.js +12 -13
  462. package/things-scene-min.js.map +1 -1
  463. package/things-scene-transfer.mjs +7 -0
  464. package/things-scene.mjs +8 -9
  465. package/things-scene.mjs.map +1 -1
@@ -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';
@@ -9,5 +9,7 @@ export { GizmoOperationManager, type GizmoOperationHost } from './gizmo-operatio
9
9
  export { InteractionManager, type InteractionDelegate } from './interaction-manager.js';
10
10
  export { PlacementManager, type PlacementDelegate } from './placement-manager.js';
11
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';
12
14
  export type { CameraConfig, RendererConfig, LightingConfig } from './types.js';
13
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,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAA;AACzF,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,35 +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;
28
58
  private _scene?;
29
59
  private _camera?;
60
+ /**
61
+ * 경량 composer를 해제하고 direct render 모드로 복귀한다.
62
+ */
63
+ teardownLightComposer(): void;
30
64
  /**
31
65
  * 포스트프로세싱 없이 직접 렌더링할 때 사용할 scene/camera를 설정한다.
32
66
  */
33
67
  setDirectRenderTargets(scene: THREE.Scene, camera: THREE.Camera): void;
34
68
  render(): void;
69
+ private renderHUD;
35
70
  renderCSS3D(camera: THREE.Camera): void;
71
+ get hudCSS3DRenderer(): CSS3DRenderer | undefined;
36
72
  getSize(): {
37
73
  width: number;
38
74
  height: number;
39
75
  };
40
76
  destroy(): void;
77
+ disposeHUD(): void;
41
78
  disposeCSS3DScene(): void;
42
79
  }
43
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;IA8C1E,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;IAa3C;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;IAM3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAc;IAE9B;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;IAK/D,MAAM;IAmBN,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,5 +1,11 @@
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?;
@@ -16,8 +22,12 @@ export declare class SceneManager {
16
22
  */
17
23
  private _applyEnvironment;
18
24
  /**
19
- * 3D 배경(sky)을 설정한다.
20
- * @param sky - 프리셋 이름('studio'|'warehouse'|'factory'|'office') | 'color' | '' (none)
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)
21
31
  * @param skyColor - sky='color'일 때 사용할 색상
22
32
  */
23
33
  setSky(sky?: string, skyColor?: string): void;
@@ -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;AAC9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAmB1D,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;IAK9C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAetC,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"}
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;
@@ -12,6 +11,8 @@ export interface RendererConfig {
12
11
  antialias: boolean;
13
12
  exposure: number;
14
13
  postprocessing?: boolean;
14
+ shadowMap?: boolean;
15
+ logarithmicDepthBuffer?: boolean;
15
16
  }
16
17
  export interface LightingConfig {
17
18
  hemisphere: {
@@ -22,7 +23,8 @@ export interface LightingConfig {
22
23
  directional?: {
23
24
  color: number;
24
25
  intensity: number;
25
- attachToCamera: boolean;
26
+ attachToCamera?: boolean;
27
+ position?: [number, number, number];
26
28
  castShadow?: boolean;
27
29
  shadowMapSize?: number;
28
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;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;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,154 @@
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 _isPending;
27
+ private _pendingHit?;
28
+ private _pendingHandleType?;
29
+ private _pendingScreenStart;
30
+ private _dragPlane;
31
+ private _dragOffset;
32
+ private _raycaster;
33
+ private _intersection;
34
+ get isDragging(): boolean;
35
+ get isAttached(): boolean;
36
+ /** 핸들 표시/숨김 (기즈모 드래그 중에는 숨김) */
37
+ setVisible(visible: boolean): void;
38
+ /**
39
+ * 선택된 컴포넌트들에 vertex 핸들을 표시한다.
40
+ */
41
+ attachMultiple(components: Component[], scene: THREE.Scene, commander?: any): void;
42
+ /** 하위 호환: 단일 컴포넌트 attach */
43
+ attach(component: Component, scene: THREE.Scene, commander?: any): void;
44
+ /**
45
+ * 핸들을 제거한다.
46
+ */
47
+ detach(): void;
48
+ /**
49
+ * 컴포넌트에 대한 핸들을 생성한다.
50
+ */
51
+ private _buildComponentHandles;
52
+ /**
53
+ * 특정 컴포넌트의 핸들만 재생성한다.
54
+ */
55
+ private _rebuildComponentHandles;
56
+ private _createVertexHandle;
57
+ private _createMidpointHandle;
58
+ private _createCornerHandle;
59
+ private _createBulgeHandle;
60
+ /**
61
+ * 3D 핸들 위치 → 2D path 포인트 역변환
62
+ */
63
+ private _handlePosToPoint;
64
+ /**
65
+ * mutatePath를 commander undo 지원과 함께 실행
66
+ */
67
+ private _execMutatePath;
68
+ /** 모든 핸들을 flat 배열로 반환 */
69
+ private _getAllHandles;
70
+ /** 컴포넌트에 속하는 ComponentHandles를 찾는다 */
71
+ private _findComponentHandles;
72
+ /**
73
+ * 마우스 다운: 핸들 raycast hit 감지 → **pending 상태 진입** (드래그 시작 X).
74
+ *
75
+ * 2D `ua-event-handler.ts` 와 동일 컨벤션: mousedown 만으로 path mutation 을 일으키지
76
+ * 않고, mousemove 가 DRAG_THRESHOLD_PX2 를 넘는 순간 dragstart 처리.
77
+ * 이전엔 midpoint 핸들 클릭만 해도 vertex 가 즉시 추가되었고, vertex 클릭만 해도
78
+ * mouseup 에서 no-op CommandChange 가 쌓였다 — 두 케이스 모두 2D 와 다른 거동.
79
+ *
80
+ * vertex/midpoint 우선 raycast — corner/bulge 는 vertex 가 hit 안 될 때만 검사.
81
+ * 같은 ray 위에 vertex 와 corner 가 겹칠 때 vertex 가 우선되도록.
82
+ *
83
+ * @returns true이면 이벤트를 소비
84
+ */
85
+ onPointerDown(ndc: THREE.Vector2, camera: THREE.Camera, event: MouseEvent): boolean;
86
+ /**
87
+ * pending 상태에서 임계값 통과 시점에 호출 — kind 별 dragstart 처리.
88
+ * `_startMidpointDrag` 는 vertex 를 splice 하므로 이 시점까지 path mutation 이 미뤄진다.
89
+ */
90
+ private _beginDrag;
91
+ /**
92
+ * corner radius 핸들 드래그 시작 — 보드 평면 ray-cast 로 드래그 좌표를 받아
93
+ * cornerRadiusFromDrag 으로 새 radius 계산.
94
+ */
95
+ private _startCornerDrag;
96
+ /**
97
+ * bulge 핸들 드래그 시작.
98
+ */
99
+ private _startBulgeDrag;
100
+ /**
101
+ * midpoint 핸들 드래그 시작: 세그먼트 중간에 새 vertex를 삽입
102
+ */
103
+ private _startMidpointDrag;
104
+ /**
105
+ * Alt+드래그 끝점: 끝에 새 vertex를 추가하고 드래그 시작
106
+ */
107
+ private _startEndpointExtend;
108
+ /**
109
+ * 카메라 방향 기반 드래그 평면 설정
110
+ */
111
+ private _setupDragPlane;
112
+ /**
113
+ * 마우스 이동: pending 인 경우 임계값 검사 후 dragstart, 그 후 dragmove 처리.
114
+ *
115
+ * 첫 mousemove 가 임계값을 넘는 순간 `_beginDrag` 호출 — 이 함수가 _setupDragPlane 까지
116
+ * 처리하므로 같은 mousemove 내에서 fallthrough 로 dragmove 까지 이어지면 된다.
117
+ */
118
+ onPointerMove(ndc: THREE.Vector2, camera: THREE.Camera, event: MouseEvent): boolean;
119
+ /** corner 드래그 라이브 갱신 — 보드 좌표 변환 후 cornerRadiusFromDrag */
120
+ private _dragCornerLive;
121
+ /** bulge 드래그 라이브 갱신 */
122
+ private _dragBulgeLive;
123
+ /**
124
+ * 현재 활성 컴포넌트의 vertex 핸들 위치로부터 Line2 geometry를 실시간 업데이트한다.
125
+ */
126
+ private _updateLinePreview;
127
+ /**
128
+ * 마우스 업: 드래그 종료 → component.mutatePath() 호출.
129
+ *
130
+ * pending 만 있고 드래그가 시작 안 된 경우 = 클릭만. mutation 없이 정리만 한다
131
+ * (2D 와 동일 — 클릭은 path 를 더럽히지 않음). dblclick 은 별개 이벤트라 정리해도 무방.
132
+ */
133
+ onPointerUp(): boolean;
134
+ /**
135
+ * 더블클릭:
136
+ * - vertex 핸들 → vertex 삭제 (기존)
137
+ * - corner 핸들 → radius 제거 (직각 복귀)
138
+ * - bulge 핸들 → bulge 제거 (직선 복귀)
139
+ *
140
+ * vertex 우선 raycast — corner/bulge 는 vertex 가 hit 안 될 때만 검사.
141
+ * onPointerDown 과 동일 컨벤션 (vertex 위 클릭이 corner 로 떨어지지 않도록).
142
+ */
143
+ onDblClick(ndc: THREE.Vector2, camera: THREE.Camera): boolean;
144
+ /**
145
+ * 핸들 위치를 현재 path 데이터에서 갱신한다.
146
+ */
147
+ syncHandles(): void;
148
+ /**
149
+ * 카메라 거리에 따라 핸들 크기를 조절하여 화면상 일정한 크기를 유지한다.
150
+ */
151
+ updateHandleScales(camera: THREE.Camera): void;
152
+ destroy(): void;
153
+ }
154
+ //# 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":"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"}
@@ -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으로 바닥에 눕힘.
@@ -18,6 +19,7 @@ export declare class RealObjectDomElement extends RealObject<CSS3DObject> {
18
19
  */
19
20
  syncFromObject3D(): void;
20
21
  build(): void;
22
+ updateMaterial3d(): void;
21
23
  updateDimension(): void;
22
24
  updateAlpha(): void;
23
25
  }
@@ -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;IAiChB,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;AAgB7C,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;IA0BL,gBAAgB;IAUhB,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;IAyBL,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;IAchB,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"}