@hatiolab/figure-model 0.7.3 → 0.9.0

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 (79) hide show
  1. package/dist/authoring-fastening.d.ts +53 -8
  2. package/dist/authoring-fastening.d.ts.map +1 -1
  3. package/dist/authoring-fastening.js +158 -242
  4. package/dist/authoring-fastening.js.map +1 -1
  5. package/dist/authoring-geometry.d.ts +13 -46
  6. package/dist/authoring-geometry.d.ts.map +1 -1
  7. package/dist/authoring-geometry.js +28 -180
  8. package/dist/authoring-geometry.js.map +1 -1
  9. package/dist/authoring-occupancy.d.ts +3 -3
  10. package/dist/authoring-occupancy.d.ts.map +1 -1
  11. package/dist/authoring-occupancy.js +23 -12
  12. package/dist/authoring-occupancy.js.map +1 -1
  13. package/dist/authoring-proportion.d.ts.map +1 -1
  14. package/dist/authoring-proportion.js +15 -3
  15. package/dist/authoring-proportion.js.map +1 -1
  16. package/dist/authoring-types.d.ts +69 -32
  17. package/dist/authoring-types.d.ts.map +1 -1
  18. package/dist/authoring-types.js +14 -0
  19. package/dist/authoring-types.js.map +1 -1
  20. package/dist/command-preview.d.ts +11 -33
  21. package/dist/command-preview.d.ts.map +1 -1
  22. package/dist/command-preview.js +2 -61
  23. package/dist/command-preview.js.map +1 -1
  24. package/dist/contract.d.ts +1 -1
  25. package/dist/contract.d.ts.map +1 -1
  26. package/dist/examples.js +4 -4
  27. package/dist/examples.js.map +1 -1
  28. package/dist/face-overhang.d.ts +105 -0
  29. package/dist/face-overhang.d.ts.map +1 -0
  30. package/dist/face-overhang.js +357 -0
  31. package/dist/face-overhang.js.map +1 -0
  32. package/dist/fasten-place.d.ts +35 -0
  33. package/dist/fasten-place.d.ts.map +1 -0
  34. package/dist/fasten-place.js +91 -0
  35. package/dist/fasten-place.js.map +1 -0
  36. package/dist/gate.d.ts.map +1 -1
  37. package/dist/gate.js +7 -4
  38. package/dist/gate.js.map +1 -1
  39. package/dist/graph.d.ts.map +1 -1
  40. package/dist/graph.js +16 -2
  41. package/dist/graph.js.map +1 -1
  42. package/dist/index.d.ts +7 -3
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +7 -3
  45. package/dist/index.js.map +1 -1
  46. package/dist/joint-fields.d.ts +12 -0
  47. package/dist/joint-fields.d.ts.map +1 -0
  48. package/dist/joint-fields.js +20 -0
  49. package/dist/joint-fields.js.map +1 -0
  50. package/dist/joint-writing.d.ts +7 -2
  51. package/dist/joint-writing.d.ts.map +1 -1
  52. package/dist/joint-writing.js +224 -119
  53. package/dist/joint-writing.js.map +1 -1
  54. package/dist/kernel-version.d.ts +1 -1
  55. package/dist/kernel-version.js +1 -1
  56. package/dist/proposal.js +4 -4
  57. package/dist/proposal.js.map +1 -1
  58. package/dist/recipe.js +1 -1
  59. package/dist/recipe.js.map +1 -1
  60. package/dist/resize-plan.js +1 -1
  61. package/dist/resize-plan.js.map +1 -1
  62. package/dist/robots.d.ts.map +1 -1
  63. package/dist/robots.js +24 -22
  64. package/dist/robots.js.map +1 -1
  65. package/dist/shape-edit.d.ts.map +1 -1
  66. package/dist/shape-edit.js +7 -3
  67. package/dist/shape-edit.js.map +1 -1
  68. package/dist/shape-extreme.d.ts +49 -0
  69. package/dist/shape-extreme.d.ts.map +1 -0
  70. package/dist/shape-extreme.js +262 -0
  71. package/dist/shape-extreme.js.map +1 -0
  72. package/dist/shape-ops.d.ts +6 -7
  73. package/dist/shape-ops.d.ts.map +1 -1
  74. package/dist/shape-ops.js +72 -37
  75. package/dist/shape-ops.js.map +1 -1
  76. package/dist/size-edit.d.ts.map +1 -1
  77. package/dist/size-edit.js +40 -11
  78. package/dist/size-edit.js.map +1 -1
  79. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-fastening.js","sourceRoot":"","sources":["../src/authoring-fastening.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authoring-fastening.js","sourceRoot":"","sources":["../src/authoring-fastening.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAa,IAAI,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EACL,cAAc,EAKf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAA;AAClH,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,WAAW,EACZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAEL,IAAI,EACJ,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,EACH,QAAQ,EACT,MAAM,yBAAyB,CAAA;AAehC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,IAAY,EAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAS,CAAA;AAGpG;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,CAAc,EAAE,KAAiB;IAC3E,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAgB,CAAA;IAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAA;IACjC,IAAI,CAAE,cAAqC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClH,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;IACnE,uHAAuH;IACvH,IAAI,IAAU,EAAE,IAAY,EAAE,KAAY,CAAA;IAC1C,MAAM,KAAK,GAAgE,EAAE,CAAA;IAC7E,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QACvC,IAAI,GAAG,CAAC,CAAA;QACR,KAAK,GAAG,EAAE,CAAA;QACV,IAAI,SAAS,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM;YAC3C,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,+BAA+B,KAAK,iCAAiC,MAAM,EAAE,CAAC,CAAA;QAC1G,IAAI,MAAM,KAAK,QAAQ;YAAE,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,gBAAgB,EAAE,+EAA+E,CAAC,CAAA;QACvJ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;YAC1C,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBACnE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAA;YAC1E,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAAA;QACxF,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7F,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5H,IAAI,GAAG,IAAK,CAAC,IAAY,CAAA;QACzB,IAAI,GAAG,IAAK,CAAC,MAAM,CAAA;QACnB,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAK,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;YAAE,IAAI,KAAK,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,CAAA;IAC/G,CAAC;IACD,yGAAyG;IACzG,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,CAAA;IAClC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAO,EAAe,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAS,EAAE,IAAI,CAAC,CAAA;IAC9G,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxH,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACpF,MAAM,EAAE,GAA8B,EAA+B,CAAA;IACrE,MAAM,IAAI,GAA8B,EAA+B,CAAA;IACvE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;IACvB,EAAE,CAAC,IAAI,CAAC;QACN,MAAM,KAAK,MAAM;YACf,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5C,CAAC,CAAC,MAAM,KAAK,OAAO;gBAClB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IACrF,+GAA+G;IAC/G,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5I,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,0EAA0E;QAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAA;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI;gBACP,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,kCAAkC,KAAK,eAAe,CAAC,sEAAsE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,uBAAuB,CAAC,YAAY,KAAK,gDAAgD,CAAC,CAAA;YAC/R,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACpF,0FAA0F;YAC1F,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC,EAAE,CAAC,CAAA;YAClD,SAAQ;QACV,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC5F,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACtE,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAG,GAA6B,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACvJ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC;;YAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QACjE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC/B,CAAC;IACD,wIAAwI;IACxI,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAA;IACnC,IAAI,KAAK,KAAK,cAAc;QAC1B,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC3H,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3E,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClD,IAAI,CAAC,KAAK;YACR,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,eAAe,EAAE,GAAG,KAAK,UAAU,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,0FAA0F,CAAC,CAAA;QAC5Q,qGAAqG;QACrG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACrJ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9G,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,0GAA0G;IAC1G,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5M,MAAM,KAAK,GAAG,CAAC,CAAc,EAAE,CAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5E,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,EAAE;QAC1F,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACtD,CAAC,CAAA;IACF,4HAA4H;IAC5H,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACrG,KAAK,MAAM,GAAG,IAAI,GAAG;QAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC1F,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,YAAa,CAAC,EAAE,KAAK,CAAC,YAAa,EAAE,QAAQ,CAAC,CAAA;AACjJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,KAAc,EACd,IAAY,EACZ,CAAa,EACb,MAAqC,EACrC,IAAgB;IAEhB,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,IAAI,aAAa,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAC/F,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAA;IAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI,GAAG;QACV,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnB,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAA;YACzB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;gBAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAC3G,OAAO,EAAE,CAAA;QACX,CAAC,CAAC;KACH,CAAA;IACD,KAAK,MAAM,GAAG,IAAI,GAAG;QAAE,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACjD,CAAC;AAED;;;GAGG;AACH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,EAAU,EAAE,EAAU,EAAE,KAA0C;IACvG,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,IAAI,KAAK;QAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3C,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA;IAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG;YACL,EAAE,EAAE,GAAG,EAAE,aAAa;YACtB,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAChD,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE;YACrC,MAAM,EAAE,EAAE;SACX,CAAA;QACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,IAAI,KAAK;QAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACjE,qGAAqG;IACrG,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IACxC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAA;QAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG;gBACP,EAAE,EAAE,GAAG,EAAE,SAAS;gBAClB,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC9C,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE;aACxC,CAAA;YACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;;YAAM,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC;SAAM,IAAI,MAAM;QAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;IACzE,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,CAAA;QACtG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IACD,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClF,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvC,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IACtC,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC/B,iHAAiH;QACjH,MAAM,KAAK,GACT,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;YAChD,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;YAChD,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI;YACjD,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAE,CAAC,OAAO,CAAC,IAAI,CAAA;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,EAAE,EAAE,GAAG,EAAE,QAAQ;gBACjB,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE;aACvC,CAAA;YACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;;YAAM,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;SAAM,CAAC;QACN,IAAI,KAAK;YAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAA;QAChE,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IACD;;;MAGE;IACF,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;QAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAC1G,CAAC;AAED,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAE,EAAU,EAAU,EAAE;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,UAAU,SAAS,CACvB,KAAc,EACd,CAAsB,EACtB,MAA6E,EAC7E,OAA0B,CAAC;IAE3B,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;IACnB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACvB,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;QACtE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAA;IACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAClG,IAAI,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QAC/C,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,wEAAwE,CAAC,CAAA;IAClH,IAAI,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;QAAE,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAEjG,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,YAAY,CAAA;IAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IACjD,IAAI,KAAK,KAAK,OAAO,IAAI,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU;QAC1E,IAAI,CACF,cAAc,EACd,IAAI,EACJ,GAAG,CAAC,CAAC,IAAI,qBAAqB,QAAQ,kGAAkG,CACzI,CAAA;SACE,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,OAAO;QAClD,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAEtE,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAA;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAA;IACzC,IAAI,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAA;IACrB,IAAI,MAAM,EAAE,CAAC;QACX;;;;UAIE;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;YAC9B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,QAAQ;gBACZ,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC5E,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,QAAQ,EAAE;aACxC,CAAC,CAAA;YACF,QAAQ,GAAG,GAAG,QAAQ,QAAQ,CAAA;QAChC,CAAC;;YACC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;gBACnC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,QAAQ;oBACZ,EAAE,EAAE,OAAO;oBACX,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,QAAQ,EAAE;iBACxC,CAAC,CAAA;gBACF,IAAI,CAAC,CAAC;oBAAE,QAAQ,GAAG,GAAG,QAAQ,QAAQ,CAAA;qBACjC,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;oBACpC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,KAAK;wBACT,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,QAAQ,QAAQ,CAAC;wBACrC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,QAAQ,EAAE;qBACrC,CAAC,CAAA;oBACF,QAAQ,GAAG,GAAG,KAAK,QAAQ,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;YACjC,4FAA4F;YAC5F,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;YACvD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,IAAI;gBACR,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtD,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE;aACpC,CAAC,CAAA;YACF,QAAQ,GAAG,GAAG,IAAI,QAAQ,CAAA;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAA;QAC3G,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CACnH,CAAA;QACD,IAAI,IAAI,EAAE,CAAC;YACT;;;cAGE;QACJ,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACzD;;;cAGE;YACF,MAAM,IAAI,GACR,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpD,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC7D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YACrE,IAAI,IAAI;gBAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAA;YACnE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YAC1D,OAAO,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACjC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,WAAW,CAAA;gBACrD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3G,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;YAC1E,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,wCAAwC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAA;QAChC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,yCAAyC,CAAC,CAAA;QAC1G,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACpF,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;QACpC,CAAC;QACD,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrD,KAAK,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAA;YACpD,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;gBACzB,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvD,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACrD,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,0DAA0D,CAAC,CAAA;QAC/F,MAAM,MAAM,GAAG,CAAC,CAAC,MAAkB,CAAA;QACnC,IAAI,MAAc,CAAA;QAClB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACjC,6GAA6G;YAC7G,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAA;YAC7B,MAAM,GAAG,MAAM,CACb,CAAC,EACD,IAAI,EACJ,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE,YAAY,CAAC,EACpF,CAAC,EACD,IAAI,EACJ,QAAQ,CACT,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAClH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACtG,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC9F,QAAQ,GAAG,GAAG,EAAE,QAAQ,CAAA;IAC1B,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM;QAC9C,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,yDAAyD,CAAC,CAAA;IAEjF,iGAAiG;IACjG,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACjF,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACX,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS;QACtB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa;QAC9D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,eAAe,EAAE;QAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE;KACjD,CAAC,CAAA;IACF,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAE/B,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QAChB,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAA;QACzF,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,8CAA8C,CAAC,CAAA;QACtE,KAAK,CAAC,OAAO,GAAG;YACd,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;YACxB;gBACE,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;gBACzB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,EAAE,CAAC,EAAE;gBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;gBACzC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7B,aAAa,EAAE,QAAQ;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,KAAK;aACpC;SACF,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,CAA0C;IACrF,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAA;IAC9C,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;IAC9E,2FAA2F;IAC3F,MAAM,KAAK,GACT,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;QACtE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACzG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;IACtD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACvC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAA;QACvD,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACzD,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,CAAA;QAC7F,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,OAAO,CAAA;QAChE,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,WAAW,CAAA;IAC3F,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { type FigureShapeFace } from './graph.ts';
