plotboilerplate 1.28.1 → 1.30.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 (80) hide show
  1. package/README.md +8 -0
  2. package/dist/index.esm.js +527 -53
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.esm.min.js +1 -1
  5. package/dist/index.esm.min.js.map +1 -1
  6. package/dist/plotboilerplate.browser.min.js +1 -1
  7. package/dist/plotboilerplate.browser.min.js.map +1 -1
  8. package/dist/plotboilerplate.js +528 -51
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +1 -1
  11. package/src/cjs/Circle.d.ts +86 -3
  12. package/src/cjs/Circle.js +179 -4
  13. package/src/cjs/Circle.js.map +1 -1
  14. package/src/cjs/CubicBezierCurve.d.ts +34 -3
  15. package/src/cjs/CubicBezierCurve.js +79 -12
  16. package/src/cjs/CubicBezierCurve.js.map +1 -1
  17. package/src/cjs/Line.d.ts +46 -1
  18. package/src/cjs/Line.js +80 -1
  19. package/src/cjs/Line.js.map +1 -1
  20. package/src/cjs/Triangle.d.ts +40 -4
  21. package/src/cjs/Triangle.js +127 -31
  22. package/src/cjs/Triangle.js.map +1 -1
  23. package/src/cjs/VertTuple.d.ts +16 -2
  24. package/src/cjs/VertTuple.js +20 -2
  25. package/src/cjs/VertTuple.js.map +1 -1
  26. package/src/cjs/Vertex.d.ts +25 -2
  27. package/src/cjs/Vertex.js +43 -1
  28. package/src/cjs/Vertex.js.map +1 -1
  29. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
  30. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js +73 -0
  31. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
  32. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
  33. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js +73 -0
  34. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
  35. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
  36. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js +73 -0
  37. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
  38. package/src/cjs/utils/algorithms/solveApollonius3.d.ts +69 -0
  39. package/src/cjs/utils/algorithms/solveApollonius3.js +118 -0
  40. package/src/cjs/utils/algorithms/solveApollonius3.js.map +1 -0
  41. package/src/esm/Circle.d.ts +86 -3
  42. package/src/esm/Circle.js +179 -4
  43. package/src/esm/Circle.js.map +1 -1
  44. package/src/esm/CubicBezierCurve.d.ts +34 -3
  45. package/src/esm/CubicBezierCurve.js +79 -12
  46. package/src/esm/CubicBezierCurve.js.map +1 -1
  47. package/src/esm/Line.d.ts +46 -1
  48. package/src/esm/Line.js +80 -1
  49. package/src/esm/Line.js.map +1 -1
  50. package/src/esm/Triangle.d.ts +40 -4
  51. package/src/esm/Triangle.js +128 -32
  52. package/src/esm/Triangle.js.map +1 -1
  53. package/src/esm/VertTuple.d.ts +16 -2
  54. package/src/esm/VertTuple.js +20 -2
  55. package/src/esm/VertTuple.js.map +1 -1
  56. package/src/esm/Vertex.d.ts +25 -2
  57. package/src/esm/Vertex.js +44 -2
  58. package/src/esm/Vertex.js.map +1 -1
  59. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
  60. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js +69 -0
  61. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
  62. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
  63. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js +69 -0
  64. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
  65. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
  66. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js +69 -0
  67. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
  68. package/src/esm/utils/algorithms/solveApollonius3.d.ts +69 -0
  69. package/src/esm/utils/algorithms/solveApollonius3.js +114 -0
  70. package/src/esm/utils/algorithms/solveApollonius3.js.map +1 -0
  71. package/src/index-gl.js +6 -4
  72. package/src/index.js +25 -17
  73. package/src/ts/Circle.ts +200 -5
  74. package/src/ts/CubicBezierCurve.ts +133 -48
  75. package/src/ts/Line.ts +84 -1
  76. package/src/ts/Triangle.ts +148 -41
  77. package/src/ts/VertTuple.ts +29 -2
  78. package/src/ts/Vertex.ts +44 -2
  79. package/src/ts/utils/algorithms/minimalEnclosingCircleFromPoints.ts +69 -0
  80. package/src/ts/utils/algorithms/solveApollonius3.ts +132 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;IAiBI;AAEJ,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;;IAUI;AACJ,MAAM,OAAO,MAAM;IAsCjB;;;;;;;OAOG;IACH,YAAY,MAAc,EAAE,MAAc;QA7C1C;;YAEI;QACK,cAAS,GAAW,QAAQ,CAAC;QA2CpC,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;QAQI;IACJ,IAAI,CAAC,MAAgB;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,KAAe;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACnD,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,IAAoB;QAC/B,MAAM,kBAAkB,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAChE,CAAC;IAED;;;;;;;;QAQI;IACJ,MAAM,CAAC,KAAa;QAClB,mFAAmF;QACnF,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;QAUI;IACJ,SAAS,CAAC,KAAa;QACrB,MAAM,MAAM,GAAW,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,oFAAoF;QACpF,OAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAY,CAAC,IAAI,EAAY,CAAC;QAC1F,2FAA2F;IAC7F,CAAC;IAED,mDAAmD;IACnD;;;;;;;QAOI;IACJ,SAAS;QACP,OAAO,IAAI,MAAM,CACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EACvE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACxE,CAAC;IACJ,CAAC;IACD,iDAAiD;IAEjD;;;;;;;;QAQI;IACJ,kBAAkB,CAAC,MAAc;QAC/B,mCAAmC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,iDAAiD;QACjD,mFAAmF;QACnF,wDAAwD;QACxD,kDAAkD;QAClD,EAAE;QACF,2CAA2C;QAC3C,EAAE;QACF,+CAA+C;QAC/C,qBAAqB;QACrB,yBAAyB;QACzB,oBAAoB;QACpB,0BAA0B;QAC1B,sCAAsC;QACtC,0BAA0B;QAC1B,+CAA+C;QAC/C,2BAA2B;QAC3B,oCAAoC;QACpC,oCAAoC;QACpC,oCAAoC;QACpC,oCAAoC;QACpC,8DAA8D;QAC9D,IAAI;QACJ,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;QASI;IACJ,gBAAgB,CAAC,CAAS,EAAE,CAAW;QACrC,yBAAyB;QACzB,gEAAgE;QAChE,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAE5B,kFAAkF;QAClF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,IAAI,GAAa,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACjD,kFAAkF;QAClF,yDAAyD;QACzD,8CAA8C;QAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAW,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAW,IAAI,GAAG,IAAI,CAAC;QACxC,MAAM,aAAa,GAAW,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAExD,uDAAuD;QACvD,IAAI,aAAa,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAW,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;QAC9E,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;QAC5E,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;QAE5E,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;QACnE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;QAEnE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,mDAAmD;IACnD;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAAoB,EAAE,qBAA8B,KAAK;QACzE,6DAA6D;QAC7D,MAAM,eAAe,GAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,kBAAkB,EAAE,CAAC;YACvB,iCAAiC;YACjC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,wBAAwB,CAAC,IAAoB,EAAE,qBAA8B,KAAK;QAChF,mFAAmF;QACnF,MAAM,kBAAkB,GAAkB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC3F,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;YAC7C,kBAAkB;YAClB,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,KAAK,GAAW,cAAc,CAAC,KAAK,EAAE,CAAC;YAC7C,mDAAmD;YACnD,qDAAqD;YACrD,6BAA6B;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iDAAiD;IAEjD;;;;;;;;QAQI;IACJ,YAAY,CAAC,IAAc;QACzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,8FAA8F;YAC9F,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,CAAC;QACD,wBAAwB;QACxB,IAAI,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,OAAO,gBAAgB,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,gBAAgB,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;EASD,YAAY;AAPL,kBAAW,GAAG;IACnB,MAAM,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;QACxC;mDACkC;QAClC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;IACxE,CAAC;CACF,AANiB,CAMhB"}
