@itwin/core-geometry 3.5.0-dev.49 → 3.5.0-dev.51

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 (131) hide show
  1. package/lib/cjs/bspline/BSplineCurve.d.ts +9 -3
  2. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  3. package/lib/cjs/bspline/BSplineCurve.js +12 -4
  4. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  5. package/lib/cjs/bspline/BezierCurveBase.d.ts +10 -3
  6. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  7. package/lib/cjs/bspline/BezierCurveBase.js +12 -4
  8. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  9. package/lib/cjs/curve/Arc3d.d.ts +8 -2
  10. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  11. package/lib/cjs/curve/Arc3d.js +11 -2
  12. package/lib/cjs/curve/Arc3d.js.map +1 -1
  13. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +8 -2
  14. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  15. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -0
  16. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  17. package/lib/cjs/curve/CurveCollection.d.ts +9 -2
  18. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  19. package/lib/cjs/curve/CurveCollection.js +9 -0
  20. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  21. package/lib/cjs/curve/CurveCurveIntersectXY.js +1 -1
  22. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
  23. package/lib/cjs/curve/CurvePrimitive.d.ts +8 -2
  24. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  25. package/lib/cjs/curve/CurvePrimitive.js +8 -0
  26. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  27. package/lib/cjs/curve/LineSegment3d.d.ts +8 -2
  28. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  29. package/lib/cjs/curve/LineSegment3d.js +9 -0
  30. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  31. package/lib/cjs/curve/LineString3d.d.ts +7 -1
  32. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  33. package/lib/cjs/curve/LineString3d.js +9 -0
  34. package/lib/cjs/curve/LineString3d.js.map +1 -1
  35. package/lib/cjs/curve/ProxyCurve.d.ts +9 -7
  36. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  37. package/lib/cjs/curve/ProxyCurve.js +4 -0
  38. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  39. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +2 -1
  40. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  41. package/lib/cjs/curve/Query/PlanarSubdivision.js +5 -4
  42. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  43. package/lib/cjs/curve/RegionOps.d.ts +5 -0
  44. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  45. package/lib/cjs/curve/RegionOps.js +16 -3
  46. package/lib/cjs/curve/RegionOps.js.map +1 -1
  47. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +8 -6
  48. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  49. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +56 -47
  50. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  51. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +29 -8
  52. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  53. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +64 -10
  54. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  55. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +12 -7
  56. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  57. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +12 -3
  58. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  59. package/lib/cjs/geometry3d/Range.d.ts +1 -1
  60. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  61. package/lib/cjs/geometry3d/Range.js +1 -1
  62. package/lib/cjs/geometry3d/Range.js.map +1 -1
  63. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  64. package/lib/cjs/topology/Merging.js +9 -1
  65. package/lib/cjs/topology/Merging.js.map +1 -1
  66. package/lib/esm/bspline/BSplineCurve.d.ts +9 -3
  67. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  68. package/lib/esm/bspline/BSplineCurve.js +12 -4
  69. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  70. package/lib/esm/bspline/BezierCurveBase.d.ts +10 -3
  71. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  72. package/lib/esm/bspline/BezierCurveBase.js +12 -4
  73. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  74. package/lib/esm/curve/Arc3d.d.ts +8 -2
  75. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  76. package/lib/esm/curve/Arc3d.js +11 -2
  77. package/lib/esm/curve/Arc3d.js.map +1 -1
  78. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +8 -2
  79. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  80. package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -0
  81. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  82. package/lib/esm/curve/CurveCollection.d.ts +9 -2
  83. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  84. package/lib/esm/curve/CurveCollection.js +9 -0
  85. package/lib/esm/curve/CurveCollection.js.map +1 -1
  86. package/lib/esm/curve/CurveCurveIntersectXY.js +1 -1
  87. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
  88. package/lib/esm/curve/CurvePrimitive.d.ts +8 -2
  89. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  90. package/lib/esm/curve/CurvePrimitive.js +8 -0
  91. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  92. package/lib/esm/curve/LineSegment3d.d.ts +8 -2
  93. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  94. package/lib/esm/curve/LineSegment3d.js +9 -0
  95. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  96. package/lib/esm/curve/LineString3d.d.ts +7 -1
  97. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  98. package/lib/esm/curve/LineString3d.js +9 -0
  99. package/lib/esm/curve/LineString3d.js.map +1 -1
  100. package/lib/esm/curve/ProxyCurve.d.ts +9 -7
  101. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  102. package/lib/esm/curve/ProxyCurve.js +4 -0
  103. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  104. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +2 -1
  105. package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  106. package/lib/esm/curve/Query/PlanarSubdivision.js +5 -4
  107. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  108. package/lib/esm/curve/RegionOps.d.ts +5 -0
  109. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  110. package/lib/esm/curve/RegionOps.js +16 -3
  111. package/lib/esm/curve/RegionOps.js.map +1 -1
  112. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +8 -6
  113. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  114. package/lib/esm/curve/RegionOpsClassificationSweeps.js +57 -48
  115. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  116. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +29 -8
  117. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  118. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +64 -10
  119. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  120. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +12 -7
  121. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  122. package/lib/esm/curve/spiral/TransitionSpiral3d.js +12 -3
  123. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  124. package/lib/esm/geometry3d/Range.d.ts +1 -1
  125. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  126. package/lib/esm/geometry3d/Range.js +1 -1
  127. package/lib/esm/geometry3d/Range.js.map +1 -1
  128. package/lib/esm/topology/Merging.d.ts.map +1 -1
  129. package/lib/esm/topology/Merging.js +9 -1
  130. package/lib/esm/topology/Merging.js.map +1 -1
  131. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"PlaneAltitudeRangeContext.js","sourceRoot":"","sources":["../../../../src/curve/internalContexts/PlaneAltitudeRangeContext.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AACH,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAY,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAI7F;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,8BAA8B;IAK3E,YAAoB,KAA6B;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEM,aAAa,CAAC,KAAc;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAEM,cAAc,CAAC,MAAwB;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,MAAM,CAAC,mCAAmC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3E,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9E;IACH,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,KAA6B;QACvD,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEe,mBAAmB,CAAC,OAAsB;QACxD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAEe,kBAAkB,CAAC,UAAwB;QACzD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAEe,oBAAoB,CAAC,MAAsB;QACzD,kFAAkF;QAClF,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IACe,qBAAqB,CAAC,MAAuB;QAC3D,kFAAkF;QAClF,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAIe,WAAW,CAAC,CAAQ;QAClC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,oCAAoC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC5G,IAAI,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QAClE,IAAI,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrF,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IACM,MAAM,CAAC,4BAA4B,CAAC,QAAuB,EAAE,SAAmB;QACrF,MAAM,KAAK,GAAG,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACtF,IAAI,KAAK,EAAE;YACT,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACrD,QAAQ,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ;gBACvC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\nimport { RecurseToCurvesGeometryHandler } from \"../../geometry3d/GeometryHandler\";\r\nimport { PlaneAltitudeEvaluator } from \"../../Geometry\";\r\nimport { Range1d } from \"../../geometry3d/Range\";\r\nimport { Point3d, Vector3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport { LineSegment3d } from \"../LineSegment3d\";\r\nimport { LineString3d } from \"../LineString3d\";\r\nimport { GrowableXYZArray } from \"../../geometry3d/GrowableXYZArray\";\r\nimport { Arc3d } from \"../Arc3d\";\r\nimport { SineCosinePolynomial } from \"../../numerics/Polynomials\";\r\nimport { GeometryQuery } from \"../GeometryQuery\";\r\nimport { Plane3dByOriginAndUnitNormal } from \"../../geometry3d/Plane3dByOriginAndUnitNormal\";\r\nimport { BSplineCurve3d } from \"../../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../../bspline/BSplineCurve3dH\";\r\n\r\n/**\r\n * Accumulator context for searching for extrema of geometry along a plane.\r\n * @internal\r\n */\r\nexport class PlaneAltitudeRangeContext extends RecurseToCurvesGeometryHandler {\r\n public plane: PlaneAltitudeEvaluator;\r\n public range: Range1d;\r\n public lowPoint: Point3d | undefined;\r\n public highPoint: Point3d | undefined;\r\n private constructor(plane: PlaneAltitudeEvaluator) {\r\n super();\r\n this.plane = plane;\r\n this.range = Range1d.createNull();\r\n this.resetRange();\r\n }\r\n\r\n public resetRange() {\r\n this.range.setNull();\r\n }\r\n\r\n public announcePoint(point: Point3d) {\r\n const h = this.plane.altitude(point);\r\n if (this.range.extendLow(h))\r\n this.lowPoint = point.clone(this.lowPoint);\r\n if (this.range.extendHigh(h))\r\n this.highPoint = point.clone(this.highPoint);\r\n }\r\n\r\n public announcePoints(points: GrowableXYZArray) {\r\n for (let i = 0; i < points.length; i++) {\r\n const h = points.evaluateUncheckedIndexPlaneAltitude(i, this.plane);\r\n if (this.range.extendLow(h))\r\n this.lowPoint = points.getPoint3dAtUncheckedPointIndex(i, this.lowPoint);\r\n if (this.range.extendHigh(h))\r\n this.highPoint = points.getPoint3dAtUncheckedPointIndex(i, this.highPoint);\r\n }\r\n }\r\n\r\n public static createCapture(plane: PlaneAltitudeEvaluator): PlaneAltitudeRangeContext {\r\n const context = new PlaneAltitudeRangeContext(plane);\r\n return context;\r\n }\r\n\r\n public override handleLineSegment3d(segment: LineSegment3d) {\r\n this.announcePoint(segment.point0Ref);\r\n this.announcePoint(segment.point1Ref);\r\n }\r\n\r\n public override handleLineString3d(lineString: LineString3d) {\r\n this.announcePoints(lineString.packedPoints);\r\n }\r\n\r\n public override handleBSplineCurve3d(bcurve: BSplineCurve3d) {\r\n // ugh. The point MUST be on the curve -- usual excess-range of poles is not ok.\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls);\r\n this.handleLineString3d(ls);\r\n }\r\n public override handleBSplineCurve3dH(bcurve: BSplineCurve3dH) {\r\n // ugh. The point MUST be on the curve -- usual excess-range of poles is not ok.\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls);\r\n this.handleLineString3d(ls);\r\n }\r\n\r\n private _sineCosinePolynomial?: SineCosinePolynomial;\r\n private _workPoint?: Point3d;\r\n public override handleArc3d(g: Arc3d) {\r\n this._sineCosinePolynomial = g.getPlaneAltitudeSineCosinePolynomial(this.plane, this._sineCosinePolynomial);\r\n let radians = this._sineCosinePolynomial.referenceMinMaxRadians();\r\n if (g.sweep.isRadiansInSweep(radians))\r\n this.announcePoint((this._workPoint = g.radiansToPoint(radians, this._workPoint)));\r\n radians += Math.PI;\r\n if (g.sweep.isRadiansInSweep(radians))\r\n this.announcePoint((this._workPoint = g.radiansToPoint(radians, this._workPoint)));\r\n this.announcePoint((this._workPoint = g.startPoint(this._workPoint)));\r\n this.announcePoint((this._workPoint = g.endPoint(this._workPoint)));\r\n }\r\n public static findExtremePointsInDirection(geometry: GeometryQuery, direction: Vector3d): Point3d[] | undefined {\r\n const plane = Plane3dByOriginAndUnitNormal.create(Point3d.create(0, 0, 0), direction);\r\n if (plane) {\r\n const context = new PlaneAltitudeRangeContext(plane);\r\n geometry.dispatchToGeometryHandler(context);\r\n if (context.highPoint && context.lowPoint)\r\n return [context.lowPoint, context.highPoint];\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PlaneAltitudeRangeContext.js","sourceRoot":"","sources":["../../../../src/curve/internalContexts/PlaneAltitudeRangeContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\n\r\nimport { BSplineCurve3d } from \"../../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../../bspline/BSplineCurve3dH\";\r\nimport { Geometry, PlaneAltitudeEvaluator } from \"../../Geometry\";\r\nimport { RecurseToCurvesGeometryHandler } from \"../../geometry3d/GeometryHandler\";\r\nimport { GrowableXYZArray } from \"../../geometry3d/GrowableXYZArray\";\r\nimport { Plane3dByOriginAndUnitNormal } from \"../../geometry3d/Plane3dByOriginAndUnitNormal\";\r\nimport { Point3d, Vector3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport { Range1d } from \"../../geometry3d/Range\";\r\nimport { Ray3d } from \"../../geometry3d/Ray3d\";\r\nimport { SineCosinePolynomial } from \"../../numerics/Polynomials\";\r\nimport { Arc3d } from \"../Arc3d\";\r\nimport { GeometryQuery } from \"../GeometryQuery\";\r\nimport { LineSegment3d } from \"../LineSegment3d\";\r\nimport { LineString3d } from \"../LineString3d\";\r\n\r\n/**\r\n * Accumulator context for searching for extrema of geometry along a plane.\r\n * @internal\r\n */\r\nexport class PlaneAltitudeRangeContext extends RecurseToCurvesGeometryHandler {\r\n public plane: PlaneAltitudeEvaluator;\r\n public range: Range1d;\r\n public lowPoint: Point3d | undefined;\r\n public highPoint: Point3d | undefined;\r\n private constructor(plane: PlaneAltitudeEvaluator) {\r\n super();\r\n this.plane = plane;\r\n this.range = Range1d.createNull();\r\n this.resetRange();\r\n }\r\n\r\n public resetRange() {\r\n this.range.setNull();\r\n }\r\n\r\n public announcePoint(point: Point3d) {\r\n const h = this.plane.altitude(point);\r\n if (this.range.extendLow(h))\r\n this.lowPoint = point.clone(this.lowPoint);\r\n if (this.range.extendHigh(h))\r\n this.highPoint = point.clone(this.highPoint);\r\n }\r\n\r\n public announcePoints(points: GrowableXYZArray) {\r\n for (let i = 0; i < points.length; i++) {\r\n const h = points.evaluateUncheckedIndexPlaneAltitude(i, this.plane);\r\n if (this.range.extendLow(h))\r\n this.lowPoint = points.getPoint3dAtUncheckedPointIndex(i, this.lowPoint);\r\n if (this.range.extendHigh(h))\r\n this.highPoint = points.getPoint3dAtUncheckedPointIndex(i, this.highPoint);\r\n }\r\n }\r\n\r\n public static createCapture(plane: PlaneAltitudeEvaluator): PlaneAltitudeRangeContext {\r\n const context = new PlaneAltitudeRangeContext(plane);\r\n return context;\r\n }\r\n\r\n public override handleLineSegment3d(segment: LineSegment3d) {\r\n this.announcePoint(segment.point0Ref);\r\n this.announcePoint(segment.point1Ref);\r\n }\r\n\r\n public override handleLineString3d(lineString: LineString3d) {\r\n this.announcePoints(lineString.packedPoints);\r\n }\r\n\r\n public override handleBSplineCurve3d(bcurve: BSplineCurve3d) {\r\n // ugh. The point MUST be on the curve -- usual excess-range of poles is not ok.\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls);\r\n this.handleLineString3d(ls);\r\n }\r\n public override handleBSplineCurve3dH(bcurve: BSplineCurve3dH) {\r\n // ugh. The point MUST be on the curve -- usual excess-range of poles is not ok.\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls);\r\n this.handleLineString3d(ls);\r\n }\r\n\r\n private _sineCosinePolynomial?: SineCosinePolynomial;\r\n private _workPoint?: Point3d;\r\n public override handleArc3d(g: Arc3d) {\r\n this._sineCosinePolynomial = g.getPlaneAltitudeSineCosinePolynomial(this.plane, this._sineCosinePolynomial);\r\n let radians = this._sineCosinePolynomial.referenceMinMaxRadians();\r\n if (g.sweep.isRadiansInSweep(radians))\r\n this.announcePoint((this._workPoint = g.radiansToPoint(radians, this._workPoint)));\r\n radians += Math.PI;\r\n if (g.sweep.isRadiansInSweep(radians))\r\n this.announcePoint((this._workPoint = g.radiansToPoint(radians, this._workPoint)));\r\n this.announcePoint((this._workPoint = g.startPoint(this._workPoint)));\r\n this.announcePoint((this._workPoint = g.endPoint(this._workPoint)));\r\n }\r\n\r\n private static findExtremesInDirection(geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d): PlaneAltitudeRangeContext | undefined {\r\n const origin = direction instanceof Ray3d ? direction.origin : Point3d.createZero();\r\n const vector = direction instanceof Ray3d ? direction.direction : direction;\r\n const plane = Plane3dByOriginAndUnitNormal.create(origin, vector); // vector is normalized, so altitudes are distances\r\n if (plane) {\r\n const context = new PlaneAltitudeRangeContext(plane);\r\n if (geometry instanceof GeometryQuery) {\r\n geometry.dispatchToGeometryHandler(context);\r\n } else if (geometry instanceof GrowableXYZArray) {\r\n context.announcePoints(geometry);\r\n } else {\r\n for (const pt of geometry)\r\n context.announcePoint(pt);\r\n }\r\n return context;\r\n }\r\n return undefined;\r\n }\r\n /** Compute altitudes for the geometry (via dispatch) over the plane defined by the given direction,\r\n * and return points at min and max altitude, packed into a `LineSegment3d`.\r\n * @param geometry geometry to project\r\n * @param direction vector or ray on which to project the instance. A `Vector3d` is treated as a `Ray3d` with zero origin.\r\n * @param lowHigh optional receiver for output\r\n */\r\n public static findExtremePointsInDirection(geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d, lowHigh?: LineSegment3d): LineSegment3d | undefined {\r\n const context = this.findExtremesInDirection(geometry, direction);\r\n if (context && context.highPoint && context.lowPoint)\r\n return LineSegment3d.create(context.lowPoint, context.highPoint, lowHigh);\r\n return undefined;\r\n }\r\n /** Compute altitudes for the geometry (via dispatch) over the plane defined by the given direction,\r\n * and return the min and max altitudes, packed into a Range1d.\r\n * @param geometry geometry to project\r\n * @param direction vector or ray on which to project the instance. A `Vector3d` is treated as a `Ray3d` with zero origin.\r\n * @param lowHigh optional receiver for output\r\n */\r\n public static findExtremeAltitudesInDirection(geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d, lowHigh?: Range1d): Range1d | undefined {\r\n const context = this.findExtremesInDirection(geometry, direction);\r\n if (context && !context.range.isNull)\r\n return Range1d.createFrom(context.range, lowHigh);\r\n return undefined;\r\n }\r\n /** Project geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.\r\n * @param geometry geometry to project\r\n * @param direction vector or ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.\r\n * @param lowHigh optional receiver for output\r\n */\r\n public static findExtremeFractionsAlongDirection(geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d, lowHigh?: Range1d): Range1d | undefined {\r\n const range = this.findExtremeAltitudesInDirection(geometry, direction, lowHigh);\r\n if (undefined !== range) {\r\n const mag = (direction instanceof Vector3d) ? direction.magnitude() : direction.direction.magnitude();\r\n const scaleToFraction = Geometry.conditionalDivideCoordinate(1.0, mag);\r\n if (undefined !== scaleToFraction) {\r\n range.low *= scaleToFraction;\r\n range.high *= scaleToFraction;\r\n return range;\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
@@ -1,14 +1,13 @@
1
- /** @packageDocumentation
2
- * @module Curve
3
- */
4
- import { CurvePrimitive } from "../CurvePrimitive";
5
1
  import { Matrix3d } from "../../geometry3d/Matrix3d";
2
+ import { Range1d, Range3d } from "../../geometry3d/Range";
6
3
  import { Segment1d } from "../../geometry3d/Segment1d";
7
4
  import { Transform } from "../../geometry3d/Transform";
8
- import { TransitionConditionalProperties } from "./TransitionConditionalProperties";
9
- import { LineString3d } from "../LineString3d";
5
+ import { CurvePrimitive } from "../CurvePrimitive";
10
6
  import { OffsetOptions } from "../internalContexts/PolygonOffsetContext";
11
- import { Range3d } from "../../geometry3d/Range";
7
+ import { LineString3d } from "../LineString3d";
8
+ import { TransitionConditionalProperties } from "./TransitionConditionalProperties";
9
+ import type { Vector3d } from "../../geometry3d/Point3dVector3d";
10
+ import type { Ray3d } from "../../geometry3d/Ray3d";
12
11
  /**
13
12
  * This is the set of valid type names for "integrated" spirals
14
13
  * * Behavior is expressed by a `NormalizedTransition` snap function.
@@ -120,5 +119,11 @@ export declare abstract class TransitionSpiral3d extends CurvePrimitive {
120
119
  * * Use activeStrokes point count times interval factor for initial evaluation count, but do at least 5
121
120
  */
122
121
  rangeBetweenFractions(fractionA: number, fractionB: number, transform?: Transform): Range3d;
122
+ /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
123
+ * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
124
+ * @param lowHigh optional receiver for output
125
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
126
+ */
127
+ projectedParameterRange(ray: Vector3d | Ray3d, lowHigh?: Range1d): Range1d | undefined;
123
128
  }
124
129
  //# sourceMappingURL=TransitionSpiral3d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionSpiral3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransitionSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionSpiral3d.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,14 @@
5
5
  /** @packageDocumentation
6
6
  * @module Curve
7
7
  */
8
- import { CurvePrimitive } from "../CurvePrimitive";
8
+ import { Geometry } from "../../Geometry";
9
+ import { Range3d } from "../../geometry3d/Range";
9
10
  import { Segment1d } from "../../geometry3d/Segment1d";
10
11
  import { Transform } from "../../geometry3d/Transform";
11
- import { Geometry } from "../../Geometry";
12
+ import { CurvePrimitive } from "../CurvePrimitive";
12
13
  import { CurveOffsetXYHandler } from "../internalContexts/CurveOffsetXYHandler";
14
+ import { PlaneAltitudeRangeContext } from "../internalContexts/PlaneAltitudeRangeContext";
13
15
  import { OffsetOptions } from "../internalContexts/PolygonOffsetContext";
14
- import { Range3d } from "../../geometry3d/Range";
15
16
  /**
16
17
  * TransitionSpiral3d is a base class for multiple variants of spirals.
17
18
  * * The menagerie of spiral types have 2 broad categories:
@@ -148,5 +149,13 @@ export class TransitionSpiral3d extends CurvePrimitive {
148
149
  count = Geometry.clamp(5, count, 30);
149
150
  return this.rangeBetweenFractionsByCount(fractionA, fractionB, count, transform, 0.5);
150
151
  }
152
+ /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
153
+ * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
154
+ * @param lowHigh optional receiver for output
155
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
156
+ */
157
+ projectedParameterRange(ray, lowHigh) {
158
+ return PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
159
+ }
151
160
  }