2
2
  import { type Axis } from './words.ts';
3
- import type { FigurePlacement } from './asset-types.ts';
4
- import { type FigureFace, type FigureJoint, type FigureFaceAlignment } from './authoring-types.ts';
3
+ import { type FigureJoint } from './authoring-types.ts';
5
4
  type Dynamic = any;
6
5
  /** The three size references of a box-shaped part, or a refusal naming what it is instead. */
7
6
  /** One extent of a part: a value in the graph, times a factor (a cylinder's width is its radius times two). */
@@ -52,67 +51,35 @@ export declare function facesOfPart(m: Dynamic, id: string, path: string): {
52
51
  faces: Readonly<Record<string, FigureShapeFace>>;
53
52
  };
54
53
  /**
55
- * The face a joint's child is measured by: its own, or for `centre` the face that would meet the parent's -- the part is
56
- * measured and turned as that face, and only where its middle sits differs (\`attach\`).
54
+ * The axis of the face a joint's child meets: its parent's face by the parent's shape, or the mounting plane's normal
55
+ * (+Z on a wall, +Y otherwise; ADR-0140 3.11). None for a joint placed at an origin.
57
56
  */
58
- export declare function childFaceOf(m: Dynamic, j: FigureJoint): FigureFace;
57
+ export declare function receivingAxisOf(m: Dynamic, asset: Dynamic, j: FigureJoint): Axis | undefined;
59
58
  export declare const planeOf: (shape: Dynamic, face: FigureShapeFace) => Terms;