1
+ {"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"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"}
@@ -32,8 +32,9 @@
32
32
  * @modified 2025-04-18 Added evaluation method for cubic Bézier curves `CubicBezierCurve.utils.evaluateT`.
33
33
  * @modified 2025-04-18 Refactored method `CubicBezierCurve.getPointAt` to use `evaluateT`.
34
34
  * @modified 2025-04-18 Fixed the `CubicBezierCurve.getBounds` method: now returning the real bounding box. Before it was an approximated one.
35
- * @modified 2025-ß4-18 Added helper methods for bounding box calculation `CubucBezierCurve.util.cubicPolyMinMax` and `cubicPoly`.
36
- * @version 2.9.0
35
+ * @modified 2025-04-18 Added helper methods for bounding box calculation `CubucBezierCurve.util.cubicPolyMinMax` and `cubicPoly`.
36
+ * @modified 2026-09-09 Adding methods `CubicBezierCurve.trimStartEnd` and `CubicBezierCurve.trimStartEndAt`.
37
+ * @version 2.10.0
37
38
  *
38
39
  * @file CubicBezierCurve
39
40
  * @public
@@ -401,6 +402,36 @@ export declare class CubicBezierCurve implements IBounded, Intersectable, PathSe
401
402
  * @returns {CubicBezierCurve} `this` for chanining.
402
403
  */
403
404
  trimEndAt(t: number): CubicBezierCurve;
405
+ /**
406
+ * Trim off a start and end section of this curve. The position parameters `uStart` and `uEnd` are the absolute positions in [0..arcLength].
407
+ * The remaining curve will be the one in the bounds `[uStart,uEnd]` (so `[0.0,uStart]` and `[uEnd,1.0]` are cut off).
408
+ *
409
+ * Parameters out of bounds (< 0.0 or > arcLength) are ignored.
410
+ * If `uEnd` is smaller than `uStart` then a curve with length zero (0) at `uStart` is returned.
411
+ *
412
+ * @method trimStartEndAt
413
+ * @instance
414
+ * @memberof CubicBezierCurve
415
+ * @param {number} tStart - The relative position parameter where to cut off the head curve.
416
+ * @param {number} tEnd - The relative position parameter where to cut off the tail curve.
417
+ * @returns {CubicBezierCurve} `this` for chanining.
418
+ */
419
+ trimStartEnd(uStart: number, uEnd: number): CubicBezierCurve;
420
+ /**
421
+ * Trim off a start and end section of this curve. The position parameters `tStart` and `tEnd` are the relative positions in [0..1].
422
+ * The remaining curve will be the one in the bounds `[tStart,tEnd]` (so `[0.0,tStart]` and `[tEnd,1.0]` are cut off).
423
+ *
424
+ * Parameters out of bounds (< 0.0 or > 1.0) are ignored.
425
+ * If `tEnd` is smaller than `tStart` then a curve with length zero (0) at `tStart` is returned.
426
+ *
427
+ * @method trimStartEndAt
428
+ * @instance
429
+ * @memberof CubicBezierCurve
430
+ * @param {number} tStart - The relative position parameter where to cut off the head curve.
431
+ * @param {number} tEnd - The relative position parameter where to cut off the tail curve.
432
+ * @returns {CubicBezierCurve} `this` for chanining.
433
+ */
434
+ trimStartEndAt(tStart: number, tEnd: number): CubicBezierCurve;
404
435
  /**
405
436
  * Get a sub curve at the given start end end positions (values on the curve's length, between 0 and curve.arcLength).
406
437
  *
@@ -612,7 +643,7 @@ export declare class CubicBezierCurve implements IBounded, Intersectable, PathSe
612
643
  * @param {number} tEnd – The end offset if the desired cub curve (must be in [0..1]).
613
644
  * @instance
614
645
  * @memberof CubicBezierCurve
615
- * @return {CubicBezierCurve} The sub curve as a new curve.
646
+ * @return {[Vertex, Vertex, Vertex, Vertex]} The sub curve as curve vertices.
616
647
  **/
617
648
  getSubCurvePointsAt: (curve: CubicBezierCurve, tStart: number, tEnd: number) => [Vertex, Vertex, Vertex, Vertex];
618
649
  /**
@@ -32,8 +32,9 @@
32
32
  * @modified 2025-04-18 Added evaluation method for cubic Bézier curves `CubicBezierCurve.utils.evaluateT`.
33
33
  * @modified 2025-04-18 Refactored method `CubicBezierCurve.getPointAt` to use `evaluateT`.
34
34
  * @modified 2025-04-18 Fixed the `CubicBezierCurve.getBounds` method: now returning the real bounding box. Before it was an approximated one.
35
- * @modified 2025-ß4-18 Added helper methods for bounding box calculation `CubucBezierCurve.util.cubicPolyMinMax` and `cubicPoly`.
36
- * @version 2.9.0
35
+ * @modified 2025-04-18 Added helper methods for bounding box calculation `CubucBezierCurve.util.cubicPolyMinMax` and `cubicPoly`.
36
+ * @modified 2026-09-09 Adding methods `CubicBezierCurve.trimStartEnd` and `CubicBezierCurve.trimStartEndAt`.
37
+ * @version 2.10.0
37
38
  *
38
39
  * @file CubicBezierCurve
39
40
  * @public
@@ -486,6 +487,7 @@ export class CubicBezierCurve {
486
487
  this.endControlPoint.set(subCurbePoints[3]);
487
488
  this.updateArcLengths();
488
489
  return this;
490
+ // return this.trimStartEndAt(t, null);
489
491
  }
490
492
  /**
491
493
  * Trim off the end of this curve. The position parameter `uValue` is the absolute position on the
@@ -521,7 +523,79 @@ export class CubicBezierCurve {
521
523
  this.endControlPoint.set(subCurbePoints[3]);
522
524
  this.updateArcLengths();
523
525
  return this;
526
+ // return this.trimStartEndAt(null, t);
524
527
  }
528
+ /**
529
+ * Trim off a start and end section of this curve. The position parameters `uStart` and `uEnd` are the absolute positions in [0..arcLength].
530
+ * The remaining curve will be the one in the bounds `[uStart,uEnd]` (so `[0.0,uStart]` and `[uEnd,1.0]` are cut off).
531
+ *
532
+ * Parameters out of bounds (< 0.0 or > arcLength) are ignored.
533
+ * If `uEnd` is smaller than `uStart` then a curve with length zero (0) at `uStart` is returned.
534
+ *
535
+ * @method trimStartEndAt
536
+ * @instance
537
+ * @memberof CubicBezierCurve
538
+ * @param {number} tStart - The relative position parameter where to cut off the head curve.
539
+ * @param {number} tEnd - The relative position parameter where to cut off the tail curve.
540
+ * @returns {CubicBezierCurve} `this` for chanining.
541
+ */
542
+ trimStartEnd(uStart, uEnd) {
543
+ return this.trimStartEndAt(this.convertU2T(uStart), this.convertU2T(uEnd));
544
+ }
545
+ /**
546
+ * Trim off a start and end section of this curve. The position parameters `tStart` and `tEnd` are the relative positions in [0..1].
547
+ * The remaining curve will be the one in the bounds `[tStart,tEnd]` (so `[0.0,tStart]` and `[tEnd,1.0]` are cut off).
548
+ *
549
+ * Parameters out of bounds (< 0.0 or > 1.0) are ignored.
550
+ * If `tEnd` is smaller than `tStart` then a curve with length zero (0) at `tStart` is returned.
551
+ *
552
+ * @method trimStartEndAt
553
+ * @instance
554
+ * @memberof CubicBezierCurve
555
+ * @param {number} tStart - The relative position parameter where to cut off the head curve.
556
+ * @param {number} tEnd - The relative position parameter where to cut off the tail curve.
557
+ * @returns {CubicBezierCurve} `this` for chanining.
558
+ */
559
+ trimStartEndAt(tStart, tEnd) {
560
+ const cleanTrimStart = Math.min(Math.max(0.0, tStart), 1.0);
561
+ const cleanTrimEnd = Math.min(Math.max(cleanTrimStart, tEnd), 1.0);
562
+ this.trimStartAt(cleanTrimStart);
563
+ const relativeTrimEnd = (cleanTrimEnd - cleanTrimStart) / (1.0 - cleanTrimStart);
564
+ this.trimEndAt(relativeTrimEnd);
565
+ return this;
566
+ }
567
+ // __trimStartEndAt(tStart: number, tEnd: number): CubicBezierCurve {
568
+ // var finalCurvePoints = [
569
+ // this.startPoint.clone(),
570
+ // this.endPoint.clone(),
571
+ // this.startControlPoint.clone(),
572
+ // this.endControlPoint.clone()
573
+ // ];
574
+ // if (typeof tStart === "number" && !Number.isNaN(tStart)) {
575
+ // const subCurvePointsStart = CubicBezierCurve.utils.getSubCurvePointsAt(this, tStart, 1.0);
576
+ // finalCurvePoints[0].set(subCurvePointsStart[0]);
577
+ // finalCurvePoints[2].set(subCurvePointsStart[2]);
578
+ // // this.startPoint.set(subCurvePointsStart[0]);
579
+ // // this.startControlPoint.set(subCurvePointsStart[2]);
580
+ // // this.endPoint.set(subCurvePointsStart[1]);
581
+ // // this.endControlPoint.set(subCurvePointsStart[3]);
582
+ // }
583
+ // if (typeof tEnd === "number" && !Number.isNaN(tEnd)) {
584
+ // const subCurvePointsEnd = CubicBezierCurve.utils.getSubCurvePointsAt(this, 0.0, tEnd);
585
+ // // this.startPoint.set(subCurvePointsEnd[0]);
586
+ // // this.startControlPoint.set(subCurvePointsEnd[2]);
587
+ // // this.endPoint.set(subCurvePointsEnd[1]);
588
+ // // this.endControlPoint.set(subCurvePointsEnd[3]);
589
+ // finalCurvePoints[1].set(subCurvePointsEnd[1]);
590
+ // finalCurvePoints[3].set(subCurvePointsEnd[3]);
591
+ // }
592
+ // this.startPoint.set(finalCurvePoints[0]);
593
+ // this.endPoint.set(finalCurvePoints[1]);
594
+ // this.startControlPoint.set(finalCurvePoints[2]);
595
+ // this.endControlPoint.set(finalCurvePoints[3]);
596
+ // this.updateArcLengths();
597
+ // return this;
598
+ // }
525
599
  /**
526
600
  * Get a sub curve at the given start end end positions (values on the curve's length, between 0 and curve.arcLength).
527
601
  *
@@ -873,10 +947,7 @@ CubicBezierCurve.END_POINT = 3;
873
947
  */
874
948
  CubicBezierCurve.utils = {
875
949
  evaluateT: (p0, p1, p2, p3, t) => {
876
- return p0 * Math.pow(1.0 - t, 3) +
877
- p1 * 3 * t * Math.pow(1.0 - t, 2) +
878
- p2 * 3 * Math.pow(t, 2) * (1.0 - t) +
879
- p3 * Math.pow(t, 3);
950
+ return (p0 * Math.pow(1.0 - t, 3) + p1 * 3 * t * Math.pow(1.0 - t, 2) + p2 * 3 * Math.pow(t, 2) * (1.0 - t) + p3 * Math.pow(t, 3));
880
951
  },
881
952
  cubicPolyMinMax: (p0, p1, p2, p3) => {
882
953
  // var polyX = CubicBezierCurve.utils.cubicPoly2(
@@ -948,7 +1019,7 @@ CubicBezierCurve.utils = {
948
1019
  * @param {number} tEnd – The end offset if the desired cub curve (must be in [0..1]).
949
1020
  * @instance
950
1021
  * @memberof CubicBezierCurve
951
- * @return {CubicBezierCurve} The sub curve as a new curve.
1022
+ * @return {[Vertex, Vertex, Vertex, Vertex]} The sub curve as curve vertices.
952
1023
  **/
953
1024
  getSubCurvePointsAt: (curve, tStart, tEnd) => {
954
1025
  const startVec = new Vector(curve.getPointAt(tStart), curve.getTangentAt(tStart));
@@ -1037,11 +1108,7 @@ CubicBezierCurve.utils = {
1037
1108
  * @returns {[number,number,number]}
1038
1109
  */
1039
1110
  cubicPoly: (p0, p1, p2, p3) => {
1040
- return [
1041
- 3 * p3 - 9 * p2 + 9 * p1 - 3 * p0,
1042
- 6 * p0 - 12 * p1 + 6 * p2,
1043
- 3 * p1 - 3 * p0
1044
- ];
1111
+ return [3 * p3 - 9 * p2 + 9 * p1 - 3 * p0, 6 * p0 - 12 * p1 + 6 * p2, 3 * p1 - 3 * p0];
1045
1112
  },
1046
1113
  /**
1047
1114
  * sign of number, but is division safe: no zero returned :)
@@ -1 +1 @@
1
- {"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCI;AAEJ,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC;;;;;;;;;GASG;AACH,MAAM,OAAO,gBAAgB;IA6F3B;;;;;;;;;QASI;IACJ,YAAY,UAAkB,EAAE,QAAgB,EAAE,iBAAyB,EAAE,eAAuB;QA7FpG,yBAAyB;QAChB,gBAAW,GAAW,gBAAgB,CAAC,WAAW,CAAC;QAC5D,yBAAyB;QAChB,wBAAmB,GAAW,gBAAgB,CAAC,mBAAmB,CAAC;QAC5E,yBAAyB;QAChB,sBAAiB,GAAW,gBAAgB,CAAC,iBAAiB,CAAC;QACxE,yBAAyB;QAChB,cAAS,GAAW,gBAAgB,CAAC,SAAS,CAAC;QAuFtD,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,uBAAuB;QACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,qBAAqB;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,QAAQ;QACR,yBAAyB;QAEzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;QAYI;IACJ,cAAc,CAAC,OAAe,EAAE,UAAoB,EAAE,gBAAyB,EAAE,gBAAyB;QACxG,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,gBAAgB;gBAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,gBAAgB;gBAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,8CAA8C,OAAO,YAAY,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,gBAAgB;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;;;QAQI;IACJ,SAAS,CAAC,MAAgB;QACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;QAQI;IACJ,IAAI,CAAC,MAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;QAQI;IACJ,OAAO;QACL,IAAI,GAAG,GAAW,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;QAcI;IACJ,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,gBAAgB;QACd,IAAI,MAAM,GAAW,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAW,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,SAAS,GAAW,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;QAElD,sBAAsB;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,+BAA+B;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,SAAS,GAAW,GAAG,CAAC;QAE5B,IAAI,CAAC,GAAW,GAAG,CAAC;QACpB,IAAI,SAAiB,CAAC;QACtB,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE5B,yBAAyB;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/B,2BAA2B;YAC3B,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,SAAS,IAAI,SAAS,CAAC;YAEvB,MAAM,GAAG,MAAM,CAAC;YAChB,CAAC,IAAI,SAAS,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;QAYI;IACJ,WAAW,CAAC,CAAS;QACnB,6DAA6D;QAC7D,IAAI,cAAc,GAAW,GAAG,CAAC;QAEjC,IAAI,MAAM,GAAgD,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC3F,IAAI,SAAS,GAAW,CAAC,CAAC;QAC1B,GAAG,CAAC;YACF,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3F,SAAS,EAAE,CAAC;YACZ,mCAAmC;QACrC,CAAC,QAAQ,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,EAAE;QAClH,OAAO,MAAM,CAAC,CAAC,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;QAaI;IACI,wBAAwB,CAC9B,CAAS,EACT,MAAc,EACd,IAAY,EACZ,SAAiB;QAEjB,IAAI,QAAQ,GAAW,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,GAAW,CAAC,CAAC;QACxB,IAAI,CAAC,GAAW,GAAG,CAAC;QACpB,MAAM,KAAK,GAAW,IAAI,GAAG,MAAM,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;YACrC,IAAI,IAAI,GAAW,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;gBACrC,QAAQ,GAAG,CAAC,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO;YACL,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1C,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;YAC/D,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;SACxE,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C;;;;;;;;;;QAUI;IACJ,SAAS;QACP,0DAA0D;QAC1D,6CAA6C;QAE3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,CACpD,IAAI,CAAC,UAAU,CAAC,CAAC,EACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EACxB,IAAI,CAAC,eAAe,CAAC,CAAC,EACtB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAChB,CAAC;QACF,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvB,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,CACpD,IAAI,CAAC,UAAU,CAAC,CAAC,EACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EACxB,IAAI,CAAC,eAAe,CAAC,CAAC,EACtB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAChB,CAAC;QACF,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvB,OAAO,MAAM,CAAC,mBAAmB,CAAC;YAChC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAChB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAChB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAChB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SACjB,CAAC,CAAC;IACP,CAAC;IACD,4CAA4C;IAE5C;;;;;;;;;QASI;IACJ,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;;QASI;IACJ,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;;;QASI;IACJ,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;;;;QASI;IACJ,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;QAQI;IACJ,YAAY,CAAC,EAAU;QACrB,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QACnD,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAC/C,IAAI,EAAE,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAClE,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,UAAU,CAAC,CAAS;QAClB,mCAAmC;QACnC,gBAAgB;QAChB,oBAAoB;QACpB,+CAA+C;QAC/C,8DAA8D;QAC9D,8DAA8D;QAC9D,sCAAsC;QACtC,oBAAoB;QACpB,+CAA+C;QAC/C,8DAA8D;QAC9D,8DAA8D;QAC9D,sCAAsC;QACtC,MAAM,CAAC,GAAW,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5I,MAAM,CAAC,GAAW,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5I,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,QAAQ,CAAC,CAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;QAUI;IACJ,YAAY,CAAC,CAAS;QACpB,MAAM,CAAC,GAAW,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,CAAC,GAAW,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAW,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,4BAA4B;QAC5B,MAAM,EAAE,GAAW,CAAC,GAAG,CAAC,CAAC;QACzB,4DAA4D;QAC5D,MAAM,GAAG,GAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAEnC,MAAM,EAAE,GAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClH,MAAM,EAAE,GAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAElH,8DAA8D;QAC9D,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,CAAS;QACnB,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,CAAS;QACjB,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,WAAW,CAAC,MAAc,EAAE,IAAY;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,aAAa,CAAC,MAAc,EAAE,IAAY;QACxC,mDAAmD;QACnD,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtF,OAAO,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED;;;;;;;;QAQI;IACJ,UAAU,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;QAUI;IACJ,UAAU,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;QAUI;IACJ,gBAAgB,CAAC,CAAS;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;QAUI;IACJ,kBAAkB,CAAC,CAAS;QAC1B,MAAM,aAAa,GAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;QAOI;IACJ,KAAK;QACH,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAC5B,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAClC,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,6CAA6C;IAE7C,mDAAmD;IACnD;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAAoB,EAAE,qBAA8B,KAAK;QACzE,MAAM,cAAc,GAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,kBAAkB,GAAa,cAAc,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;YACpE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,kBAAkB,EAAE,CAAC;YACvB,iCAAiC;YACjC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,OAAO,kBAAkB,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,wBAAwB,CAAC,IAAoB,EAAE,qBAA8B,KAAK;QAChF,MAAM,cAAc,GAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,oBAAoB,GAAkB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;YAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,OAAO,oBAAoB,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,iDAAiD;IAEjD,kBAAkB,CAAC,IAAoB;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QACvC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QACvC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAEtG,qDAAqD;QACrD,qDAAqD;QACrD,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,EACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EACxB,IAAI,CAAC,eAAe,CAAC,CAAC,EACtB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAChB,CAAC;QACF,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,EACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EACxB,IAAI,CAAC,eAAe,CAAC,CAAC,EACtB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAChB,CAAC;QAEF,MAAM,IAAI,GAAa,KAAK,CAAS,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;QACxC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;QACxC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QACtC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;QAE1C,IAAI,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;QAYI;IACJ,MAAM,CAAC,KAAmC;QACxC,gFAAgF;QAChF,wDAAwD;QACxD,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QAC7G,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;;;QASI;IACJ,MAAM,CAAC,UAAU,CAAC,GAAQ;QACxB,yBAAyB;QACzB,mCAAmC;QACnC;;;;;;;;;UASD;QACC,OAAO,GAAG,YAAY,gBAAgB,CAAC;IACzC,CAAC;IAED;;;;;;;;QAQI;IACJ,MAAM,CAAC,YAAqB;QAC1B,IAAI,UAAU,GACZ,IAAI,GAAG,eAAe;YACtB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,kBAAkB;YAClB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACtB,GAAG;YACH,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACtB,KAAK;YACL,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,gBAAgB;YAChB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACpB,GAAG;YACH,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACpB,KAAK;YACL,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,wBAAwB;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC7B,GAAG;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC7B,KAAK;YACL,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,uBAAuB;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC3B,GAAG;YACH,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,aAAa;QACrB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;QASI;IACJ,MAAM,CAAC,QAAQ,CAAC,UAAkB;QAChC,IAAI,GAAG,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;QASI;IACJ,MAAM,CAAC,UAAU,CAAC,GAAQ;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,MAAM,6BAA6B,CAAC;QAEjE,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,MAAM,qCAAqC,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,MAAM,mCAAmC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,MAAM,4CAA4C,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,MAAM,0CAA0C,CAAC;QAE3E,OAAO,IAAI,gBAAgB,CACzB,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAChD,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC5C,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC9D,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED;;;;;;;;QAQI;IACJ,MAAM,CAAC,SAAS,CAAC,GAAkB;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,MAAM,6BAA6B,CAAC;QAC7D,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM,+CAA+C,CAAC;QAC3E,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;;AAp8BD,yBAAyB;AACT,4BAAW,GAAW,CAAC,AAAZ,CAAa;AACxC,yBAAyB;AACT,oCAAmB,GAAW,CAAC,AAAZ,CAAa;AAChD,yBAAyB;AACT,kCAAiB,GAAW,CAAC,AAAZ,CAAa;AAC9C,yBAAyB;AACT,0BAAS,GAAW,CAAC,AAAZ,CAAa;AA+7BtC;;GAEG;AACW,sBAAK,GAAG;IAEpB,SAAS,EAAE,CAAC,EAAS,EAAE,EAAS,EAAE,EAAS,EAAE,EAAS,EAAE,CAAQ,EAAW,EAAE;QAC3E,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACnC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,eAAe,EAAE,CAAC,EAAS,EAAE,EAAS,EAAE,EAAS,EAAE,EAAS,EAAgC,EAAE;QAC5F,iDAAiD;QACjD,gDAAgD;QAChD,uDAAuD;QACvD,qDAAqD;QACrD,2CAA2C;QAC3C,KAAK;QAEL,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,wDAAwD;QAGxD,IAAI,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAC1C,EAAE,EAAE,uCAAuC;QAC3C,EAAE,EAAE,8CAA8C;QAClD,EAAE,EAAE,4CAA4C;QAChD,EAAE,CAAC,mCAAmC;SACvC,CAAC;QACF,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;QACxB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;QACxB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;QACxB,4BAA4B;QAC5B,gCAAgC;QAChC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAGzD,gEAAgE;QAChE,+BAA+B;QAC/B,2BAA2B;QAC3B,0BAA0B;QAC1B,4DAA4D;QAE5D,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;QACrC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;QACrC,gCAAgC;QAChC,gCAAgC;QAChC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACd,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,qBAAqB;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrB,4BAA4B;gBAC5B,oCAAoC;gBACpC,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,2BAA2B;gBAE1F,IAAI,EAAE,GAAG,EAAE;oBAAE,EAAE,GAAG,EAAE,CAAC;gBACrB,IAAI,EAAE,GAAG,EAAE;oBAAE,EAAE,GAAG,EAAE,CAAC;YACvB,CAAC;YAED,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,qBAAqB;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrB,4BAA4B;gBAC5B,oCAAoC;gBACpC,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjE,IAAI,EAAE,GAAG,EAAE;oBAAE,EAAE,GAAG,EAAE,CAAC;gBACrB,IAAI,EAAE,GAAG,EAAE;oBAAE,EAAE,GAAG,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;QAYI;IACJ,mBAAmB,EAAE,CAAC,KAAuB,EAAE,MAAc,EAAE,IAAY,EAAoC,EAAE;QAC/G,MAAM,QAAQ,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1F,wCAAwC;QACxC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,mDAAmD;QACnD,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAE3C,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,CAAC,IAAc,EAAY,EAAE;QACvC,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1B,MAAM,CAAC,GAAW,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,GAAW,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,GAAW,CAAC,GAAG,CAAC,CAAC;QAExB,IAAI,CAAS,EAAE,CAAS,EAAE,EAAU,CAAC;QAErC,MAAM,CAAC,GAAW,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACjE,MAAM,CAAC,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;QAE7E,MAAM,EAAE,GAAkB,EAAE,CAAC,CAAC,WAAW;QAEzC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACX,6BAA6B;YAC7B,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/F,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAE/F,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY;YACtC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,4BAA4B;YAC1D,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,4BAA4B;YAC1D,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B;YAEzE,qCAAqC;YACrC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACZ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACX,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACb,CAAC;QACH,CAAC,CAAC,sBAAsB;aACnB,CAAC;YACJ,MAAM,EAAE,GAAW,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7D,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrD,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrE,EAAE,GAAG,GAAG,CAAC;QACX,CAAC;QAED,gDAAgD;QAChD,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAiC,EAAE;QAC9F,MAAM,MAAM,GAAoC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,CAAC,WAAW;QAC9E,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,EAAE,CAAC,EAAS,EAAE,EAAS,EAAE,EAAS,EAAE,EAAS,EAA2B,EAAE;QACjF,OAAO;YACJ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;YACjC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;YACzB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;SACjB,CAAA;IACH,CAAC;IAGD;;OAEG;IACH,GAAG,CAAC,CAAS;QACX,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF,AA3MkB,CA2MjB"}
1
+ {"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
package/src/esm/Line.d.ts CHANGED
@@ -18,7 +18,8 @@
18
18
  * @modified 2023-09-25 Changed param type of `intersection()` from Line to VertTuple.
19
19
  * @modified 2025-04-15 Class `Line` now implements interface `Intersectable`.
20
20
  * @modified 2025-04-16 Class `Line` now implements interface `IBounded`.
21
- * @version 2.4.0
21
+ * @modified 2026-08-16 Adding methods `Line.trimStart` and `Line.trimEnd`. Adding methods `Line.trimStartAt` and `Line.trimEndAt`.
22
+ * @version 2.5.0
22
23
  *
23
24
  * @file Line
24
25
  * @public
@@ -109,6 +110,50 @@ export declare class Line extends VertTuple<Line> implements IBounded, Intersect
109
110
  * @return {PathSegment} This path segment instance (for chaining).
110
111
  */
111
112
  reverse(): Line;
113
+ /**
114
+ * Trim this line segment from the start point by the given amount.
115
+ * The amount must be positive and should be withing the segment's length. If the amount exceeds the segment's length
116
+ * then the length of the resulting line will be zero (0.0).
117
+ *
118
+ * @method trimStart
119
+ * @memberof Line
120
+ * @param {number} amount - The positive amount to trim the line from the start point `a`.
121
+ * @returns {Line} This for chaining, with updated point `a`.
122
+ */
123
+ trimStart(amount: number): this;
124
+ /**
125
+ * Trim this line segment from the start point by the given relative amount.
126
+ * The amount must be positive and should be within 0.0 and 1.0. If the amount exceeds the segment's length
127
+ * then the length of the resulting line will be zero (0.0).
128
+ *
129
+ * @method trimStartAt
130
+ * @memberof Line
131
+ * @param {number} amount - The positive amount to trim the line from the start point `a`.
132
+ * @returns {Line} This for chaining, with updated point `a`.
133
+ */
134
+ trimStartAt(relativeAmount: number): this;
135
+ /**
136
+ * Trim this line segment from the end point by the given amount.
137
+ * The amount must be positive and should be withing the segment's length. If the amount exceeds the segment's length
138
+ * then the length of the resulting line will be zero (0.0).
139
+ *
140
+ * @method trimEnd
141
+ * @memberof Line
142
+ * @param {number} amount - The positive amount to trim the line from the end point `b`.
143
+ * @returns {Line} This for chaining, with updated point `b`.
144
+ */
145
+ trimEnd(amount: number): this;
146
+ /**
147
+ * Trim this line segment from the end point by the given relative amount.
148
+ * The amount must be positive and should be within 0.0 and 1.0. If the amount exceeds the segment's length
149
+ * then the length of the resulting line will be zero (0.0).
150
+ *
151
+ * @method trimEndAt
152
+ * @memberof Line
153
+ * @param {number} amount - The positive amount to trim the line from the start point `a`.
154
+ * @returns {Line} This for chaining, with updated point `a`.
155
+ */
156
+ trimEndAt(relativeAmount: number): this;
112
157
  /**
113
158
  * Get all line intersections with this polygon.
114
159
  *
package/src/esm/Line.js CHANGED
@@ -18,7 +18,8 @@
18
18
  * @modified 2023-09-25 Changed param type of `intersection()` from Line to VertTuple.
19
19
  * @modified 2025-04-15 Class `Line` now implements interface `Intersectable`.
20
20
  * @modified 2025-04-16 Class `Line` now implements interface `IBounded`.
21
- * @version 2.4.0
21
+ * @modified 2026-08-16 Adding methods `Line.trimStart` and `Line.trimEnd`. Adding methods `Line.trimStartAt` and `Line.trimEndAt`.
22
+ * @version 2.5.0
22
23
  *
23
24
  * @file Line
24
25
  * @public
@@ -149,6 +150,84 @@ export class Line extends VertTuple {
149
150
  return this;
150
151
  }
151
152
  //--- END Implement PathSegment ---
153
+ /**
154
+ * Trim this line segment from the start point by the given amount.
155
+ * The amount must be positive and should be withing the segment's length. If the amount exceeds the segment's length
156
+ * then the length of the resulting line will be zero (0.0).
157
+ *
158
+ * @method trimStart
159
+ * @memberof Line
160
+ * @param {number} amount - The positive amount to trim the line from the start point `a`.
161
+ * @returns {Line} This for chaining, with updated point `a`.
162
+ */
163
+ trimStart(amount) {
164
+ // Calculate the relative position `t` on this line.
165
+ var t = amount / this.length();
166
+ // `t` should be inside 0..1 – otherwise the amount was too large or negative.
167
+ if (t < 0.0) {
168
+ return this;
169
+ }
170
+ if (t > 1.0) {
171
+ // Set the line to length zero (endpoint only)
172
+ this.a = this.b.clone();
173
+ return this;
174
+ }
175
+ this.a = this.vertAt(t);
176
+ return this;
177
+ }
178
+ /**
179
+ * Trim this line segment from the start point by the given relative amount.
180
+ * The amount must be positive and should be within 0.0 and 1.0. If the amount exceeds the segment's length
181
+ * then the length of the resulting line will be zero (0.0).
182
+ *
183
+ * @method trimStartAt
184
+ * @memberof Line
185
+ * @param {number} amount - The positive amount to trim the line from the start point `a`.
186
+ * @returns {Line} This for chaining, with updated point `a`.
187
+ */
188
+ trimStartAt(relativeAmount) {
189
+ // Calculate the relative position `t` on this line.
190
+ return this.trimStart(relativeAmount * this.length());
191
+ }
192
+ /**
193
+ * Trim this line segment from the end point by the given amount.
194
+ * The amount must be positive and should be withing the segment's length. If the amount exceeds the segment's length
195
+ * then the length of the resulting line will be zero (0.0).
196
+ *
197
+ * @method trimEnd
198
+ * @memberof Line
199
+ * @param {number} amount - The positive amount to trim the line from the end point `b`.
200
+ * @returns {Line} This for chaining, with updated point `b`.
201
+ */
202
+ trimEnd(amount) {
203
+ // Calculate the relative position `t` on this line.
204
+ var t = 1.0 - amount / this.length();
205
+ // `t` should be inside 0..1 – otherwise the amount was too large or negative.
206
+ if (t < 0.0) {
207
+ return this;
208
+ }
209
+ if (t > 1.0) {
210
+ // Set the line to length zero (endpoint only)
211
+ this.b = this.a.clone();
212
+ return this;
213
+ }
214
+ this.b = this.vertAt(t);
215
+ return this;
216
+ }
217
+ /**
218
+ * Trim this line segment from the end point by the given relative amount.
219
+ * The amount must be positive and should be within 0.0 and 1.0. If the amount exceeds the segment's length
220
+ * then the length of the resulting line will be zero (0.0).
221
+ *
222
+ * @method trimEndAt
223
+ * @memberof Line
224
+ * @param {number} amount - The positive amount to trim the line from the start point `a`.
225
+ * @returns {Line} This for chaining, with updated point `a`.
226
+ */
227
+ trimEndAt(relativeAmount) {
228
+ // Calculate the relative position `t` on this line.
229
+ return this.trimEnd(relativeAmount * this.length());
230
+ }
152
231
  //--- BEGIN --- Implement interface `Intersectable`
153
232
  /**
154
233
  * Get all line intersections with this polygon.
@@ -1 +1 @@
1
- {"version":3,"file":"Line.js","sourceRoot":"","sources":["../ts/Line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Line.js","sourceRoot":"","sources":["../ts/Line.ts"],"names":[],"mappings":"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"}
@@ -27,14 +27,17 @@
27
27
  * @modified 2025-14-16 Class `Triangle` now implements interface `IBounded`.
28
28
  * @modified 2025-14-16 Class `Triangle` now implements interface `Intersectable`.
29
29
  * @modified 2025-14-16 Added method `Triangle.move`.
30
- * @version 2.10.0
30
+ * @modified 2026-06-10 Refactoring the `Trianble.bounds` method and added a plain `Triangle.utils.bounds` method.
31
+ * @modified 2026-06-10 Refactoring the `Trianble.calcCircumCircle` method and added a plain `Triangle.utils.calcCircumCircle` method.
32
+ * @modified 2026-06-13 Adding `Triangle.getVertices()`.
33
+ * @version 2.11.0
31
34
  *
32
35
  * @file Triangle
33
36
  * @fileoverview A simple triangle class: three vertices.
34
37
  * @public
35
38
  **/
36
39
  import { Bounds } from "./Bounds";
37
- import { Circle } from "./Circle";
40
+ import { Circle, ICircle } from "./Circle";
38
41
  import { Line } from "./Line";
39
42
  import { Polygon } from "./Polygon";
40
43
  import { Vector } from "./Vector";
@@ -212,11 +215,21 @@ export declare class Triangle implements IBounded, SVGSerializable, Intersectabl
212
215
  * after triangle vertex changes.
213
216
  *
214
217
  * @method getCircumcircle
215
- * @return {Object} - { center:Vertex, radius:float }
218
+ * @return {Circle} - The circle touching exactly all three triangle vertices.
216
219
  * @instance
217
220
  * @memberof Triangle
218
221
  */
219
222
  getCircumcircle(): Circle;
223
+ /**
224
+ * Calculates the minimun enclosing circle.
225
+ *
226
+ * @method getMinimumEnclosingCircle
227
+ * @return {Object} - { center:Vertex, radius:float }
228
+ * @instance
229
+ * @memberof Triangle
230
+ * @returns
231
+ */
232
+ getMinimumEnclosingCircle(): Circle;
220
233
  /**
221
234
  * Check if this triangle and the passed triangle share an
222
235
  * adjacent edge.
@@ -243,6 +256,15 @@ export declare class Triangle implements IBounded, SVGSerializable, Intersectabl
243
256
  * @memberof Triangle
244
257
  */
245
258
  getThirdVertex(vert1: Vertex, vert2: Vertex): Vertex;
259
+ /**
260
+ * Get the three triangele vertices in a 3-element array.
261
+ *
262
+ * @method getVertices
263
+ * @returns {[Vertex, Vertex, Vertex]} - The three vertices – real instances, not copies.
264
+ * @instance
265
+ * @memberof Triangle
266
+ */
267
+ getVertices(): [Vertex, Vertex, Vertex];
246
268
  /**
247
269
  * Re-compute the circumcircle of this triangle (if the vertices
248
270
  * have changed).
@@ -387,6 +409,20 @@ export declare class Triangle implements IBounded, SVGSerializable, Intersectabl
387
409
  * @param {XYCords} c - The first vertex.
388
410
  * @returns {nmber}
389
411
  */
390
- determinant(a: XYCoords, b: XYCoords, c: XYCoords): number;
412
+ determinant: (a: XYCoords, b: XYCoords, c: XYCoords) => number;
413
+ bounds: (a: XYCoords, b: XYCoords, c: XYCoords) => Bounds;
414
+ /**
415
+ * Re-compute the circumcircle of this triangle (if the vertices
416
+ * have changed).
417
+ *
418
+ * The circumcenter and radius are stored in this.center and
419
+ * this.radius. There is a third result: radius_squared (for internal computations).
420
+ *
421
+ * @method calcCircumcircle
422
+ * @return void
423
+ * @instance
424
+ * @memberof Triangle
425
+ */
426
+ calcCircumcircle: (a: XYCoords, b: XYCoords, c: XYCoords) => ICircle;
391
427
  };
392
428
  }