152
161
  //# sourceMappingURL=TransitionSpiral3d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionSpiral3d.js","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionSpiral3d.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAkCjD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,cAAc;IAmB7D,YAAsB,UAA8B,EAAE,YAAuB,EAAE,sBAA6C,EAAE,gBAA6D;QACzL,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACjE,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1G,CAAC;IAfD,wEAAwE;IACxE,IAAW,sBAAsB,KAAgB,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAKvF,0CAA0C;IAC1C,IAAW,YAAY,KAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAUnE,IAAW,UAAU,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5D,iIAAiI;IAC1H,MAAM,CAAC,iBAAiB,CAAC,MAAc,IAAY,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IAEzG,+GAA+G;IACxG,MAAM,CAAC,iBAAiB,CAAC,SAAiB;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,iBAAiB;YAClD,OAAO,GAAG,CAAC;QACb,OAAO,GAAG,GAAG,SAAS,CAAC;IACzB,CAAC;IAQD,sEAAsE;IACtD,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QACtE,OAAO,CAAC,yBAAyB,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,sCAAsC;IACtB,gBAAgB,CAAC,SAAoB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,2CAA2C;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0DAA0D;IACnD,MAAM,CAAC,gBAAgB,CAAC,YAAuB;QACpD,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/H,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,oBAAoB,CAAC,EAAU,EAAE,EAAU;QACvD,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,wBAAwB,CAAC,EAAU,EAAE,QAAgB,EAAE,EAAU;QAC7E,OAAO,QAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5H,CAAC;IAED,qFAAqF;IAC9E,MAAM,CAAC,mCAAmC,CAAC,OAAe,EAAE,OAAe,EAAE,YAAoB;QACtG,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,yEAAyE;IAClE,MAAM,CAAC,gCAAgC,CAAC,OAAe,EAAE,OAAe,EAAE,SAAiB;QAChG,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC/E,CAAC;IAED,sFAAsF;IAC/E,MAAM,CAAC,kCAAkC,CAAC,OAAe,EAAE,SAAiB,EAAE,YAAoB;QACvG,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,GAAG,GAAG,YAAY,GAAG,SAAS,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChI,CAAC;IACD,sFAAsF;IAC/E,MAAM,CAAC,kCAAkC,CAAC,OAAe,EAAE,SAAiB,EAAE,YAAoB;QACvG,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,GAAG,GAAG,YAAY,GAAG,SAAS,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChI,CAAC;IACD,iFAAiF;IACjF,IAAW,gBAAgB,KAAkD,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC7G;;;;;OAKG;IACO,yBAAyB,CAAC,UAAqB;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;QACjE,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,6BAA6B;YAC7B,8DAA8D;YAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7E,gDAAgD;YAChD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACnF,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClF,IAAI,IAAI,CAAC,gBAAgB;gBACvB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAE1D,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACa,iBAAiB,CAAC,uBAA+C;QAC/E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3E,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IACD,oDAAoD;IACpC,WAAW,CAAC,aAAsB,EAAE,SAAqB;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACjE,aAAa,CAAC,WAAW,CAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACc,qBAAqB,CAAC,SAAiB,EAAE,SAAiB,EAAE,SAAqB;QAChG,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,SAAS,KAAK,OAAO;YACvB,OAAO,OAAO,CAAC,UAAU,EAAG,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;QAC/E,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,4BAA4B,CAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACzF,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\n\r\nimport { CurvePrimitive } from \"../CurvePrimitive\";\r\nimport { Matrix3d } from \"../../geometry3d/Matrix3d\";\r\nimport { Segment1d } from \"../../geometry3d/Segment1d\";\r\nimport { Transform } from \"../../geometry3d/Transform\";\r\nimport { TransitionConditionalProperties } from \"./TransitionConditionalProperties\";\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { LineString3d } from \"../LineString3d\";\r\nimport { CurveOffsetXYHandler } from \"../internalContexts/CurveOffsetXYHandler\";\r\nimport { OffsetOptions } from \"../internalContexts/PolygonOffsetContext\";\r\nimport { Range3d } from \"../../geometry3d/Range\";\r\n/**\r\n * This is the set of valid type names for \"integrated\" spirals\r\n * * Behavior is expressed by a `NormalizedTransition` snap function.\r\n * * The snap function varies smoothly from f(0)=0 to f(1)=1\r\n * * The various snap functions are:\r\n * * clothoid: linear\r\n * * biquadratic: 2 quadratics pieced together, joining with 1st derivative continuity at f(0.) = 0.5, with zero slope f'(0)=0 and f'(1)= 0\r\n * * bloss: A single cubic with zero slope at 0 and 1\r\n * * cosine: half of a cosine wave, centered around 0.5\r\n * * sine: full period of a sine wave added to the line f(u)=u\r\n * *\r\n * @public\r\n */\r\nexport type IntegratedSpiralTypeName = \"clothoid\" | \"bloss\" | \"biquadratic\" | \"cosine\" | \"sine\";\r\n\r\n/**\r\n * This is the set of valid type names for \"direct\" spirals.\r\n * \"Direct\" spirals can evaluate fractionToPoint by direct equations, i.e. not requiring the numeric integrations in \"Integrated\" spiral types.\r\n * @public\r\n */\r\nexport type DirectSpiralTypeName =\r\n \"JapaneseCubic\" // 1 term from each of the X,Y clothoid series expansions: y = x^3 / (6RL)\r\n | \"Arema\" // 2 terms from each of the X,Y clothoid series expansions. Identical to ChineseCubic!\r\n | \"ChineseCubic\" // Identical to Arema!\r\n | \"HalfCosine\" // high continuity cosine variation from quadratic.\r\n | \"AustralianRailCorp\" // cubic with high accuracy distance series\r\n | \"WesternAustralian\" // simple cubic -- 2 terms of x series, 1 term of y series.\r\n | \"Czech\" // simple cubic with two term distance approximation\r\n | \"MXCubicAlongArc\" // x obtained from fractional distance via 2-terms from series, y = x^3/ (6RL)\r\n | \"Polish\"\r\n | \"Italian\"\r\n ;\r\n\r\n/**\r\n * TransitionSpiral3d is a base class for multiple variants of spirals.\r\n * * The menagerie of spiral types have 2 broad categories:\r\n * * IntegratedSpiral3d -- a spiral whose direct function for curvature versus distance must be integrated to determine x,y\r\n * * The IntegratedSpiral3d types are enumerated in `IntegratedSpiralTypes`\r\n * * DirectSpiral3d -- a spiral implemented with direct calculation of x,y from fractional position along the spiral.\r\n * * The direct spiral types are enumerated in the `DirectSpiralType`\r\n * * The method set for CurvePrimitive support includes a `handleTransitionSpiral(g: TransitionSpiral3d)` which receives all the spiral types.\r\n * * The spiral class may impose expectations that its inflection is at the origin, with tangent along the x axis.\r\n * * This is generally necessary for direct spirals.\r\n * * This is not necessary for integrated spirals.\r\n * @public\r\n */\r\nexport abstract class TransitionSpiral3d extends CurvePrimitive {\r\n /** string name of spiral type */\r\n protected _spiralType: string;\r\n /** Original defining properties. */\r\n protected _designProperties: TransitionConditionalProperties | undefined;\r\n\r\n /** Fractional interval for the \"active\" part of a containing spiral.\r\n * (The radius, angle, and length conditions define a complete spiral, and some portion of it is \"active\")\r\n */\r\n protected _activeFractionInterval: Segment1d;\r\n /** Return (reference to) the active portion of the reference spiral. */\r\n public get activeFractionInterval(): Segment1d { return this._activeFractionInterval; }\r\n /** strokes in the active portion */\r\n public abstract get activeStrokes(): LineString3d;\r\n /** Placement transform */\r\n protected _localToWorld: Transform;\r\n /** (reference to) placement transform. */\r\n public get localToWorld(): Transform { return this._localToWorld; }\r\n\r\n protected constructor(spiralType: string | undefined, localToWorld: Transform, activeFractionInterval: Segment1d | undefined, designProperties: TransitionConditionalProperties | undefined) {\r\n super();\r\n this._spiralType = spiralType ? spiralType : \"unknownSpiralType\";\r\n this._designProperties = designProperties;\r\n this._localToWorld = localToWorld;\r\n this._activeFractionInterval = activeFractionInterval ? activeFractionInterval : Segment1d.create(0, 1);\r\n }\r\n\r\n public get spiralType(): string { return this._spiralType; }\r\n /** Return 1/r with convention that if true zero is given as radius it represents infinite radius (0 curvature, straight line) */\r\n public static radiusToCurvature(radius: number): number { return (radius === 0.0) ? 0.0 : 1.0 / radius; }\r\n\r\n /** Return 1/k with convention that if near-zero is given as curvature, its infinite radius is returned as 0 */\r\n public static curvatureToRadius(curvature: number): number {\r\n if (Math.abs(curvature) < Geometry.smallAngleRadians)\r\n return 0.0;\r\n return 1.0 / curvature;\r\n }\r\n\r\n /** Return a deep clone. */\r\n public abstract override clone(): TransitionSpiral3d;\r\n\r\n /** Recompute strokes */\r\n public abstract refreshComputedProperties(): void;\r\n\r\n /** Return (if possible) a spiral which is a portion of this curve. */\r\n public override clonePartialCurve(fractionA: number, fractionB: number): TransitionSpiral3d {\r\n const spiralB = this.clone();\r\n const globalFractionA = this._activeFractionInterval.fractionToPoint(fractionA);\r\n const globalFractionB = this._activeFractionInterval.fractionToPoint(fractionB);\r\n spiralB._activeFractionInterval.set(globalFractionA, globalFractionB);\r\n spiralB.refreshComputedProperties();\r\n return spiralB;\r\n }\r\n\r\n /** Clone with a transform applied */\r\n public override cloneTransformed(transform: Transform): TransitionSpiral3d {\r\n const result = this.clone();\r\n result.tryTransformInPlace(transform); // ok, we're confident it will always work.\r\n return result;\r\n }\r\n\r\n /** Return the average of the start and end curvatures. */\r\n public static averageCurvature(radiusLimits: Segment1d): number {\r\n return 0.5 * (TransitionSpiral3d.radiusToCurvature(radiusLimits.x0) + TransitionSpiral3d.radiusToCurvature(radiusLimits.x1));\r\n }\r\n /**\r\n * Given two radii (or zeros for 0 curvature) return the average curvature\r\n * @param r0 start radius, or 0 for line\r\n * @param r1 end radius, or 0 for line\r\n */\r\n public static averageCurvatureR0R1(r0: number, r1: number): number {\r\n return 0.5 * (TransitionSpiral3d.radiusToCurvature(r0) + TransitionSpiral3d.radiusToCurvature(r1));\r\n }\r\n /**\r\n * Given two radii (or zeros for 0 curvature) return the average curvature\r\n * @param r0 start radius, or 0 for line\r\n * @param r1 end radius, or 0 for line\r\n */\r\n public static interpolateCurvatureR0R1(r0: number, fraction: number, r1: number): number {\r\n return Geometry.interpolate(TransitionSpiral3d.radiusToCurvature(r0), fraction, TransitionSpiral3d.radiusToCurvature(r1));\r\n }\r\n\r\n /** Return the arc length of a transition spiral with given sweep and radius pair. */\r\n public static radiusRadiusSweepRadiansToArcLength(radius0: number, radius1: number, sweepRadians: number): number {\r\n return Math.abs(sweepRadians / TransitionSpiral3d.averageCurvatureR0R1(radius0, radius1));\r\n }\r\n\r\n /** Return the turn angle for spiral of given length between two radii */\r\n public static radiusRadiusLengthToSweepRadians(radius0: number, radius1: number, arcLength: number): number {\r\n return TransitionSpiral3d.averageCurvatureR0R1(radius0, radius1) * arcLength;\r\n }\r\n\r\n /** Return the end radius for spiral of given start radius, length, and turn angle. */\r\n public static radius0LengthSweepRadiansToRadius1(radius0: number, arcLength: number, sweepRadians: number) {\r\n return TransitionSpiral3d.curvatureToRadius((2.0 * sweepRadians / arcLength) - TransitionSpiral3d.radiusToCurvature(radius0));\r\n }\r\n /** Return the start radius for spiral of given end radius, length, and turn angle. */\r\n public static radius1LengthSweepRadiansToRadius0(radius1: number, arcLength: number, sweepRadians: number) {\r\n return TransitionSpiral3d.curvatureToRadius((2.0 * sweepRadians / arcLength) - TransitionSpiral3d.radiusToCurvature(radius1));\r\n }\r\n /** Return the original defining properties (if any) saved by the constructor. */\r\n public get designProperties(): TransitionConditionalProperties | undefined { return this._designProperties; }\r\n /**\r\n * * If transformA is rigid with uniform scale, apply the rigid part of transformA to the localToWorld transform and return the scale and rigid separation.\r\n * * If not rigid, do nothing and return undefined.\r\n * * Also apply the scale factor to the designProperties.\r\n * @param transformA\r\n */\r\n protected applyRigidPartOfTransform(transformA: Transform): { rigidAxes: Matrix3d, scale: number } | undefined {\r\n const rigidData = transformA.matrix.factorRigidWithSignedScale();\r\n if (rigidData !== undefined) {\r\n // [sQ a][R b] = [sQ*R sQb+a]\r\n // but we save it as [Q*R sQb+a] with spiral data scaled by s.\r\n const transformC0 = transformA.multiplyTransformTransform(this.localToWorld);\r\n // BUT pull the scale part out of the matrix ...\r\n const matrixC = rigidData.rigidAxes.multiplyMatrixMatrix(this.localToWorld.matrix);\r\n this._localToWorld = Transform.createOriginAndMatrix(transformC0.origin, matrixC);\r\n if (this.designProperties)\r\n this.designProperties.applyScaleFactor(rigidData.scale);\r\n\r\n return rigidData;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Construct an offset of the instance curve as viewed in the xy-plane (ignoring z).\r\n * * No attempt is made to join the offsets of smaller constituent primitives. To construct a fully joined offset\r\n * for an aggregate instance (e.g., LineString3d, CurveChainWithDistanceIndex), use RegionOps.constructCurveXYOffset() instead.\r\n * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object\r\n */\r\n public override constructOffsetXY(offsetDistanceOrOptions: number | OffsetOptions): CurvePrimitive | CurvePrimitive[] | undefined {\r\n const options = OffsetOptions.create(offsetDistanceOrOptions);\r\n const handler = new CurveOffsetXYHandler(this, options.leftOffsetDistance);\r\n this.emitStrokableParts(handler, options.strokeOptions);\r\n return handler.claimResult();\r\n }\r\n /** extend the range by the strokes of the spiral */\r\n public override extendRange(rangeToExtend: Range3d, transform?: Transform): void {\r\n const myRange = this.rangeBetweenFractions (0.0, 1.0, transform);\r\n rangeToExtend.extendRange (myRange);\r\n }\r\n\r\n /** return the range of spiral between fractions of the activeStrokes.\r\n * * Use activeStrokes point count times interval factor for initial evaluation count, but do at least 5\r\n */\r\n public override rangeBetweenFractions(fractionA: number, fractionB: number, transform?: Transform): Range3d {\r\n const strokes = this.activeStrokes;\r\n if (undefined === strokes)\r\n return Range3d.createNull ();\r\n let count = Math.ceil (strokes.numPoints() * Math.abs (fractionB - fractionA));\r\n count = Geometry.clamp (5, count, 30);\r\n return this.rangeBetweenFractionsByCount (fractionA, fractionB, count, transform, 0.5);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TransitionSpiral3d.js","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionSpiral3d.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\n\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { Matrix3d } from \"../../geometry3d/Matrix3d\";\r\nimport { Range1d, Range3d } from \"../../geometry3d/Range\";\r\nimport { Segment1d } from \"../../geometry3d/Segment1d\";\r\nimport { Transform } from \"../../geometry3d/Transform\";\r\nimport { CurvePrimitive } from \"../CurvePrimitive\";\r\nimport { CurveOffsetXYHandler } from \"../internalContexts/CurveOffsetXYHandler\";\r\nimport { PlaneAltitudeRangeContext } from \"../internalContexts/PlaneAltitudeRangeContext\";\r\nimport { OffsetOptions } from \"../internalContexts/PolygonOffsetContext\";\r\nimport { LineString3d } from \"../LineString3d\";\r\nimport { TransitionConditionalProperties } from \"./TransitionConditionalProperties\";\r\n\r\nimport type { Vector3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport type { Ray3d } from \"../../geometry3d/Ray3d\";\r\n\r\n/**\r\n * This is the set of valid type names for \"integrated\" spirals\r\n * * Behavior is expressed by a `NormalizedTransition` snap function.\r\n * * The snap function varies smoothly from f(0)=0 to f(1)=1\r\n * * The various snap functions are:\r\n * * clothoid: linear\r\n * * biquadratic: 2 quadratics pieced together, joining with 1st derivative continuity at f(0.) = 0.5, with zero slope f'(0)=0 and f'(1)= 0\r\n * * bloss: A single cubic with zero slope at 0 and 1\r\n * * cosine: half of a cosine wave, centered around 0.5\r\n * * sine: full period of a sine wave added to the line f(u)=u\r\n * *\r\n * @public\r\n */\r\nexport type IntegratedSpiralTypeName = \"clothoid\" | \"bloss\" | \"biquadratic\" | \"cosine\" | \"sine\";\r\n\r\n/**\r\n * This is the set of valid type names for \"direct\" spirals.\r\n * \"Direct\" spirals can evaluate fractionToPoint by direct equations, i.e. not requiring the numeric integrations in \"Integrated\" spiral types.\r\n * @public\r\n */\r\nexport type DirectSpiralTypeName =\r\n \"JapaneseCubic\" // 1 term from each of the X,Y clothoid series expansions: y = x^3 / (6RL)\r\n | \"Arema\" // 2 terms from each of the X,Y clothoid series expansions. Identical to ChineseCubic!\r\n | \"ChineseCubic\" // Identical to Arema!\r\n | \"HalfCosine\" // high continuity cosine variation from quadratic.\r\n | \"AustralianRailCorp\" // cubic with high accuracy distance series\r\n | \"WesternAustralian\" // simple cubic -- 2 terms of x series, 1 term of y series.\r\n | \"Czech\" // simple cubic with two term distance approximation\r\n | \"MXCubicAlongArc\" // x obtained from fractional distance via 2-terms from series, y = x^3/ (6RL)\r\n | \"Polish\"\r\n | \"Italian\"\r\n ;\r\n\r\n/**\r\n * TransitionSpiral3d is a base class for multiple variants of spirals.\r\n * * The menagerie of spiral types have 2 broad categories:\r\n * * IntegratedSpiral3d -- a spiral whose direct function for curvature versus distance must be integrated to determine x,y\r\n * * The IntegratedSpiral3d types are enumerated in `IntegratedSpiralTypes`\r\n * * DirectSpiral3d -- a spiral implemented with direct calculation of x,y from fractional position along the spiral.\r\n * * The direct spiral types are enumerated in the `DirectSpiralType`\r\n * * The method set for CurvePrimitive support includes a `handleTransitionSpiral(g: TransitionSpiral3d)` which receives all the spiral types.\r\n * * The spiral class may impose expectations that its inflection is at the origin, with tangent along the x axis.\r\n * * This is generally necessary for direct spirals.\r\n * * This is not necessary for integrated spirals.\r\n * @public\r\n */\r\nexport abstract class TransitionSpiral3d extends CurvePrimitive {\r\n /** string name of spiral type */\r\n protected _spiralType: string;\r\n /** Original defining properties. */\r\n protected _designProperties: TransitionConditionalProperties | undefined;\r\n\r\n /** Fractional interval for the \"active\" part of a containing spiral.\r\n * (The radius, angle, and length conditions define a complete spiral, and some portion of it is \"active\")\r\n */\r\n protected _activeFractionInterval: Segment1d;\r\n /** Return (reference to) the active portion of the reference spiral. */\r\n public get activeFractionInterval(): Segment1d { return this._activeFractionInterval; }\r\n /** strokes in the active portion */\r\n public abstract get activeStrokes(): LineString3d;\r\n /** Placement transform */\r\n protected _localToWorld: Transform;\r\n /** (reference to) placement transform. */\r\n public get localToWorld(): Transform { return this._localToWorld; }\r\n\r\n protected constructor(spiralType: string | undefined, localToWorld: Transform, activeFractionInterval: Segment1d | undefined, designProperties: TransitionConditionalProperties | undefined) {\r\n super();\r\n this._spiralType = spiralType ? spiralType : \"unknownSpiralType\";\r\n this._designProperties = designProperties;\r\n this._localToWorld = localToWorld;\r\n this._activeFractionInterval = activeFractionInterval ? activeFractionInterval : Segment1d.create(0, 1);\r\n }\r\n\r\n public get spiralType(): string { return this._spiralType; }\r\n /** Return 1/r with convention that if true zero is given as radius it represents infinite radius (0 curvature, straight line) */\r\n public static radiusToCurvature(radius: number): number { return (radius === 0.0) ? 0.0 : 1.0 / radius; }\r\n\r\n /** Return 1/k with convention that if near-zero is given as curvature, its infinite radius is returned as 0 */\r\n public static curvatureToRadius(curvature: number): number {\r\n if (Math.abs(curvature) < Geometry.smallAngleRadians)\r\n return 0.0;\r\n return 1.0 / curvature;\r\n }\r\n\r\n /** Return a deep clone. */\r\n public abstract override clone(): TransitionSpiral3d;\r\n\r\n /** Recompute strokes */\r\n public abstract refreshComputedProperties(): void;\r\n\r\n /** Return (if possible) a spiral which is a portion of this curve. */\r\n public override clonePartialCurve(fractionA: number, fractionB: number): TransitionSpiral3d {\r\n const spiralB = this.clone();\r\n const globalFractionA = this._activeFractionInterval.fractionToPoint(fractionA);\r\n const globalFractionB = this._activeFractionInterval.fractionToPoint(fractionB);\r\n spiralB._activeFractionInterval.set(globalFractionA, globalFractionB);\r\n spiralB.refreshComputedProperties();\r\n return spiralB;\r\n }\r\n\r\n /** Clone with a transform applied */\r\n public override cloneTransformed(transform: Transform): TransitionSpiral3d {\r\n const result = this.clone();\r\n result.tryTransformInPlace(transform); // ok, we're confident it will always work.\r\n return result;\r\n }\r\n\r\n /** Return the average of the start and end curvatures. */\r\n public static averageCurvature(radiusLimits: Segment1d): number {\r\n return 0.5 * (TransitionSpiral3d.radiusToCurvature(radiusLimits.x0) + TransitionSpiral3d.radiusToCurvature(radiusLimits.x1));\r\n }\r\n /**\r\n * Given two radii (or zeros for 0 curvature) return the average curvature\r\n * @param r0 start radius, or 0 for line\r\n * @param r1 end radius, or 0 for line\r\n */\r\n public static averageCurvatureR0R1(r0: number, r1: number): number {\r\n return 0.5 * (TransitionSpiral3d.radiusToCurvature(r0) + TransitionSpiral3d.radiusToCurvature(r1));\r\n }\r\n /**\r\n * Given two radii (or zeros for 0 curvature) return the average curvature\r\n * @param r0 start radius, or 0 for line\r\n * @param r1 end radius, or 0 for line\r\n */\r\n public static interpolateCurvatureR0R1(r0: number, fraction: number, r1: number): number {\r\n return Geometry.interpolate(TransitionSpiral3d.radiusToCurvature(r0), fraction, TransitionSpiral3d.radiusToCurvature(r1));\r\n }\r\n\r\n /** Return the arc length of a transition spiral with given sweep and radius pair. */\r\n public static radiusRadiusSweepRadiansToArcLength(radius0: number, radius1: number, sweepRadians: number): number {\r\n return Math.abs(sweepRadians / TransitionSpiral3d.averageCurvatureR0R1(radius0, radius1));\r\n }\r\n\r\n /** Return the turn angle for spiral of given length between two radii */\r\n public static radiusRadiusLengthToSweepRadians(radius0: number, radius1: number, arcLength: number): number {\r\n return TransitionSpiral3d.averageCurvatureR0R1(radius0, radius1) * arcLength;\r\n }\r\n\r\n /** Return the end radius for spiral of given start radius, length, and turn angle. */\r\n public static radius0LengthSweepRadiansToRadius1(radius0: number, arcLength: number, sweepRadians: number) {\r\n return TransitionSpiral3d.curvatureToRadius((2.0 * sweepRadians / arcLength) - TransitionSpiral3d.radiusToCurvature(radius0));\r\n }\r\n /** Return the start radius for spiral of given end radius, length, and turn angle. */\r\n public static radius1LengthSweepRadiansToRadius0(radius1: number, arcLength: number, sweepRadians: number) {\r\n return TransitionSpiral3d.curvatureToRadius((2.0 * sweepRadians / arcLength) - TransitionSpiral3d.radiusToCurvature(radius1));\r\n }\r\n /** Return the original defining properties (if any) saved by the constructor. */\r\n public get designProperties(): TransitionConditionalProperties | undefined { return this._designProperties; }\r\n /**\r\n * * If transformA is rigid with uniform scale, apply the rigid part of transformA to the localToWorld transform and return the scale and rigid separation.\r\n * * If not rigid, do nothing and return undefined.\r\n * * Also apply the scale factor to the designProperties.\r\n * @param transformA\r\n */\r\n protected applyRigidPartOfTransform(transformA: Transform): { rigidAxes: Matrix3d, scale: number } | undefined {\r\n const rigidData = transformA.matrix.factorRigidWithSignedScale();\r\n if (rigidData !== undefined) {\r\n // [sQ a][R b] = [sQ*R sQb+a]\r\n // but we save it as [Q*R sQb+a] with spiral data scaled by s.\r\n const transformC0 = transformA.multiplyTransformTransform(this.localToWorld);\r\n // BUT pull the scale part out of the matrix ...\r\n const matrixC = rigidData.rigidAxes.multiplyMatrixMatrix(this.localToWorld.matrix);\r\n this._localToWorld = Transform.createOriginAndMatrix(transformC0.origin, matrixC);\r\n if (this.designProperties)\r\n this.designProperties.applyScaleFactor(rigidData.scale);\r\n\r\n return rigidData;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Construct an offset of the instance curve as viewed in the xy-plane (ignoring z).\r\n * * No attempt is made to join the offsets of smaller constituent primitives. To construct a fully joined offset\r\n * for an aggregate instance (e.g., LineString3d, CurveChainWithDistanceIndex), use RegionOps.constructCurveXYOffset() instead.\r\n * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object\r\n */\r\n public override constructOffsetXY(offsetDistanceOrOptions: number | OffsetOptions): CurvePrimitive | CurvePrimitive[] | undefined {\r\n const options = OffsetOptions.create(offsetDistanceOrOptions);\r\n const handler = new CurveOffsetXYHandler(this, options.leftOffsetDistance);\r\n this.emitStrokableParts(handler, options.strokeOptions);\r\n return handler.claimResult();\r\n }\r\n /** extend the range by the strokes of the spiral */\r\n public override extendRange(rangeToExtend: Range3d, transform?: Transform): void {\r\n const myRange = this.rangeBetweenFractions (0.0, 1.0, transform);\r\n rangeToExtend.extendRange (myRange);\r\n }\r\n\r\n /** return the range of spiral between fractions of the activeStrokes.\r\n * * Use activeStrokes point count times interval factor for initial evaluation count, but do at least 5\r\n */\r\n public override rangeBetweenFractions(fractionA: number, fractionB: number, transform?: Transform): Range3d {\r\n const strokes = this.activeStrokes;\r\n if (undefined === strokes)\r\n return Range3d.createNull ();\r\n let count = Math.ceil (strokes.numPoints() * Math.abs (fractionB - fractionA));\r\n count = Geometry.clamp (5, count, 30);\r\n return this.rangeBetweenFractionsByCount (fractionA, fractionB, count, transform, 0.5);\r\n }\r\n /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.\r\n * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.\r\n * @param lowHigh optional receiver for output\r\n * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.\r\n */\r\n public override projectedParameterRange(ray: Vector3d | Ray3d, lowHigh?: Range1d): Range1d | undefined {\r\n return PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);\r\n }\r\n}\r\n"]}
