@hatiolab/things-scene 10.0.0-beta.93 → 10.0.0-beta.95

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 (42) hide show
  1. package/dist-types/components/component-geometry.d.ts.map +1 -1
  2. package/dist-types/components/mutater/path.d.ts.map +1 -1
  3. package/dist-types/components/outline/path-outline.d.ts.map +1 -1
  4. package/dist-types/components/polygon.d.ts +2 -0
  5. package/dist-types/components/polygon.d.ts.map +1 -1
  6. package/dist-types/components/polyline.d.ts.map +1 -1
  7. package/dist-types/components/shape.d.ts.map +1 -1
  8. package/dist-types/layer/add-layer.d.ts +8 -0
  9. package/dist-types/layer/add-layer.d.ts.map +1 -1
  10. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  11. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  12. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  13. package/dist-types/things-scene/api/bulk-create.d.ts +102 -0
  14. package/dist-types/things-scene/api/bulk-create.d.ts.map +1 -0
  15. package/dist-types/things-scene/api/ids.d.ts +4 -1
  16. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  17. package/dist-types/things-scene/api/index.d.ts +2 -1
  18. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  19. package/dist-types/things-scene/index.d.ts +4 -0
  20. package/dist-types/things-scene/index.d.ts.map +1 -1
  21. package/dist-types/things-scene/scene.d.ts +18 -1
  22. package/dist-types/things-scene/scene.d.ts.map +1 -1
  23. package/dist-types/threed/factories/backdrop.d.ts.map +1 -1
  24. package/dist-types/threed/factories/polygon.d.ts +19 -0
  25. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  26. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +50 -4
  27. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -1
  28. package/dist-types/threed/real-object-extrude.d.ts +10 -1
  29. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  30. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -1
  31. package/dist-types/transfer/index.d.ts +2 -0
  32. package/dist-types/transfer/index.d.ts.map +1 -1
  33. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  34. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  35. package/dist-types/types/polygon-path.d.ts +153 -0
  36. package/dist-types/types/polygon-path.d.ts.map +1 -0
  37. package/package.json +1 -1
  38. package/things-scene-min.js +11 -11
  39. package/things-scene-min.js.map +1 -1
  40. package/things-scene-transfer.mjs +2 -2
  41. package/things-scene.mjs +3 -3
  42. package/things-scene.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"component-geometry.d.ts","sourceRoot":"","sources":["../../src/components/component-geometry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAoB,MAAM,wBAAwB,CAAA;AAItE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,WAEvD;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAYrF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,QAqB/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,QAa7C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;;;;;EAiC/F;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,UAOxE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAElD;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;;;;;EAyBnC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAsBhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;;;EAOnC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAiB/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG;;;;EAKrC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,QAOpD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;;;;EAInC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAOhD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG;;;;EAKtC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAKtD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,WAGjC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,QAE5C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,OAErC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,OAExC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,OAEpC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,OAEtC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,OAEtC"}