60
59
  /** The part's outer faces on each axis in its own frame; an axis without a pair of flat faces has none. */
61
60
  export declare function ownSpansOf(m: Dynamic, id: string, path: string): Partial<Record<Axis, Span>>;
62
- /**
63
- * The part's spans as it stands in its seat, after its own quarter turn (the turn is fixed as `standingRefsOf` fixes
64
- * it). A turn that flips an axis swaps its two faces: the part's own right face becomes the standing left.
65
- */
66
- export declare function standingSpansOf(m: Dynamic, asset: Dynamic, id: string, path: string): Partial<Record<Axis, Span>>;
67
61
  /**
68
62
  * Standing a part on the plane the figure is mounted on. The plane has no width and no depth, so there is
69
63
  * nothing to line the part's edges up with: across the plane, only the centre or a measured offset.
70
64
  */
71
- /** The faces a part is fastened to the mounting plane by, for a figure placed so (ADR-0093). */
72
- export declare function planeFacesOf(placement: FigurePlacement): FigureFace[];
73
65
  export declare const IDENTITY: number[][];
74
66
  export declare const isIdentity: (r: number[][]) => boolean;
75
67
  export declare const transpose3: (r: number[][]) => number[][];
76
68
  export declare const mv3: (r: number[][], v: number[]) => number[];