@@ -549,7 +549,7 @@ export declare class Range2d extends RangeBase implements LowAndHighXY {
549
549
  yLength(): number;
550
550
  /** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
551
551
  diagonal(result?: Vector2d): Vector2d;
552
- /** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
552
+ /** return the point at the specified fraction along the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
553
553
  diagonalFractionToPoint(fraction: number, result?: Point2d): Point2d;
554
554
  /** return a point given by fractional positions on the XY axes. This is done with no check for isNull !!! */
555
555
  fractionToPoint(fractionX: number, fractionY: number, result?: Point2d): Point2d;
@@ -1 +1 @@
1
- {"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Range.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Range.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAY,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGlH;;;GAGG;AACH,8BAAsB,SAAS;IAC7B,+EAA+E;IAC/E,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAW;IAC9D,+EAA+E;IAC/E,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAY;IAC/D,kFAAkF;IAClF,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAClE,qFAAqF;WACvE,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAChD,mGAAmG;WACrF,gBAAgB,CAAC,GAAG,EAAE,OAAO;IAC3C,iGAAiG;WACnF,gBAAgB,CAAC,EAAE,EAAE,OAAO;IAC1C;;;;;;;;OAQG;WACW,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAa5G;;;;OAIG;WACW,iCAAiC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAS/F;;;;OAIG;WACY,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,MAAY,GAAG,MAAM;CAI/F;AACD;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,SAAU,YAAW,aAAa,EAAE,eAAe;IAI9E,4BAA4B;IACrB,GAAG,EAAE,OAAO,CAAC;IACpB,6BAA6B;IACtB,IAAI,EAAE,OAAO,CAAC;IACrB,+EAA+E;IACxE,OAAO;IASd,gEAAgE;IACzD,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;IAC/B,8GAA8G;WAChG,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY;IAC9D,8EAA8E;IACvE,cAAc,IAAI,YAAY;IACrC;;;;OAIG;WACW,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC;IAKvE;;;;OAIG;WACW,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC;gBAGrD,IAAI,GAAE,MAAoC,EAAE,IAAI,GAAE,MAAoC,EAAE,IAAI,GAAE,MAAoC,EACnJ,KAAK,GAAE,MAAoC,EAAE,KAAK,GAAE,MAAoC,EAAE,KAAK,GAAE,MAAoC;IAMvI,6FAA6F;IACtF,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAIrE,2CAA2C;IACpC,OAAO,CAAC,KAAK,EAAE,OAAO;IAC7B,+DAA+D;WACjD,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAK1E;;;;OAIG;IACI,WAAW,CAAC,IAAI,CAAC,EAAE,YAAY;IAmBtC;;OAEG;IACI,MAAM,IAAI,YAAY;IAC7B,qEAAqE;WACvD,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC;IAMjE,OAAO,CAAC,SAAS;IAejB,oBAAoB;IACb,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAKjC;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAO1D,qDAAqD;WACvC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM1D,iGAAiG;IAC1F,MAAM,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE;IAKjC,oHAAoH;WACtG,MAAM,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE;IAOxC,wEAAwE;WAC1D,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO;IAK9E,yDAAyD;WAC3C,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;IAOhG,yDAAyD;WAC3C,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,CAAC;IAMtH,qEAAqE;WACvD,6BAA6B,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,CAAC;IAK7H,kEAAkE;IAC3D,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAM7C,kCAAkC;WACpB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM1F,2GAA2G;WAC7F,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAQpI,iGAAiG;WACnF,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAUnJ,wHAAwH;WAC1G,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAS5F,gDAAgD;WAClC,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAS9E,wEAAwE;IACjE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,SAAS,CAAC,EAAE,SAAS;IAiB9E,wEAAwE;IACjE,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,SAAS,EAAE,SAAS;IAS/F;OACG;IACI,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IASjF;OACG;IACI,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAU7F;OACG;IACI,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAelG,4DAA4D;IACrD,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IASlH,qHAAqH;IACrH,IAAW,MAAM,IAAI,OAAO,CAI3B;IAED,mHAAmH;WACrG,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAMlD,iDAAiD;IACjD,IAAW,aAAa,IAAI,OAAO,CAIlC;IAED,oEAAoE;IACpE,IAAW,MAAM,IAAI,OAAO,CAAgD;IAC5E,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAElD,uDAAuD;IAChD,OAAO,IAAI,MAAM;IAExB,uDAAuD;IAChD,OAAO,IAAI,MAAM;IAExB,uDAAuD;IAChD,OAAO,IAAI,MAAM;IAExB,8DAA8D;IACvD,SAAS,IAAI,MAAM;IAC1B,+IAA+I;IACxI,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAE5C,gJAAgJ;IACzI,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAE3E,+GAA+G;IACxG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAI9G;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAKtH;;OAEG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAGvE;;OAEG;IACI,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;IAM3D;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAS1E;;;OAGG;IACI,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO;IAW1D;;;OAGG;IACI,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAwB7C;;;;;;;;;OASG;WACW,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAaxD;;;;;;OAMG;IACI,WAAW,CAAC,SAAS,GAAE,MAAY,EAAE,YAAY,GAAE,OAAc,EAAE,UAAU,GAAE,OAAc,GAAG,OAAO,EAAE,GAAG,SAAS;IAiB5H,kFAAkF;IAC3E,MAAM,IAAI,MAAM;IAMvB,0DAA0D;IAC1D,IAAW,aAAa,IAAI,OAAO,CAA2D;IAC9F,0DAA0D;IAC1D,IAAW,aAAa,IAAI,OAAO,CAA2D;IAC9F,0DAA0D;IAC1D,IAAW,aAAa,IAAI,OAAO,CAA2D;IAE9F,0DAA0D;IACnD,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAS5D,+EAA+E;IACxE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAMhD,2CAA2C;IACpC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAE7C,mEAAmE;IAC5D,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAO/C,+CAA+C;IACxC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAS7C,yDAAyD;IAClD,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAS/C,yDAAyD;IAClD,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAMjD,sGAAsG;IAC/F,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAW7C,gHAAgH;IACzG,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAS9C,2EAA2E;IACpE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAWvD,sEAAsE;IAC/D,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAgB/E,iEAAiE;IAC1D,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC,iEAAiE;IAC1D,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC,iEAAiE;IAC1D,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC,0CAA0C;IACnC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAQvD,wFAAwF;IACjF,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAQ/D,wDAAwD;IACjD,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIzE,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAM9C;;OAEG;IACI,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAWhF,yCAAyC;IAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAU3D,kCAAkC;IAC3B,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAYvD;;;OAGG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM;IAgBlD;;;;;;OAMG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzC,yDAAyD;IAClD,wBAAwB,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAQ9D;;;OAGG;IACI,2BAA2B,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAYjE;;OAEG;IACI,gBAAgB,CAAC,GAAG,GAAE,MAAa;CAiB3C;AACD;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACpC,oEAAoE;IAC7D,GAAG,EAAE,MAAM,CAAC;IACnB,qEAAqE;IAC9D,IAAI,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAC3C,OAAO;IAKd,OAAO,CAAC,SAAS;IAOjB,OAAO;IAOP,6FAA6F;IACtF,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO;IAIvD,wCAAwC;IACjC,OAAO,CAAC,KAAK,EAAE,OAAO;IAC7B;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAa5C,qEAAqE;WACvD,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC;IAMjE;;;;OAIG;IACI,MAAM,IAAI,YAAY;IAE7B;;OAEG;IACI,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAMjC;;OAEG;WACW,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;IAMhE;;OAEG;WACW,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM1D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAShE;;;OAGG;IACI,IAAI,CAAC,CAAC,EAAE,MAAM;IAErB,gCAAgC;WAClB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAMlE;;;;OAIG;IACI,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAO5C,IAAW,SAAS,IAAI,OAAO,CAEhC;IACC;;;OAGG;WACW,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAQhF;;;OAGG;WACW,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAW/F;;;OAGG;WACW,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAO5F,2CAA2C;IACpC,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE;IAMlD;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAM9F,wFAAwF;IACxF,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,iDAAiD;IACjD,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,wDAAwD;IACjD,MAAM,IAAI,MAAM;IAEvB,+GAA+G;IACxG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIhD,8DAA8D;IACvD,MAAM,IAAI,MAAM;IAMvB,kDAAkD;IAClD,IAAW,kBAAkB,IAAI,OAAO,CAA0D;IAElG,4CAA4C;IACrC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAKpC,+CAA+C;IACxC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK7C,yDAAyD;IAClD,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAGjD;;;;;;OAMG;IACM,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAWrD,gHAAgH;IACzG,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAI9C,iHAAiH;IAC1G,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAMrC,+CAA+C;IACxC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAK/B,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAOxC,gFAAgF;IACzE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAQpC,kFAAkF;IAC3E,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAQrC,yCAAyC;IAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAY3D,kCAAkC;IAC3B,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAQvD;;;OAGG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM;IASlD;;;;;;OAMG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;;;;;;;;;;;;;;;;OAiBG;IACI,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CA+B9F;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,SAAU,YAAW,YAAY;IAG5D,oEAAoE;IAC7D,GAAG,EAAE,OAAO,CAAC;IACpB,oEAAoE;IAC7D,IAAI,EAAE,OAAO,CAAC;IAErB,kDAAkD;IAC3C,OAAO;IAMd,8GAA8G;WAChG,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAC7D,uFAAuF;IAChF,cAAc,IAAI,YAAY;IACrC;;;;OAIG;WACW,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC;IAKvE;;;;OAIG;WACW,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC;gBAGrD,IAAI,SAA4B,EAAE,IAAI,SAA4B,EAAE,KAAK,SAA4B,EAAE,KAAK,SAA4B;IAK3J,6FAA6F;IACtF,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI7C,uEAAuE;IAChE,OAAO,CAAC,KAAK,EAAE,YAAY;IAIlC,2EAA2E;WAC7D,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAI/E,+DAA+D;IACxD,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAiB5C,gEAAgE;IACzD,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;IAC/B,wEAAwE;IACjE,MAAM,IAAI,YAAY;IAC7B,qEAAqE;WACvD,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC;IAOjE,OAAO,CAAC,SAAS;IAWjB,gEAAgE;IACzD,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAKjC,sCAAsC;WACxB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAK1D,8CAA8C;IACvC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKjC,gCAAgC;WAClB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM9E,0GAA0G;WAC5F,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAO1G,0GAA0G;WAC5F,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAOpI,gGAAgG;WAClF,yBAAyB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAUzH,gDAAgD;WAClC,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAQ9E,mHAAmH;IACnH,IAAW,MAAM,IAAI,OAAO,CAG3B;IAED,sIAAsI;WACxH,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAKlD,iDAAiD;IACjD,IAAW,aAAa,IAAI,OAAO,CAGlC;IACD,oEAAoE;IACpE,IAAW,MAAM,IAAI,OAAO,CAAgD;IAC5E,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAElD,2CAA2C;IACpC,OAAO,IAAI,MAAM;IAExB,2CAA2C;IACpC,OAAO,IAAI,MAAM;IAExB,+IAA+I;IACxI,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAE5C,yLAAyL;IAClL,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAE3E,6GAA6G;IACtG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAGvF;;;OAGG;IACI,SAAS,CAAC,MAAM,GAAE,OAAe,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,EAAE;IAgBnE,uEAAuE;IAChE,MAAM,IAAI,MAAM;IAMvB,kDAAkD;IAClD,IAAW,aAAa,IAAI,OAAO,CAA2D;IAC9F,kDAAkD;IAClD,IAAW,aAAa,IAAI,OAAO,CAA2D;IAE9F,wDAAwD;IACjD,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAOhD,2CAA2C;IACpC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAE3C,+CAA+C;IACxC,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAOlD,yDAAyD;IAClD,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAOpD,sGAAsG;IAC/F,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAU5C,sGAAsG;IAC/F,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAQnD,wDAAwD;IACjD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ3C,wDAAwD;IACjD,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK5E,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAEtC,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAO7C,yCAAyC;IAClC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAWhE,kCAAkC;IAC3B,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAa5D;;;OAGG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM;IAYlD;;;;;;OAMG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;CAO3E"}
@@ -1304,7 +1304,7 @@ export class Range2d extends RangeBase {
1304
1304
  yLength() { const a = this.high.y - this.low.y; return a > 0.0 ? a : 0.0; }
1305
1305
  /** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
1306
1306
  diagonal(result) { return this.low.vectorTo(this.high, result); }
1307
- /** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
1307
+ /** return the point at the specified fraction along the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
1308
1308
  diagonalFractionToPoint(fraction, result) { return this.low.interpolate(fraction, this.high, result); }
1309
1309
  /** return a point given by fractional positions on the XY axes. This is done with no check for isNull !!! */
1310
1310
  fractionToPoint(fractionX, fractionY, result) {