1
+ {"version":3,"file":"component-geometry.d.ts","sourceRoot":"","sources":["../../src/components/component-geometry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAoB,MAAM,wBAAwB,CAAA;AAItE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,WAEvD;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAcrF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,QAsB/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,QAa7C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;;;;;EAiC/F;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,UAOxE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAElD;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;;;;;EAyBnC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAuBhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;;;EAOnC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAiB/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG;;;;EAKrC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,QAOpD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;;;;EAInC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAOhD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG;;;;EAKtC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAKtD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,WAGjC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,QAE5C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,OAErC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,OAExC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,OAEpC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,OAEtC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,OAEtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/components/mutater/path.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QA0D5F"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/components/mutater/path.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAyD5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-outline.d.ts","sourceRoot":"","sources":["../../../src/components/outline/path-outline.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAoDnE"}
1
+ {"version":3,"file":"path-outline.d.ts","sourceRoot":"","sources":["../../../src/components/outline/path-outline.ts"],"names":[],"mappings":"AAmDA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OA4CnE"}
@@ -3,6 +3,8 @@ export default class Polygon extends Shape {
3
3
  is3dish(): boolean;
4
4
  get mutable(): boolean;
5
5
  get pathExtendable(): boolean;
6
+ /** PathHandler 가 corner radius 핸들 ◯ 을 그릴지 여부 (Phase L.1c-2) */
7
+ get cornerEditable(): boolean;
6
8
  get path(): any;
7
9
  set path(path: any);
8
10
  contains(x: any, y: any): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../src/components/polygon.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,YAAY,CAAA;AAqC9B,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK;IACxC,OAAO;IAIP,IAAI,OAAO,YAEV;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,IAAI,QAEP;IAED,IAAI,IAAI,CAAC,IAAI,KAAA,EAEZ;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAkBb,IAAI,QAAQ,QAaX;IAED,IAAI,MAAM;;;;;;;;;;;;;;;MAET;CACF"}
1
+ {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../src/components/polygon.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,YAAY,CAAA;AAuC9B,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK;IACxC,OAAO;IAIP,IAAI,OAAO,YAEV;IAED,IAAI,cAAc,YAEjB;IAED,+DAA+D;IAC/D,IAAI,cAAc,YAEjB;IAED,IAAI,IAAI,QAEP;IAED,IAAI,IAAI,CAAC,IAAI,KAAA,EAEZ;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAkBb,IAAI,QAAQ,QAaX;IAED,IAAI,MAAM;;;;;;;;;;;;;;;MAET;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"polyline.d.ts","sourceRoot":"","sources":["../../src/components/polyline.ts"],"names":[],"mappings":"AAKA,OAAO,IAAI,MAAM,WAAW,CAAA;AAqC5B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,IAAI;IACxC,QAAQ,EAAE,GAAG,CAAA;IACb,MAAM,EAAE,GAAG,CAAA;IAEX,IAAI,cAAc,YAEjB;IAED,IAAI,IAAI,UASP;IAED,IAAI,IAAI,CAAC,IAAI,OAAA,EAiBZ;IAED,IAAI,QAAQ,IAAI,GAAG,CAgClB;IAED,IAAI,MAAM;;;;;;;;;;;;;;;MAET;CACF"}
1
+ {"version":3,"file":"polyline.d.ts","sourceRoot":"","sources":["../../src/components/polyline.ts"],"names":[],"mappings":"AAKA,OAAO,IAAI,MAAM,WAAW,CAAA;AAuC5B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,IAAI;IACxC,QAAQ,EAAE,GAAG,CAAA;IACb,MAAM,EAAE,GAAG,CAAA;IAEX,IAAI,cAAc,YAEjB;IAED,IAAI,IAAI,UASP;IAED,IAAI,IAAI,CAAC,IAAI,OAAA,EAiBZ;IAED,IAAI,QAAQ,IAAI,GAAG,CAgClB;IAED,IAAI,MAAM;;;;;;;;;;;;;;;MAET;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/components/shape.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS;IAC1C,IAAI,SAAS,CAAC,KAAK,KAAA,EAElB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,SAAS,CAAC,KAAK,KAAA,EAElB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,SAAS,CAAC,KAAK,KAAA,EAElB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,IAAI,CAAC,IAAI,KAAA,EAEZ;IAED,IAAI,IAAI,QAEP;IAED,IAAI,KAAK,CAAC,KAAK,KAAA,EAEd;IAED,IAAI,KAAK,QAER;IAED,UAAU,CAAC,OAAO,EAAE,kBAAkB;IAMtC,MAAM,CAAC,GAAG,EAAE,kBAAkB;CAuC/B"}
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/components/shape.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAQtC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS;IAC1C,IAAI,SAAS,CAAC,KAAK,KAAA,EAElB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,SAAS,CAAC,KAAK,KAAA,EAElB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,SAAS,CAAC,KAAK,KAAA,EAElB;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,IAAI,CAAC,IAAI,KAAA,EAEZ;IAED,IAAI,IAAI,QAEP;IAED,IAAI,KAAK,CAAC,KAAK,KAAA,EAEd;IAED,IAAI,KAAK,QAER;IAED,UAAU,CAAC,OAAO,EAAE,kBAAkB;IAMtC,MAAM,CAAC,GAAG,EAAE,kBAAkB;CA2D/B"}
@@ -4,6 +4,14 @@ export default class AddLayer extends Layer {
4
4
  before_mode: any;
5
5
  models: any;
6
6
  downpoint: any;
7
+ /** bulk-create mode flag — ondragend 에서 add 대신 'bulkareaselected' event 발행. */
8
+ bulkMode?: boolean;
9
+ /** bulk-create 시 사용자가 전달한 템플릿 model — bulkareaselected event payload 로 그대로 전달. */
10
+ template?: any;
11
+ /** bulk-create 시 addbox stroke 색. 기본은 검정 (= 일반 add 와 동일). */
12
+ boxStrokeStyle?: string;
13
+ /** ondragstart 가 실제 호출되었는지 — drag 미발생 시 ondragend (잔류 이벤트) 가 들어와도 무시. */
14
+ dragStarted?: boolean;
7
15
  ready(): Promise<void>;
8
16
  get pointerEvents(): string;
9
17
  render(ctx: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"add-layer.d.ts","sourceRoot":"","sources":["../../src/layer/add-layer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,GAAG,CAAA;IACX,WAAW,EAAE,GAAG,CAAA;IAChB,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,GAAG,CAAA;IAGhB,KAAK;IAWX,IAAI,aAAa,WAEhB;IAED,MAAM,CAAC,GAAG,KAAA;IAmBV,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAIb,IAAI,QAAQ;;;;;;;;;;;;;;;;;;MAoBX;IAED,mBAAmB,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,KAAA;IAYvC,UAAU,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA;IAWvB,SAAS;IAUT,SAAS,CAAC,CAAC,KAAA;IAQX,WAAW,CAAC,CAAC,KAAA;IASb,UAAU,CAAC,CAAC,KAAA;IAeZ,SAAS,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAiBjB,WAAW,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAWnB,SAAS,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;CAiBlB"}
1
+ {"version":3,"file":"add-layer.d.ts","sourceRoot":"","sources":["../../src/layer/add-layer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,GAAG,CAAA;IACX,WAAW,EAAE,GAAG,CAAA;IAChB,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,GAAG,CAAA;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAA;IAGf,KAAK;IAWX,IAAI,aAAa,WAEhB;IAED,MAAM,CAAC,GAAG,KAAA;IAmBV,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAIb,IAAI,QAAQ;;;;;;;;;;;;;;;;;;MAoBX;IAED,mBAAmB,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,KAAA;IAYvC,UAAU,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA;IAmBvB,SAAS;IAcT,SAAS,CAAC,CAAC,KAAA;IAQX,WAAW,CAAC,CAAC,KAAA;IAUb,UAAU,CAAC,CAAC,KAAA;IAeZ,SAAS,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA8CjB,WAAW,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAWnB,SAAS,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;CAuBlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-handler.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/path-handler.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,GAAG,CAAA;gBAEA,KAAK,EAAE,GAAG;IAItB,KAAK;IAML,IAAI,QAAQ,QAEX;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAoB/B,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAmBvC,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAmC9B,UAAU,CAAC,CAAC,KAAA;IAYZ,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAab,UAAU,CAAC,CAAC,KAAA;IA8IZ,SAAS,CAAC,CAAC,KAAA;CAsDZ"}
1
+ {"version":3,"file":"path-handler.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/path-handler.ts"],"names":[],"mappings":"AA0CA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,GAAG,CAAA;gBAEA,KAAK,EAAE,GAAG;IAItB,KAAK;IAML,IAAI,QAAQ,QAEX;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IA6D/B,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAmBvC,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAgG9B,UAAU,CAAC,CAAC,KAAA;IAiCZ,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAkBb,UAAU,CAAC,CAAC,KAAA;IAgLZ,SAAS,CAAC,CAAC,KAAA;CAsDZ"}
@@ -1,2 +1,27 @@
1
1
  export declare function startAddMode(this: any, models: any): void;
2
+ /** bulk-create 모드 결과 — 사용자가 영역 드래그 완료 시 area, ESC/취소 시 null. */
3
+ export interface BulkCreateResult {
4
+ area: {
5
+ left: number;
6
+ top: number;
7
+ width: number;
8
+ height: number;
9
+ };
10
+ template: any;
11
+ }
12
+ /**
13
+ * Bulk-create 모드 진입. AddLayer 가 캔버스 위에 드래그 박스 그림. 사용자가 영역을
14
+ * 선택하면 `{area, template}` 로 resolve, ESC/취소 시 null 로 resolve.
15
+ *
16
+ * 내부적으로 'bulkareaselected' / 'addstop' event 의 lifecycle 을 캡슐화 — consumer 가
17
+ * listener 등록/정리 boilerplate 없이 한 줄 `await` 로 처리.
18
+ *
19
+ * @param template 복사 원본 모델. bulkareaselected event payload 와 결과 객체에 그대로 전달.
20
+ * @param options.boxStrokeStyle addbox 의 stroke 색. 기본 'black' (일반 add 와 동일).
21
+ *
22
+ * this should be root-container.
23
+ */
24
+ export declare function startBulkCreateMode(this: any, template: any, options?: {
25
+ boxStrokeStyle?: string;
26
+ }): Promise<BulkCreateResult | null>;
2
27
  //# sourceMappingURL=add-start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD"}
1
+ {"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,QAAQ,EAAE,GAAG,CAAA;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAsBlC"}
@@ -0,0 +1,102 @@
1
+ export type Pattern = 'grid' | 'line-h' | 'line-v';
2
+ export interface Area {
3
+ left: number;
4
+ top: number;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export interface BulkCreateOptions {
9
+ /** 복제할 원본 컴포넌트 state. id, left, top 제외하고 모두 상속. */
10
+ template: Record<string, any>;
11
+ /** 타겟 영역 (보드 좌표). */
12
+ area: Area;
13
+ /** 분포 패턴. */
14
+ pattern: Pattern;
15
+ /**
16
+ * 총 개수. grid 패턴에선 rows × cols 로 분해.
17
+ * rows/cols 가 명시되면 그것 사용, 미명시 시 area 비율과 count 로 자동 결정.
18
+ */
19
+ count: number;
20
+ /** grid pattern 용 — 행 수. 미지정 시 area 비율 + count 로 자동. */
21
+ rows?: number;
22
+ /** grid pattern 용 — 열 수. 미지정 시 area 비율 + count 로 자동. */
23
+ cols?: number;
24
+ /**
25
+ * ID 패턴. placeholder:
26
+ * `{i}` — 일련번호 (0-based + idStart)
27
+ * `{r}` — 행 index (grid 만, 0-based + idStart)
28
+ * `{c}` — 열 index (grid 만, 0-based + idStart)
29
+ * 예: "PORT_{i}", "P_{r}_{c}", "CELL{r}{c}"
30
+ */
31
+ idPattern: string;
32
+ /** ID 시작 번호. default 1. */
33
+ idStart?: number;
34
+ /** ID 숫자 자릿수 (zero-pad). 0 = 미적용. default 0. */
35
+ idPadding?: number;
36
+ /**
37
+ * 컴포넌트의 크기를 사용할지 (= template.width/height 그대로) 또는 cell 에
38
+ * 맞춰 자동 조정할지. default 'template' (원본 크기 유지).
39
+ */
40
+ sizeMode?: 'template' | 'fit-cell';
41
+ }
42
+ export interface GeneratedModel {
43
+ type?: string;
44
+ id: string;
45
+ left: number;
46
+ top: number;
47
+ width: number;
48
+ height: number;
49
+ [key: string]: any;
50
+ }
51
+ /**
52
+ * 타겟 영역과 총 count 로 grid 의 (rows, cols) 자동 결정.
53
+ * area 의 종횡비를 가능한 한 보존.
54
+ */
55
+ export declare function deriveGridShape(count: number, area: Area, rows?: number, cols?: number): {
56
+ rows: number;
57
+ cols: number;
58
+ };
59
+ /**
60
+ * 메인 헬퍼 — 옵션을 받아 새 컴포넌트 model 배열 반환.
61
+ *
62
+ * **주의**: 반환된 model 은 `scene.add(models)` 로 추가하면 된다. ID 충돌 사전
63
+ * 검사는 호출 측 책임 — `findIdConflicts` 와 결합 사용.
64
+ */
65
+ export declare function generateBulkComponents(opts: BulkCreateOptions): GeneratedModel[];
66
+ /**
67
+ * 생성될 model 의 id 중 기존 scene 의 id 와 충돌하는 것 검출.
68
+ * @returns 충돌하는 id 배열 (없으면 빈 배열).
69
+ */
70
+ export declare function findIdConflicts(models: GeneratedModel[], existingIds: Iterable<string>): string[];
71
+ /**
72
+ * 템플릿의 id 문자열로부터 다음 컴포넌트들의 ID 패턴을 자동 추론.
73
+ *
74
+ * 규칙:
75
+ * - 끝에 숫자 있음: `"PORT_05"` → `{ pattern: "PORT_{i}", start: 6, padding: 2 }`
76
+ * - 끝에 숫자 없음: `"abc"` → `{ pattern: "abc_{i}", start: 1, padding: 0 }`
77
+ * - 빈 id: `{ pattern: "{i}", start: 1, padding: 0 }`
78
+ *
79
+ * padding 은 *leading zero* 가 있을 때만 적용:
80
+ * - "05" → padding 2 (= "01", "02"... 형식 유지)
81
+ * - "5" → padding 0 (= "1", "2"... 형식)
82
+ */
83
+ export declare function inferIdPattern(id: string | undefined | null): {
84
+ pattern: string;
85
+ start: number;
86
+ padding: number;
87
+ };
88
+ /**
89
+ * 패턴이 매칭하는 기존 ID 들 중 *최대 번호 + 1* 반환 — 반복 bulk-create 시
90
+ * 시작 번호 자동 advance 용.
91
+ *
92
+ * 예:
93
+ * pattern = "PORT_{i}", existingIds = ["PORT_05", "PORT_12", "Other_1"]
94
+ * → 13 (= 12 + 1)
95
+ *
96
+ * 매칭 안 되면 fallbackStart 반환 (기본 inferIdPattern 의 start).
97
+ *
98
+ * NOTE: 현재 `{i}` placeholder 만 인식. `{r}` / `{c}` 는 grid 전용이므로 별도
99
+ * 처리 필요 (추후).
100
+ */
101
+ export declare function nextAvailableStart(idPattern: string, existingIds: Iterable<string>, fallbackStart: number): number;
102
+ //# sourceMappingURL=bulk-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-create.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/bulk-create.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAElD,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,qBAAqB;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,aAAa;IACb,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,CAAA;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAWhC;AAuBD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,EAAE,CAsEhF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EAAE,EACxB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC5B,MAAM,EAAE,CAOV;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB,CAqBA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,aAAa,EAAE,MAAM,GACpB,MAAM,CAoBR"}
@@ -1,2 +1,5 @@
1
- export declare function getIds(this: any): any[];
1
+ export declare function getIds(this: any): {
2
+ key: any;
3
+ value: any;
4
+ }[];
2
5
  //# sourceMappingURL=ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/ids.ts"],"names":[],"mappings":"AAKA,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,SAgB/B"}
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/ids.ts"],"names":[],"mappings":"AAKA,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG;;;IAoB/B"}
@@ -12,7 +12,8 @@ export { group, ungroup } from './group.js';
12
12
  export { symmetryX, symmetryY } from './symmetry.js';
13
13
  export { change, undoableChange } from './change.js';
14
14
  export { getIds } from './ids.js';
15
+ export { generateBulkComponents, deriveGridShape, findIdConflicts, inferIdPattern, nextAvailableStart, type BulkCreateOptions, type GeneratedModel, type Pattern, type Area } from './bulk-create.js';
15
16
  export { default as place } from './place.js';
16
- export { startAddMode } from './add-start.js';
17
+ export { startAddMode, startBulkCreateMode, type BulkCreateResult } from './add-start.js';
17
18
  export { startStylePasteMode, stopStylePasteMode, startDatabindPasteMode, stopDatabindPasteMode } from './paste-start.js';
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,IAAI,EACV,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,kBAAkB,CAAA"}
@@ -56,4 +56,8 @@ export { default as TransitionEffect } from '../transition/transition-effect.js'
56
56
  export * from '../placement/index.js';
57
57
  export * from '../search/index.js';
58
58
  export * from '../threed/index.js';
59
+ export * from '../types/polygon-path.js';
60
+ export * from '../types/polygon-path-arc.js';
61
+ export { generateBulkComponents, deriveGridShape, findIdConflicts, inferIdPattern, nextAvailableStart, type BulkCreateOptions, type GeneratedModel, type Pattern as BulkCreatePattern, type Area as BulkCreateArea } from './api/bulk-create.js';
62
+ export { type BulkCreateResult } from './api/add-start.js';
59
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/things-scene/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/things-scene/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import animate from '../animation/animate.js';
2
+ import * as API from './api/index.js';
2
3
  import type { LoadTracker } from '../diagnostics/load-tracker.js';
3
4
  import { LoadingOverlay } from '../diagnostics/loading-overlay.js';
4
5
  import { SearchOverlay } from '../search/search-overlay.js';
@@ -102,7 +103,10 @@ declare class Scene {
102
103
  ungroup(): void;
103
104
  fit(type?: any): void;
104
105
  get fitMode(): any;
105
- get ids(): any[];
106
+ get ids(): {
107
+ key: any;
108
+ value: any;
109
+ }[];
106
110
  get data(): any;
107
111
  set data(data: any);
108
112
  get dataByRefid(): any;
@@ -144,6 +148,19 @@ declare class Scene {
144
148
  end(): void;
145
149
  };
146
150
  startAddMode(models?: any): void;
151
+ /**
152
+ * Bulk-create 모드 진입. 사용자가 캔버스에 영역을 드래그 완료하면 area 와 함께
153
+ * resolve, ESC/취소 시 null 로 resolve.
154
+ *
155
+ * const result = await scene.startBulkCreateMode(template, { boxStrokeStyle: '#2964c2' })
156
+ * if (result) { ... result.area, result.template ... }
157
+ *
158
+ * 일반 startAddMode 와 달리 AddLayer 가 add 를 호출하지 않고 영역 선택만 처리.
159
+ * 외부 consumer 가 dialog/옵션 협의 후 직접 add 결정.
160
+ */
161
+ startBulkCreateMode(template: any, options?: {
162
+ boxStrokeStyle?: string;
163
+ }): Promise<API.BulkCreateResult | null>;
147
164
  startStylePasteMode(): void;
148
165
  stopStylePasteMode(): void;
149
166
  startDatabindPasteMode(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/things-scene/scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/things-scene/scene.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"backdrop.d.ts","sourceRoot":"","sources":["../../../src/threed/factories/backdrop.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,MAAM,2BAA2B,CAAA;AAK7C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAgHzD,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;;;;;;;;;;;OAYG;IACH,IAAa,QAAQ;;;;MAMpB;IAQD,KAAK;IAoFL,OAAO,CAAC,YAAY;IAqBpB,eAAe;IAEf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASxE,WAAW;CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcD,qBACa,QAAS,SAAQ,aAA2B;IACvD;2EACuE;IACvE,OAAO,CAAC,aAAa,CAAC,CAAsC;IAE5D,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,KAAK,CAAC,MAAM,EAAE,GAAG;IAgBX,KAAK;IAOX,OAAO,CAAC,MAAM,EAAE,GAAG;IAKnB,OAAO;IAKP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYxE;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;CAM5B"}
1
+ {"version":3,"file":"backdrop.d.ts","sourceRoot":"","sources":["../../../src/threed/factories/backdrop.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,MAAM,2BAA2B,CAAA;AAK7C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAsHzD,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;;;;;;;;;;;OAYG;IACH,IAAa,QAAQ;;;;MAMpB;IAQD,KAAK;IAwFL,OAAO,CAAC,YAAY;IAqBpB,eAAe;IAEf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASxE,WAAW;CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBD,qBACa,QAAS,SAAQ,aAA2B;IACvD;2EACuE;IACvE,OAAO,CAAC,aAAa,CAAC,CAAsC;IAE5D,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,KAAK,CAAC,MAAM,EAAE,GAAG;IAgBX,KAAK;IAOX,OAAO,CAAC,MAAM,EAAE,GAAG;IAKnB,OAAO;IAKP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYxE;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;CAM5B"}
@@ -1,5 +1,13 @@
1
1
  import * as THREE from 'three';
2
2
  import { RealObjectExtrude } from '../real-object-extrude.js';
3
+ /**
4
+ * 호(bulge) 가 chord 한쪽으로 부풀면 ExtrudeGeometry 의 mesh BBox center 가
5
+ * 그 쪽으로 이동한다. RealObjectExtrude.createGeometry 의 `geometry.center()` 가
6
+ * 그 이동된 BBox center 를 (0,0) 으로 시프트 → polygon 통째가 호 반대편으로 어긋남.
7
+ *
8
+ * 여기서는 path vertex 만의 BBox center 로 정렬되도록 createGeometry 를 오버라이드.
9
+ * 핸들 위치(보드 좌표 = path vertex 좌표) 와 mesh 위치가 일치한다.
10
+ */
3
11
  export declare class PolygonExtrude extends RealObjectExtrude {
4
12
  _minMax?: {
5
13
  minX?: number;
@@ -8,6 +16,17 @@ export declare class PolygonExtrude extends RealObjectExtrude {
8
16
  maxY?: number;
9
17
  };
10
18
  get shape(): THREE.Shape;
19
+ /**
20
+ * super.build() 와 거의 동일하지만 BoundUVGenerator 의 BBox 를 호 포함 shape
21
+ * 이 아닌 path vertex 만의 BBox 로 설정. 패턴 텍스처가 vertex BBox 기준
22
+ * (= component bounds) 으로 매핑되어 Rect 와 동일한 시각이 나온다.
23
+ */
24
+ build(): void;
25
+ /**
26
+ * mesh BBox center 가 아닌 path vertex BBox center 로 정렬한다.
27
+ * 호 영역이 chord 한쪽으로 부풀어도 polygon 통째 위치가 어긋나지 않도록.
28
+ */
29
+ createGeometry(shape: THREE.Shape): THREE.BufferGeometry;
11
30
  get minMax(): {
12
31
  minX?: number;
13
32
  minY?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../src/threed/factories/polygon.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAG7D,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IAED,IAAI,KAAK,gBAoCR;IAED,IAAI,MAAM;eA5CD,MAAM;eACN,MAAM;eACN,MAAM;eACN,MAAM;MAwEd;CACF"}
1
+ {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../src/threed/factories/polygon.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAS7D;;;;;;;GAOG;AAEH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IAED,IAAI,KAAK,gBAoER;IAED;;;;OAIG;IACH,KAAK;IAiDL;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc;IAsCxD,IAAI,MAAM;eA5KD,MAAM;eACN,MAAM;eACN,MAAM;eACN,MAAM;MAwMd;CACF"}
@@ -20,8 +20,14 @@ export declare class VertexGizmoManager {
20
20
  private _activeComponent?;
21
21
  private _activeVertexHandles;
22
22
  private _activeHandleIndex;
23
+ private _activeKind;
24
+ private _activeHandle?;
23
25
  private _isDragging;
24
26
  private _isExtending;
27
+ private _isPending;
28
+ private _pendingHit?;
29
+ private _pendingHandleType?;
30
+ private _pendingScreenStart;
25
31
  private _dragPlane;
26
32
  private _dragOffset;
27
33
  private _raycaster;
@@ -50,6 +56,8 @@ export declare class VertexGizmoManager {
50
56
  private _rebuildComponentHandles;
51
57
  private _createVertexHandle;
52
58
  private _createMidpointHandle;
59
+ private _createCornerHandle;
60
+ private _createBulgeHandle;
53
61
  /**
54
62
  * 3D 핸들 위치 → 2D path 포인트 역변환
55
63
  */
@@ -63,10 +71,33 @@ export declare class VertexGizmoManager {
63
71
  /** 컴포넌트에 속하는 ComponentHandles를 찾는다 */
64
72
  private _findComponentHandles;
65
73
  /**
66
- * 마우스 다운: vertex/midpoint 핸들 raycast hit 감지 → 드래그 시작.
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
+ *
67
84
  * @returns true이면 이벤트를 소비
68
85
  */
69
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;
70
101
  /**
71
102
  * midpoint 핸들 드래그 시작: 세그먼트 중간에 새 vertex를 삽입
72
103
  */
@@ -80,20 +111,35 @@ export declare class VertexGizmoManager {
80
111
  */
81
112
  private _setupDragPlane;
82
113
  /**
83
- * 마우스 이동: 드래그 중이면 핸들 이동.
114
+ * 마우스 이동: pending 경우 임계값 검사 후 dragstart, 그 후 dragmove 처리.
115
+ *
116
+ * 첫 mousemove 가 임계값을 넘는 순간 `_beginDrag` 호출 — 이 함수가 _setupDragPlane 까지
117
+ * 처리하므로 같은 mousemove 내에서 fallthrough 로 dragmove 까지 이어지면 된다.
84
118
  */
85
119
  onPointerMove(ndc: THREE.Vector2, camera: THREE.Camera, event: MouseEvent): boolean;
120
+ /** corner 드래그 라이브 갱신 — 보드 좌표 변환 후 cornerRadiusFromDrag */
121
+ private _dragCornerLive;
122
+ /** bulge 드래그 라이브 갱신 */
123
+ private _dragBulgeLive;
86
124
  /**
87
125
  * 현재 활성 컴포넌트의 vertex 핸들 위치로부터 Line2 geometry를 실시간 업데이트한다.
88
126
  */
89
127
  private _updateLinePreview;
90
128
  /**
91
129
  * 마우스 업: 드래그 종료 → component.mutatePath() 호출.
130
+ *
131
+ * pending 만 있고 드래그가 시작 안 된 경우 = 클릭만. mutation 없이 정리만 한다
132
+ * (2D 와 동일 — 클릭은 path 를 더럽히지 않음). dblclick 은 별개 이벤트라 정리해도 무방.
92
133
  */
93
134
  onPointerUp(): boolean;
94
135
  /**
95
- * 더블클릭: vertex 핸들 위에서 더블클릭하면 해당 vertex 삭제.
96
- * @returns true이면 이벤트를 소비
136
+ * 더블클릭:
137
+ * - vertex 핸들 vertex 삭제 (기존)
138
+ * - corner 핸들 → radius 제거 (직각 복귀)
139
+ * - bulge 핸들 → bulge 제거 (직선 복귀)
140
+ *
141
+ * vertex 우선 raycast — corner/bulge 는 vertex 가 hit 안 될 때만 검사.
142
+ * onPointerDown 과 동일 컨벤션 (vertex 위 클릭이 corner 로 떨어지지 않도록).
97
143
  */
98
144
  onDblClick(ndc: THREE.Vector2, camera: THREE.Camera): boolean;
99
145
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-gizmo-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/vertex-gizmo-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AA2B1D;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAK;IAGxB,OAAO,CAAC,gBAAgB,CAAC,CAAW;IACpC,OAAO,CAAC,oBAAoB,CAAmB;IAC/C,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,aAAa,CAAsB;IAE3C,IAAI,UAAU,YAA8B;IAC5C,IAAI,UAAU,YAA+C;IAE7D,gCAAgC;IAChC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMlC;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI;IAqBlF,4BAA4B;IAC5B,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI;IAIvE;;OAEG;IACH,MAAM,IAAI,IAAI;IAiBd;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB,yBAAyB;IACzB,OAAO,CAAC,cAAc;IAQtB,sCAAsC;IACtC,OAAO,CAAC,qBAAqB;IAI7B;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAgDnF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IA6BnF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,WAAW,IAAI,OAAO;IA+BtB;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO;IA8B7D;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;IAuB9C,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"vertex-gizmo-manager.d.ts","sourceRoot":"","sources":["../../../src/threed/managers/vertex-gizmo-manager.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -34,5 +34,14 @@ export declare class RealObjectExtrude extends RealObject {
34
34
  */
35
35
  private _applyCapTexture;
36
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;
37
46
  }
38
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;AAOhE;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,iBAAiB,CAAC,EAAE,gBAAgB,CAAA;IACpC,OAAO,CAAC,KAAK,CAAC,CAAY;IAE1B,KAAK;IAKL,IAAI,KAAK,IAAI,GAAG,CAEf;IAED,IAAI,gBAAgB,qBAInB;IAED,KAAK;IAoCL,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc;IAoBxD,eAAe,IAAI,KAAK,CAAC,QAAQ,EAAE;IAcnC,aAAa;IAqBb,OAAO,CAAC,YAAY;IAMpB,gBAAgB;IAYhB,WAAW;IAUX,iBAAiB;IAQjB,eAAe;IAIf,UAAU;IAIV;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA+DxB,eAAe;CAMhB"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fillstyle-texture.d.ts","sourceRoot":"","sources":["../../../src/threed/texture/fillstyle-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAG1D;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IACT,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,uDAAuD;IACvD,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACtD,EACD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,iBAAiB,GAAG,IAAI,CAyC1B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAqGvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAC1H,KAAK,CAAC,aAAa,GAAG,SAAS,CASjC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,KAAK,CAAC,OAAO,GAAG,SAAS,CAkB3B"}
1
+ {"version":3,"file":"fillstyle-texture.d.ts","sourceRoot":"","sources":["../../../src/threed/texture/fillstyle-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAG1D;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IACT,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,uDAAuD;IACvD,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACtD,EACD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,iBAAiB,GAAG,IAAI,CAyC1B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAsJvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAC1H,KAAK,CAAC,aAAa,GAAG,SAAS,CASjC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,KAAK,CAAC,OAAO,GAAG,SAAS,CAkB3B"}
@@ -10,4 +10,6 @@ export { Transfer, transferLog, receiptToJSON } from './transfer.js';
10
10
  export type { TransferPhase, TransferTimeline, TransferReceipt, TransferReceiptJSON, TransferLogStats, PhysicalRunner, TransferInit } from './transfer.js';
11
11
  export { ReservationTable, reservationTable, standardYieldPolicy, NavGraph, buildNavGraph, planPathAStar, planToReservations } from '../navigation/index.js';
12
12
  export type { LaneGeometry, Lane, ConflictPair, Intersection, NavPolygon, OpenZone, TimeWindow, Reservation, SpeedProfile, PathSegment, PathPlan, PathPlanOptions, Navigable, YieldDecision, YieldPolicy, ReservationEvent, AddResult, Conflict, ConflictRecord, NavNode, NavEdge, BuildNavGraphOptions } from '../navigation/index.js';
13
+ export * from '../types/polygon-path.js';
14
+ export * from '../types/polygon-path-arc.js';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transfer/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,IAAI,EACJ,KAAK,EACL,OAAO,EACP,eAAe,EACf,SAAS,EACT,OAAO,EACP,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EAET,QAAQ,EACR,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACT,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACpE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACb,MAAM,eAAe,CAAA;AAItB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,aAAa,EACb,aAAa,EACb,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,eAAe,EACf,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,OAAO,EACP,OAAO,EACP,oBAAoB,EACrB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transfer/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,IAAI,EACJ,KAAK,EACL,OAAO,EACP,eAAe,EACf,SAAS,EACT,OAAO,EACP,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EAET,QAAQ,EACR,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACT,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACpE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACb,MAAM,eAAe,CAAA;AAItB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,aAAa,EACb,aAAa,EACb,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,eAAe,EACf,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,OAAO,EACP,OAAO,EACP,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}