77
- export declare const FACE_VECTOR: Record<FigureFace, number[]>;
78
- export declare const faceAlong: (v: number[]) => "left" | "right" | "bottom" | "top" | "back" | "front";
79
- /**
80
- * How a part stands, as a signed axis permutation: its own quarter turn, which its joint record keeps (the pose may
81
- * carry the turn back given under a turned parent). A part with no joint stands as its pose turns it. Any turn but
82
- * quarter turns is refused and says the angle: nothing can be fastened level with its faces.
83
- */
84
- export declare function standingTurnOf(asset: Dynamic, part: string, path: string): number[][];
85
- /** How a part stands before its twist: its quarter turn only. */
86
- export declare function standingQuarterOf(asset: Dynamic, part: string, path: string): number[][];
87
- /** A quarter-turn matrix back as degrees about X, Y and Z in the order `rigid@1` turns. */
88
- export declare function eulerOf(r: number[][]): number[];
89
69
  /** The two axes across a face along `axis`, in the order a right-handed turn about it takes one into the other. */
90
70
  export declare const ACROSS: Record<Axis, [Axis, Axis]>;
91
- /** A turn of `deg` degrees about one axis. */
92
- export declare function axisTurn(axis: Axis, deg: number): number[][];
93
- /** A direction that must lie along an axis to name a face or an edge there; otherwise refused with the parent's twist. */
94
- export declare function axisOf(v: number[], what: string, parent: string, back: number[][], path: string): {
95
- axis: Axis;
96
- vector: number[];
97
- };
71
+ /** Rz(z)·Ry(y)·Rx(x), degrees about the fixed axes (URDF's rpy), for column vectors. */
72
+ export declare function rpyMatrix(rotate: Partial<Record<Axis, number>>): number[][];
98
73
  /**
99
- * A turn as a twist about one axis after a quarter turn: r = twist(axis, deg) · quarter, with the twist nearest
100
- * `asked`. A turn that is no such thing (a face not level with the axis) is refused.
74
+ * A turn back as URDF's rpy -- degrees about the fixed axes, Rz(z)·Ry(y)·Rx(x) -- to six places: the inverse of
75
+ * `rpyMatrix`. Where Y is a quarter turn, X and Z turn about one axis and Z is taken as 0.
101
76
  */
102
- export declare function splitTwist(r: number[][], axis: Axis, asked: number, path: string): {
103
- quarter: number[][];
104
- deg: number;
105
- };
77
+ export declare function rpyOf(r: number[][]): Partial<Record<Axis, number>>;
78
+ export declare const isQuarterMatrix: (r: number[][]) => boolean;
79
+ /** A turn of `deg` degrees about one axis. */
80
+ export declare function axisTurn(axis: Axis, deg: number): number[][];
106
81
  /** Any turn back as degrees about X, Y and Z in the order `rigid@1` turns (X, then Y, then Z). */
107
- export declare function eulerOfAny(r: number[][]): number[];
108
- /** Where a part sits across a face, said on the standing axes, turned onto the parent's own: an edge flips where an axis does. */
109
- export declare function alignInto(back: number[][], align: Partial<Record<Axis, FigureFaceAlignment>>, path: string): Partial<Record<Axis, FigureFaceAlignment>>;
110
- /**
111
- * How wide a frustum is across its own axis, where the row runs: the larger of its two diameters, as the bounds of two
112
- * candidates (\`affine-bounds@1\`) -- the room's own way to take the larger of sums, so the gate still reads it as a sum
113
- * (chief architect, 2026-09-26). Undefined for any other shape, or a row along the frustum's own axis.
114
- */
115
- export declare function frustumWidthAlong(m: Dynamic, asset: Dynamic, part: string, axis: Axis, path: string): string | undefined;
82
+ export declare function eulerOfAny(r: number[][], exact?: boolean): number[];
116
83
  /** XYZ angles in degrees of a rotation written as rigid@1 writes it, Rx·Ry·Rz. */
117
84
  export declare function eulerXYZ(r: number[][]): [number, number, number];
118
85
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-geometry.d.ts","sourceRoot":"","sources":["../src/authoring-geometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authoring-geometry.d.ts","sourceRoot":"","sources":["../src/authoring-geometry.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  import { figureShapeFaces } from "./graph.js";
8
8
  import { figureLoftLayoutOf, figureExtrudeLayoutOf, figureShapeDescriptionOf } from "./shape-ops.js";
9
9
  import { AXES } from "./words.js";
10
+ import { figurePlacementOf } from "./asset.js";
10
11
  import { FIGURE_FACES, SIGN } from "./authoring-types.js";
11
12
  import { fail, nodeById, partOf, constantOf, ownInput, dropIfUnused, round6 } from "./authoring-nodes.js";
12
13
  export const isReach = (e) => !Array.isArray(e);
@@ -150,23 +151,16 @@ export function facesOfPart(m, id, path) {
150
151
  return { shape, faces: faces };
151
152
  }
152
153
  /**
153
- * The face a joint's child is measured by: its own, or for `centre` the face that would meet the parent's -- the part is
154
- * measured and turned as that face, and only where its middle sits differs (\`attach\`).
154
+ * The axis of the face a joint's child meets: its parent's face by the parent's shape, or the mounting plane's normal
155
+ * (+Z on a wall, +Y otherwise; ADR-0140 3.11). None for a joint placed at an origin.
155
156
  */
156
- export function childFaceOf(m, j) {
157
- if (j.body1.face !== 'centre')
158
- return j.body1.face;
159
- const path = `joints.${j.id}.body1.face`;
160
- if (!('part' in j.body0))
161
- fail('JOINT_SCHEMA', path, 'a part stands on the mounting plane by a face of its own, not by its centre');
162
- /* One of the six, in the record's words: the face across from it. An opening's face, read from the parent's shape. */
163
- const named = j.body0.face;
164
- if (Object.hasOwn(FIGURE_FACES, named))
165
- return Object.keys(FIGURE_FACES).find(f => FIGURE_FACES[f] === FIGURE_FACES[named] && SIGN[f] === -SIGN[named]);
166
- const theirs = facesOfPart(m, j.body0.part, path).faces[j.body0.face];
167
- if (!theirs)
168
- fail('JOINT_SCHEMA', path, `${j.body0.part} has no face ${j.body0.face}`);
169
- return Object.keys(FIGURE_FACES).find(f => FIGURE_FACES[f] === theirs.axis && SIGN[f] === -theirs.normal);
157
+ export function receivingAxisOf(m, asset, j) {
158
+ if ('plane' in j.body0)
159
+ return figurePlacementOf(asset) === 'wall' ? 'z' : 'y';
160
+ if (!('face' in j.body0))
161
+ return undefined;
162
+ const shape = m.nodes.find((n) => n.id === `${j.body0.part}.shape`);
163
+ return figureShapeFaces(shape, m)?.[j.body0.face]?.axis ?? undefined;
170
164
  }
171
165
  export const planeOf = (shape, face) => face.plane.map(p => ({ ref: shape.args[p.arg], k: p.k }));
172
166
  /** The part's outer faces on each axis in its own frame; an axis without a pair of flat faces has none. */
@@ -190,31 +184,10 @@ export function ownSpansOf(m, id, path) {
190
184
  }
191
185
  return spans;
192
186
  }
193
- /**
194
- * The part's spans as it stands in its seat, after its own quarter turn (the turn is fixed as `standingRefsOf` fixes
195
- * it). A turn that flips an axis swaps its two faces: the part's own right face becomes the standing left.
196
- */
197
- export function standingSpansOf(m, asset, id, path) {
198
- const own = ownSpansOf(m, id, path);
199
- const r = quarterTurnOf(m, asset, id, path, true);
200
- const standing = {};
201
- AXES.forEach((axis, i) => {
202
- const j = r[i].findIndex(v => v !== 0);
203
- const span = own[AXES[j]];
204
- if (!span)
205
- return;
206
- standing[axis] = r[i][j] > 0 ? span : { lo: neg(span.hi), hi: neg(span.lo), centred: span.centred };
207
- });
208
- return standing;
209
- }
210
187
  /**
211
188
  * Standing a part on the plane the figure is mounted on. The plane has no width and no depth, so there is
212
189
  * nothing to line the part's edges up with: across the plane, only the centre or a measured offset.
213
190
  */
214
- /** The faces a part is fastened to the mounting plane by, for a figure placed so (ADR-0093). */
215
- export function planeFacesOf(placement) {
216
- return placement === 'wall' ? ['back'] : ['bottom', 'top'];
217
- }
218
191
  export const IDENTITY = [
219
192
  [1, 0, 0],
220
193
  [0, 1, 0],
@@ -223,59 +196,28 @@ export const IDENTITY = [
223
196
  export const isIdentity = (r) => r.every((row, i) => row.every((v, k) => Math.abs(v - (i === k ? 1 : 0)) < 1e-12));
224
197
  export const transpose3 = (r) => r[0].map((_, i) => r.map(row => row[i]));
225
198
  export const mv3 = (r, v) => r.map(row => row.reduce((sum, x, k) => sum + x * v[k], 0));
226
- export const FACE_VECTOR = {
227
- left: [-1, 0, 0],
228
- right: [1, 0, 0],
229
- bottom: [0, -1, 0],
230
- top: [0, 1, 0],
231
- back: [0, 0, -1],
232
- front: [0, 0, 1]
233
- };
234
- export const faceAlong = (v) => Object.keys(FACE_VECTOR).find(f => FACE_VECTOR[f].every((x, i) => x === v[i]));
199
+ /** The two axes across a face along `axis`, in the order a right-handed turn about it takes one into the other. */
200
+ export const ACROSS = { x: ['y', 'z'], y: ['z', 'x'], z: ['x', 'y'] };
201
+ /** Rz(z)·Ry(y)·Rx(x), degrees about the fixed axes (URDF's rpy), for column vectors. */
202
+ export function rpyMatrix(rotate) {
203
+ return mul3(mul3(axisTurn('z', rotate.z ?? 0), axisTurn('y', rotate.y ?? 0)), axisTurn('x', rotate.x ?? 0));
204
+ }
235
205
  /**
236
- * How a part stands, as a signed axis permutation: its own quarter turn, which its joint record keeps (the pose may
237
- * carry the turn back given under a turned parent). A part with no joint stands as its pose turns it. Any turn but
238
- * quarter turns is refused and says the angle: nothing can be fastened level with its faces.
206
+ * A turn back as URDF's rpy -- degrees about the fixed axes, Rz(z)·Ry(y)·Rx(x) -- to six places: the inverse of
207
+ * `rpyMatrix`. Where Y is a quarter turn, X and Z turn about one axis and Z is taken as 0.
239
208
  */
240
- export function standingTurnOf(asset, part, path) {
241
- const record = (asset.joints ?? []).find(o => o.body1.part === part);
242
- const turn = record ? AXES.map(a => record.origin?.turn?.[a] ?? 0) : turnOf(asset.document.model, asset, part, path);
243
- if (turn.some(t => t === null || !Number.isFinite(t) || Math.abs(t / 90 - Math.round(t / 90)) > 1e-9))
244
- fail('EDIT_TARGET', path, `${part} is turned (${saidTurn(turn)}); fastening to a turned part by its faces is covered only for quarter turns`);
245
- const quarter = turn.every(t => t === 0) ? IDENTITY : turnMatrix(turn);
246
- /* A twisted part stands twisted about the normal of the face it is fastened by. */
247
- return record?.origin?.twist
248
- ? mul3(axisTurn(FIGURE_FACES[childFaceOf(asset.document.model, record)], record.origin.twist), quarter)
249
- : quarter;
250
- }
251
- /** How a part stands before its twist: its quarter turn only. */
252
- export function standingQuarterOf(asset, part, path) {
253
- const record = (asset.joints ?? []).find(o => o.body1.part === part);
254
- if (!record?.origin?.twist)
255
- return standingTurnOf(asset, part, path);
256
- const turn = AXES.map(a => record.origin?.turn?.[a] ?? 0);
257
- return turn.every(t => t === 0) ? IDENTITY : turnMatrix(turn);
258
- }
259
- /** A quarter-turn matrix back as degrees about X, Y and Z in the order `rigid@1` turns. */
260
- export function eulerOf(r) {
209
+ export function rpyOf(r) {
261
210
  const deg = (a) => {
262
- const d = Math.round((a * 180) / Math.PI / 90) * 90;
211
+ const d = round6((a * 180) / Math.PI);
263
212
  return d === 0 ? 0 : d;
264
213
  };
265
- /*
266
- About Y by a quarter turn, X and Z turn about the same axis and only their sum counts; Z is taken as 0. At +90 the X
267
- turn reads off as atan2(r10, r11), at -90 as atan2(-r10, r11) -- the -90 case had used the +90 reading, so two of the 24
268
- quarter turns (Y at -90 with X at +-90) did not come back and a host turned that way refused every fastening.
269
- */
270
- const out = Math.abs(r[0][2]) < 1
271
- ? [deg(Math.atan2(-r[1][2], r[2][2])), deg(Math.asin(r[0][2])), deg(Math.atan2(-r[0][1], r[0][0]))]
272
- : [deg(Math.atan2(Math.sign(r[0][2]) * r[1][0], r[1][1])), deg(Math.asin(r[0][2])), 0];
273
- if (!turnMatrix(out).every((row, i) => row.every((v, k) => v === r[i][k])))
274
- fail('EDIT_TARGET', 'turn', `${JSON.stringify(r)} is not a quarter turn; a fastening is covered only for quarter turns`);
275
- return out;
214
+ const sy = Math.max(-1, Math.min(1, -r[2][0]));
215
+ const out = Math.abs(sy) < 1 - 1e-12
216
+ ? { x: deg(Math.atan2(r[2][1], r[2][2])), y: deg(Math.asin(sy)), z: deg(Math.atan2(r[1][0], r[0][0])) }
217
+ : { x: deg(Math.atan2(-r[1][2], r[1][1])), y: deg(Math.asin(sy)), z: 0 };
218
+ return Object.fromEntries(Object.entries(out).filter(([, v]) => v !== 0));
276
219
  }
277
- /** The two axes across a face along `axis`, in the order a right-handed turn about it takes one into the other. */
278
- export const ACROSS = { x: ['y', 'z'], y: ['z', 'x'], z: ['x', 'y'] };
220
+ export const isQuarterMatrix = (r) => r.every(row => row.every(v => Math.abs(v) < 1e-9 || Math.abs(Math.abs(v) - 1) < 1e-9));
279
221
  /** A turn of `deg` degrees about one axis. */
280
222
  export function axisTurn(axis, deg) {
281
223
  const c = Math.cos((deg * Math.PI) / 180), s = Math.sin((deg * Math.PI) / 180);
@@ -291,39 +233,6 @@ export function axisTurn(axis, deg) {
291
233
  r[q][q] = c;
292
234
  return r;
293
235
  }
294
- /** A direction that must lie along an axis to name a face or an edge there; otherwise refused with the parent's twist. */
295
- export function axisOf(v, what, parent, back, path) {
296
- const k = v.findIndex(x => Math.abs(Math.abs(x) - 1) < 1e-9);
297
- if (k < 0)
298
- fail('ATTACH_FACE', path, `${parent} stands twisted (${saidTurn(eulerOfAny(transpose3(back)))}); ${what} is not level with an axis in it`);
299
- return { axis: AXES[k], vector: v.map(x => (Math.abs(x) < 1e-9 ? 0 : Math.sign(x))) };
300
- }
301
- /**
302
- * A turn as a twist about one axis after a quarter turn: r = twist(axis, deg) · quarter, with the twist nearest
303
- * `asked`. A turn that is no such thing (a face not level with the axis) is refused.
304
- */
305
- export function splitTwist(r, axis, asked, path) {
306
- const k = AXES.indexOf(axis);
307
- const [p, q] = ACROSS[axis].map(a => AXES.indexOf(a));
308
- let best;
309
- for (const quarter of QUARTER_TURNS) {
310
- const t = mul3(r, transpose3(quarter));
311
- if (Math.abs(t[k][k] - 1) > 1e-9)
312
- continue;
313
- const d = (Math.atan2(t[q][p], t[p][p]) * 180) / Math.PI;
314
- const off = Math.abs(((((d - asked) % 360) + 540) % 360) - 180);
315
- if (!best || off < best.off - 1e-9)
316
- best = { quarter, deg: Math.abs(d) < 1e-9 ? 0 : d, off };
317
- }
318
- if (!best)
319
- fail('ATTACH_FACE', path, `the part would stand turned about more than the face's normal (${saidTurn(eulerOfAny(r))})`);
320
- /*
321
- The angle as asked when that is what the turn is: taken back out of a matrix it carries float noise that depends
322
- on the path it was computed by, and the numbers made from it are named by their value -- the first write and the
323
- parse's rewrite then named them apart (JOINT_DRIFT, the architect's fan, 2026-09-25).
324
- */
325
- return { quarter: best.quarter, deg: best.off < 1e-6 ? asked : round6(best.deg) };
326
- }
327
236
  const QUARTER_TURNS = (() => {
328
237
  const out = [];
329
238
  for (const x of [0, 90, 180, 270])
@@ -336,9 +245,9 @@ const QUARTER_TURNS = (() => {
336
245
  return out;
337
246
  })();
338
247
  /** Any turn back as degrees about X, Y and Z in the order `rigid@1` turns (X, then Y, then Z). */
339
- export function eulerOfAny(r) {
248
+ export function eulerOfAny(r, exact = false) {
340
249
  const deg = (a) => {
341
- const d = round6((a * 180) / Math.PI);
250
+ const d = exact ? Math.round(((a * 180) / Math.PI) * 1e12) / 1e12 : round6((a * 180) / Math.PI);
342
251
  return d === 0 ? 0 : d;
343
252
  };
344
253
  const sy = Math.max(-1, Math.min(1, r[0][2]));
@@ -346,67 +255,6 @@ export function eulerOfAny(r) {
346
255
  return [deg(Math.atan2(-r[1][2], r[2][2])), deg(Math.asin(sy)), deg(Math.atan2(-r[0][1], r[0][0]))];
347
256
  return [deg(Math.atan2(r[1][0], r[1][1])), deg(Math.asin(sy)), 0];
348
257
  }
349
- /** Where a part sits across a face, said on the standing axes, turned onto the parent's own: an edge flips where an axis does. */
350
- export function alignInto(back, align, path) {
351
- const out = {};
352
- for (const [a, how] of Object.entries(align)) {
353
- const v = mv3(back, AXES.map(x => (x === a ? 1 : 0)));
354
- const k = v.findIndex(x => Math.abs(Math.abs(x) - 1) < 1e-9);
355
- if (k < 0)
356
- fail('ATTACH_FACE', path, `the parent stands twisted; placing along ${a} is not level with an axis in it -- place it by the centre`);
357
- const s = Math.sign(v[k]);
358
- const to = AXES[k];
359
- if (how === 'centre' || s > 0)
360
- out[to] = how;
361
- else if (how === 'min' || how === 'max')
362
- out[to] = how === 'min' ? 'max' : 'min';
363
- else if (typeof how.mm === 'number')
364
- out[to] = { mm: -how.mm };
365
- else
366
- fail('SCHEMA', path, `an offset that follows another value cannot be turned over onto ${to}; give it as a number`);
367
- }
368
- return out;
369
- }
370
- /**
371
- * How wide a frustum is across its own axis, where the row runs: the larger of its two diameters, as the bounds of two
372
- * candidates (\`affine-bounds@1\`) -- the room's own way to take the larger of sums, so the gate still reads it as a sum
373
- * (chief architect, 2026-09-26). Undefined for any other shape, or a row along the frustum's own axis.
374
- */
375
- export function frustumWidthAlong(m, asset, part, axis, path) {
376
- const { shape } = partOf(m, part, path);
377
- /* A taper's two radii, end then start -- read from the node, not assumed. */
378
- const taper = shape.op === 'revolve@1' && shape.params?.profile === 'taper'
379
- ? { along: shape.params.axis, radii: [shape.args[3], shape.args[2]] }
380
- : undefined;
381
- if (!taper)
382
- return undefined;
383
- const r = quarterTurnOf(m, asset, part, path, true);
384
- const own = AXES[r[AXES.indexOf(axis)].findIndex(v => v !== 0)];
385
- if (own === taper.along)
386
- return undefined;
387
- const id = `${part}.width.${own}`;
388
- if (!nodeById(m, id)) {
389
- const zero = constantOf(m, 'mm', 0, 'd');
390
- const two = constantOf(m, 'ratio', 2, 'k');
391
- const [top, bottom] = taper.radii;
392
- /* xmin, xmax, ymin, ymax, zmin, zmax: only the one maximum is read; the others hold a zero each. */
393
- m.nodes.push({
394
- id,
395
- op: 'affine-bounds@1',
396
- args: [zero, zero, top, two, zero, bottom, two, zero, zero, zero, zero],
397
- outputs: {
398
- xmin: `${id}.unused.xmin`,
399
- xmax: `${id}.value`,
400
- ymin: `${id}.unused.ymin`,
401
- ymax: `${id}.unused.ymax`,
402
- zmin: `${id}.unused.zmin`,
403
- zmax: `${id}.unused.zmax`
404
- },
405
- params: { layout: 'L0.1_1.0.0.0.0' }
406
- });
407
- }
408
- return `${id}.value`;
409
- }
410
258
  /** XYZ angles in degrees of a rotation written as rigid@1 writes it, Rx·Ry·Rz. */
411
259
  export function eulerXYZ(r) {
412
260
  const deg = (v) => round6((v * 180) / Math.PI) + 0;