@itwin/core-geometry 4.1.0-dev.3 → 4.1.0-dev.31

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 (190) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/lib/cjs/curve/Arc3d.d.ts +71 -86
  3. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  4. package/lib/cjs/curve/Arc3d.js +110 -96
  5. package/lib/cjs/curve/Arc3d.js.map +1 -1
  6. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  7. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  8. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +69 -46
  9. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  10. package/lib/cjs/curve/CurveCollection.d.ts +73 -46
  11. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  12. package/lib/cjs/curve/CurveCollection.js +100 -64
  13. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  14. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  15. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  16. package/lib/cjs/curve/CurveLocationDetail.d.ts +45 -46
  17. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  18. package/lib/cjs/curve/CurveLocationDetail.js +39 -41
  19. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  20. package/lib/cjs/curve/CurvePrimitive.d.ts +138 -92
  21. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  22. package/lib/cjs/curve/CurvePrimitive.js +115 -75
  23. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  24. package/lib/cjs/curve/GeometryQuery.d.ts +26 -20
  25. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  26. package/lib/cjs/curve/GeometryQuery.js +11 -9
  27. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  28. package/lib/cjs/curve/LineSegment3d.d.ts +38 -27
  29. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  30. package/lib/cjs/curve/LineSegment3d.js +77 -39
  31. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  32. package/lib/cjs/curve/LineString3d.d.ts +70 -51
  33. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  34. package/lib/cjs/curve/LineString3d.js +120 -71
  35. package/lib/cjs/curve/LineString3d.js.map +1 -1
  36. package/lib/cjs/curve/Loop.d.ts +7 -5
  37. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  38. package/lib/cjs/curve/Loop.js +18 -6
  39. package/lib/cjs/curve/Loop.js.map +1 -1
  40. package/lib/cjs/curve/ParityRegion.d.ts +7 -7
  41. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
  42. package/lib/cjs/curve/ParityRegion.js +19 -11
  43. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  44. package/lib/cjs/curve/Path.d.ts +6 -6
  45. package/lib/cjs/curve/Path.d.ts.map +1 -1
  46. package/lib/cjs/curve/Path.js +15 -9
  47. package/lib/cjs/curve/Path.js.map +1 -1
  48. package/lib/cjs/curve/ProxyCurve.d.ts +4 -6
  49. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  50. package/lib/cjs/curve/ProxyCurve.js +7 -7
  51. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  52. package/lib/cjs/curve/Query/StrokeCountMap.d.ts +14 -13
  53. package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -1
  54. package/lib/cjs/curve/Query/StrokeCountMap.js +9 -8
  55. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  56. package/lib/cjs/curve/RegionOps.d.ts +69 -47
  57. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  58. package/lib/cjs/curve/RegionOps.js +70 -47
  59. package/lib/cjs/curve/RegionOps.js.map +1 -1
  60. package/lib/cjs/curve/StrokeOptions.d.ts +29 -21
  61. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  62. package/lib/cjs/curve/StrokeOptions.js +50 -24
  63. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  64. package/lib/cjs/curve/UnionRegion.d.ts +6 -5
  65. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
  66. package/lib/cjs/curve/UnionRegion.js +17 -8
  67. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  68. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts +2 -1
  69. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  70. package/lib/cjs/curve/internalContexts/GapSearchContext.js +6 -2
  71. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  72. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  73. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  74. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  75. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  77. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  78. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +152 -87
  79. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  80. package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  81. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +4 -1
  82. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  83. package/lib/cjs/geometry3d/Matrix3d.d.ts +2 -2
  84. package/lib/cjs/geometry3d/Matrix3d.js +2 -2
  85. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  86. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  87. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  88. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  89. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  90. package/lib/cjs/geometry3d/Range.d.ts +133 -93
  91. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  92. package/lib/cjs/geometry3d/Range.js +296 -144
  93. package/lib/cjs/geometry3d/Range.js.map +1 -1
  94. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  95. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  96. package/lib/esm/curve/Arc3d.d.ts +71 -86
  97. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  98. package/lib/esm/curve/Arc3d.js +110 -96
  99. package/lib/esm/curve/Arc3d.js.map +1 -1
  100. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  101. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  102. package/lib/esm/curve/CurveChainWithDistanceIndex.js +69 -46
  103. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  104. package/lib/esm/curve/CurveCollection.d.ts +73 -46
  105. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  106. package/lib/esm/curve/CurveCollection.js +100 -64
  107. package/lib/esm/curve/CurveCollection.js.map +1 -1
  108. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  109. package/lib/esm/curve/CurveCurve.js.map +1 -1
  110. package/lib/esm/curve/CurveLocationDetail.d.ts +45 -46
  111. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  112. package/lib/esm/curve/CurveLocationDetail.js +39 -41
  113. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  114. package/lib/esm/curve/CurvePrimitive.d.ts +138 -92
  115. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  116. package/lib/esm/curve/CurvePrimitive.js +115 -75
  117. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  118. package/lib/esm/curve/GeometryQuery.d.ts +26 -20
  119. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  120. package/lib/esm/curve/GeometryQuery.js +11 -9
  121. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  122. package/lib/esm/curve/LineSegment3d.d.ts +38 -27
  123. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  124. package/lib/esm/curve/LineSegment3d.js +77 -39
  125. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  126. package/lib/esm/curve/LineString3d.d.ts +70 -51
  127. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  128. package/lib/esm/curve/LineString3d.js +120 -71
  129. package/lib/esm/curve/LineString3d.js.map +1 -1
  130. package/lib/esm/curve/Loop.d.ts +7 -5
  131. package/lib/esm/curve/Loop.d.ts.map +1 -1
  132. package/lib/esm/curve/Loop.js +18 -6
  133. package/lib/esm/curve/Loop.js.map +1 -1
  134. package/lib/esm/curve/ParityRegion.d.ts +7 -7
  135. package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
  136. package/lib/esm/curve/ParityRegion.js +19 -11
  137. package/lib/esm/curve/ParityRegion.js.map +1 -1
  138. package/lib/esm/curve/Path.d.ts +6 -6
  139. package/lib/esm/curve/Path.d.ts.map +1 -1
  140. package/lib/esm/curve/Path.js +15 -9
  141. package/lib/esm/curve/Path.js.map +1 -1
  142. package/lib/esm/curve/ProxyCurve.d.ts +4 -6
  143. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  144. package/lib/esm/curve/ProxyCurve.js +7 -7
  145. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  146. package/lib/esm/curve/Query/StrokeCountMap.d.ts +14 -13
  147. package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -1
  148. package/lib/esm/curve/Query/StrokeCountMap.js +9 -8
  149. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  150. package/lib/esm/curve/RegionOps.d.ts +69 -47
  151. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  152. package/lib/esm/curve/RegionOps.js +70 -47
  153. package/lib/esm/curve/RegionOps.js.map +1 -1
  154. package/lib/esm/curve/StrokeOptions.d.ts +29 -21
  155. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  156. package/lib/esm/curve/StrokeOptions.js +50 -24
  157. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  158. package/lib/esm/curve/UnionRegion.d.ts +6 -5
  159. package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
  160. package/lib/esm/curve/UnionRegion.js +17 -8
  161. package/lib/esm/curve/UnionRegion.js.map +1 -1
  162. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +2 -1
  163. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  164. package/lib/esm/curve/internalContexts/GapSearchContext.js +6 -2
  165. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  166. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  167. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  168. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  169. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  170. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  171. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  172. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +152 -87
  173. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  174. package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  175. package/lib/esm/curve/internalContexts/SumLengthsContext.js +4 -1
  176. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  177. package/lib/esm/geometry3d/Matrix3d.d.ts +2 -2
  178. package/lib/esm/geometry3d/Matrix3d.js +2 -2
  179. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  180. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  181. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  182. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  183. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  184. package/lib/esm/geometry3d/Range.d.ts +133 -93
  185. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  186. package/lib/esm/geometry3d/Range.js +296 -144
  187. package/lib/esm/geometry3d/Range.js.map +1 -1
  188. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  189. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  190. package/package.json +3 -3
@@ -1 +1 @@
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 { Angle } from \"../../geometry3d/Angle\";\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\nimport { StrokeOptions } from \"../StrokeOptions\";\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 private _strokeOptions?: StrokeOptions;\r\n private initStrokeOptions() {\r\n // TODO: compute the exact extrema; until then stroke aggressively\r\n if (undefined === this._strokeOptions) {\r\n this._strokeOptions = new StrokeOptions();\r\n this._strokeOptions.angleTol = Angle.createDegrees(1);\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 this.initStrokeOptions();\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls, this._strokeOptions);\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 this.initStrokeOptions();\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls, this._strokeOptions);\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
+ {"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 { Angle } from \"../../geometry3d/Angle\";\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\nimport { StrokeOptions } from \"../StrokeOptions\";\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 private _strokeOptions?: StrokeOptions;\r\n\r\n private initStrokeOptions() {\r\n // TODO: compute the exact extrema; until then stroke aggressively\r\n if (undefined === this._strokeOptions) {\r\n this._strokeOptions = new StrokeOptions();\r\n this._strokeOptions.angleTol = Angle.createDegrees(1);\r\n }\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 this.initStrokeOptions();\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls, this._strokeOptions);\r\n this.handleLineString3d(ls);\r\n }\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 this.initStrokeOptions();\r\n const ls = LineString3d.create();\r\n bcurve.emitStrokes(ls, this._strokeOptions);\r\n this.handleLineString3d(ls);\r\n }\r\n\r\n private _sineCosinePolynomial?: SineCosinePolynomial;\r\n\r\n private _workPoint?: Point3d;\r\n\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(\r\n geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d\r\n ): 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 /**\r\n * Compute altitudes for the geometry (via dispatch) over the plane defined by the given direction, and\r\n * 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\r\n * zero origin.\r\n * @param lowHigh optional receiver for output\r\n */\r\n public static findExtremePointsInDirection(\r\n geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d, lowHigh?: LineSegment3d\r\n ): 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\r\n /**\r\n * Compute altitudes for the geometry (via dispatch) over the plane defined by the given direction, and return\r\n * 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\r\n * zero origin.\r\n * @param lowHigh optional receiver for output\r\n */\r\n public static findExtremeAltitudesInDirection(\r\n geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d, lowHigh?: Range1d\r\n ): 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\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\r\n * zero origin.\r\n * @param lowHigh optional receiver for output\r\n */\r\n public static findExtremeFractionsAlongDirection(\r\n geometry: GeometryQuery | GrowableXYZArray | Point3d[], direction: Vector3d | Ray3d, lowHigh?: Range1d\r\n ): 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"]}
@@ -3,36 +3,54 @@
3
3
  */
4
4
  import { Angle } from "../../geometry3d/Angle";
5
5
  import { Point3d } from "../../geometry3d/Point3dVector3d";
6
- import { CurveCollection } from "../CurveCollection";
6
+ import { CurveChain, CurveCollection } from "../CurveCollection";
7
7
  import { CurvePrimitive } from "../CurvePrimitive";
8
8
  import { Loop } from "../Loop";
9
9
  import { Path } from "../Path";
10
10
  import { StrokeOptions } from "../StrokeOptions";
11
11
  /**
12
- * * Control parameters for joint construction.
13
- * * Decision order is:
14
- * * if turn angle is greater than minArcDegrees, make an arc.
15
- * * if turn angle is less than or equal maxChamferTurnDegrees, extend curves along tangent to single intersection point.
16
- * * if turn angle is greater than maxChamferTurnDegrees, construct multiple lines that are tangent to the turn circle "from the outside",
17
- * with each equal turn less than maxChamferTurnDegrees.
18
- * * otherwise make single edge.
12
+ * Control parameters for joint construction.
13
+ * * Define a "joint" as the common point between adjacent segments of the input curve.
14
+ * * Define the "turn angle" at a joint to be the angle in [0,pi] between the first derivatives (tangents) of
15
+ * the segments at the joint.
16
+ * * When creating offsets, if an offset needs to do an "outside" turn, the first applicable construction is applied:
17
+ * * If the turn angle is larger than `options.minArcDegrees`, a circular arc is constructed to offset the joint.
18
+ * * If the turn angle is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
19
+ * single intersection point (to create a sharp corner).
20
+ * * If the turn angle is larger than `options.maxChamferDegrees`, the joint is offset with a line string whose edges:
21
+ * * lie outside the arc that would have been created by the first construction
22
+ * * have uniform turn angle less than `options.maxChamferDegrees`
23
+ * * touch the arc at their midpoint (except first and last edge).
19
24
  * @public
20
25
  */
21
26
  export declare class JointOptions {
22
- /** smallest arc to construct.
23
- * * If this control angle is large, arcs are never created.
27
+ /**
28
+ * Smallest arc to construct.
29
+ * * If this control angle is 180 degrees or more, arcs are never created.
24
30
  */
25
31
  minArcDegrees: number;
32
+ /** Largest turn angle at which to construct a sharp corner, or largest turn angle in a multi-segment chamfer. */
26
33
  maxChamferTurnDegrees: number;
34
+ /**
35
+ * Whether to remove the internal turn angle upper bound for sharp corner construction.
36
+ * * By default, a sharp corner is not created at a joint when the turn angle is too large, so as to avoid offsets whose
37
+ * ranges blow up. Internally, this is implemented by applying an upper bound of 120 degrees to `maxChamferTurnDegrees`.
38
+ * * When `allowSharpestCorners` is true, this internal upper bound is removed, allowing sharp corners for turn angles
39
+ * up to `maxChamferTurnDegrees`.
40
+ * * Thus, if you know your input turn angles are no greater than `maxChamferTurnDegrees`, you can create an offset
41
+ * with sharp corners at each joint by setting `minArcDegrees` to 180 and `allowSharpestCorners` to true.
42
+ */
43
+ allowSharpestCorners: boolean;
27
44
  /** Offset distance, positive to left of base curve. */
28
45
  leftOffsetDistance: number;
29
46
  /** Whether to offset elliptical arcs as elliptical arcs (true) or as B-spline curves (false, default). */
30
47
  preserveEllipticalArcs: boolean;
31
- /** Construct JointOptions.
48
+ /**
49
+ * Construct JointOptions.
32
50
  * * leftOffsetDistance is required
33
51
  * * minArcDegrees and maxChamferDegrees are optional.
34
52
  */
35
- constructor(leftOffsetDistance: number, minArcDegrees?: number, maxChamferDegrees?: number, preserveEllipticalArcs?: boolean);
53
+ constructor(leftOffsetDistance: number, minArcDegrees?: number, maxChamferDegrees?: number, preserveEllipticalArcs?: boolean, allowSharpestCorners?: boolean);
36
54
  /** Return a deep clone. */
37
55
  clone(): JointOptions;
38
56
  /** Copy values of input options */
@@ -44,9 +62,10 @@ export declare class JointOptions {
44
62
  * @param leftOffsetDistanceOrOptions
45
63
  */
46
64
  static create(leftOffsetDistanceOrOptions: number | JointOptions): JointOptions;
47
- /** return true if the options indicate this amount of turn should be handled with an arc. */
65
+ /**
66
+ /** Return true if the options indicate this amount of turn should be handled with an arc. */
48
67
  needArc(theta: Angle): boolean;
49
- /** Test if turn by theta should be output as single point. */
68
+ /** Return the number of corners needed to chamfer the given turn angle. */
50
69
  numChamferPoints(theta: Angle): number;
51
70
  }
52
71
  /**
@@ -64,13 +83,17 @@ export declare class OffsetOptions {
64
83
  set minArcDegrees(value: number);
65
84
  get maxChamferTurnDegrees(): number;
66
85
  set maxChamferTurnDegrees(value: number);
86
+ get allowSharpestCorners(): boolean;
87
+ set allowSharpestCorners(value: boolean);
67
88
  get leftOffsetDistance(): number;
68
89
  set leftOffsetDistance(value: number);
69
90
  get preserveEllipticalArcs(): boolean;
70
91
  set preserveEllipticalArcs(value: boolean);
71
- /** Convert variant input into OffsetOptions.
92
+ /**
93
+ * Convert variant input into OffsetOptions.
72
94
  * * If a JointOptions is provided, it is captured.
73
- * * If an OffsetOptions is provided, a reference to it is returned. */
95
+ * * If an OffsetOptions is provided, a reference to it is returned.
96
+ */
74
97
  static create(offsetDistanceOrOptions: number | JointOptions | OffsetOptions): OffsetOptions;
75
98
  /** Convert variant input into offset distance */
76
99
  static getOffsetDistance(offsetDistanceOrOptions: number | JointOptions | OffsetOptions): number;
@@ -82,7 +105,7 @@ export declare class OffsetOptions {
82
105
  * @internal
83
106
  */
84
107
  export declare class PolygonWireOffsetContext {
85
- /** construct a context. */
108
+ /** Construct a context. */
86
109
  constructor();
87
110
  private static _unitAlong;
88
111
  private static _unitPerp;
@@ -90,13 +113,17 @@ export declare class PolygonWireOffsetContext {
90
113
  private static _offsetB;
91
114
  private static createOffsetSegment;
92
115
  /**
93
- * Construct curves that are offset from a polygon.
94
- * * The construction will remove "some" local effects of features smaller than the offset distance, but will not detect self intersection with far-away edges.
95
- * @param points
96
- * @param wrap
97
- * @param offsetDistance
116
+ * Construct a wire (not area) that is offset from given polyline or polygon (which must be in xy-plane or in
117
+ * a plane parallel to xy-plane).
118
+ * * This is a simple wire offset (in the form of a line string), not an area.
119
+ * * If offsetDistance is given as a number, default OffsetOptions are applied.
120
+ * * See [[JointOptions]] class doc for offset construction rules.
121
+ * @param points a single loop or path
122
+ * @param wrap true to offset the wraparound joint. Assumes first = last point.
123
+ * @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or JointOptions
124
+ * object.
98
125
  */
99
- constructPolygonWireXYOffset(points: Point3d[], wrap: boolean, leftOffsetDistanceOrOptions: number | JointOptions): CurveCollection | undefined;
126
+ constructPolygonWireXYOffset(points: Point3d[], wrap: boolean, leftOffsetDistanceOrOptions: number | JointOptions): CurveChain | undefined;
100
127
  }
101
128
  /**
102
129
  * Context for building a wire offset from a Path or Loop of CurvePrimitives
@@ -107,14 +134,14 @@ export declare class CurveChainWireOffsetContext {
107
134
  constructor();
108
135
  /**
109
136
  * Annotate a CurvePrimitive with properties `baseCurveStart` and `baseCurveEnd`.
110
- * * return cp
111
- * @param cp primitive to annotate
137
+ * @param cp curve primitive to annotate
112
138
  * @param startPoint optional start point
113
139
  * @param endPoint optional end point
140
+ * @return the input CurvePrimitive with annotations
114
141
  */
115
142
  static applyBasePoints(cp: CurvePrimitive | undefined, startPoint: Point3d | undefined, endPoint: Point3d | undefined): CurvePrimitive | undefined;
116
143
  /**
117
- * Create the offset of a single primitive.
144
+ * Create the offset of a single primitive as viewed in the xy-plane (ignoring z).
118
145
  * * each primitive may be labeled (as an `any` object) with start or end point of base curve:
119
146
  * * `(primitive as any).baseCurveStart: Point3d`
120
147
  * * `(primitive as any).baseCurveEnd: Point3d`
@@ -124,15 +151,10 @@ export declare class CurveChainWireOffsetContext {
124
151
  static createSingleOffsetPrimitiveXY(g: CurvePrimitive, offsetDistanceOrOptions: number | OffsetOptions): CurvePrimitive | CurvePrimitive[] | undefined;
125
152
  /**
126
153
  * Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
127
- * * The construction will remove "some" local effects of features smaller than the offset distance, but will not detect self intersection among widely separated edges.
154
+ * * The construction will remove "some" local effects of features smaller than the offset distance, but will
155
+ * not detect self intersection among widely separated edges.
128
156
  * * If offsetDistance is given as a number, default OffsetOptions are applied.
129
- * * When the offset needs to do an "outside" turn, the first applicable construction is applied:
130
- * * If the turn is larger than `options.minArcDegrees`, a circular arc is constructed.
131
- * * If the turn is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to single intersection point.
132
- * * If the turn is larger than `options.maxChamferDegrees`, the turn is constructed as a sequence of straight lines that are:
133
- * * outside the arc
134
- * * have uniform turn angle less than `options.maxChamferDegrees`
135
- * * each line segment (except first and last) touches the arc at its midpoint.
157
+ * * See [[JointOptions]] class doc for offset construction rules.
136
158
  * @param curves base curves.
137
159
  * @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
138
160
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PolygonOffsetContext.d.ts","sourceRoot":"","sources":["../../../../src/curve/internalContexts/PolygonOffsetContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolygonOffsetContext.d.ts","sourceRoot":"","sources":["../../../../src/curve/internalContexts/PolygonOffsetContext.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAY,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAejD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACI,aAAa,SAAS;IAC7B,iHAAiH;IAC1G,qBAAqB,SAAM;IAClC;;;;;;;;OAQG;IACI,oBAAoB,UAAS;IACpC,uDAAuD;IAChD,kBAAkB,EAAE,MAAM,CAAK;IACtC,0GAA0G;IACnG,sBAAsB,UAAS;IACtC;;;;OAIG;gBAED,kBAAkB,EAAE,MAAM,EAAE,aAAa,SAAM,EAAE,iBAAiB,SAAK,EACvE,sBAAsB,UAAQ,EAAE,oBAAoB,UAAQ;IAQ9D,2BAA2B;IACpB,KAAK,IAAI,YAAY;IAM5B,mCAAmC;IAC5B,OAAO,CAAC,KAAK,EAAE,YAAY;IAOlC;;;;;OAKG;WACW,MAAM,CAAC,2BAA2B,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY;IAKtF;kGAC8F;IACvF,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAGrC,2EAA2E;IACpE,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;CAY9C;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,yDAAyD;IAClD,YAAY,EAAE,YAAY,CAAC;IAClC,qDAAqD;IAC9C,aAAa,EAAE,aAAa,CAAC;IACpC,8CAA8C;gBAClC,uBAAuB,EAAE,MAAM,GAAG,YAAY,EAAE,aAAa,CAAC,EAAE,aAAa;IAIzF,IAAW,aAAa,IAAI,MAAM,CAEjC;IACD,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,EAErC;IACD,IAAW,qBAAqB,IAAI,MAAM,CAEzC;IACD,IAAW,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAE7C;IACD,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IACD,IAAW,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAE7C;IACD,IAAW,kBAAkB,IAAI,MAAM,CAEtC;IACD,IAAW,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAE1C;IACD,IAAW,sBAAsB,IAAI,OAAO,CAE3C;IACD,IAAW,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAE/C;IACD;;;;OAIG;WACW,MAAM,CAAC,uBAAuB,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa;IAKnG,iDAAiD;WACnC,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM;IAKvG,2BAA2B;IACpB,KAAK,IAAI,aAAa;CAG9B;AAiZD;;;GAGG;AACH,qBAAa,wBAAwB;IACnC,2BAA2B;;IAE3B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqB;IAC9C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAE3C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAelC;;;;;;;;;;OAUG;IACI,4BAA4B,CACjC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,MAAM,GAAG,YAAY,GACnF,UAAU,GAAG,SAAS;CAwD1B;AAED;;;GAGG;AACH,qBAAa,2BAA2B;IACtC,2BAA2B;;IAE3B;;;;;;OAMG;WACW,eAAe,CAC3B,EAAE,EAAE,cAAc,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAC7F,cAAc,GAAG,SAAS;IAS7B;;;;;;;OAOG;WACW,6BAA6B,CACzC,CAAC,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,GAAG,aAAa,GACjE,cAAc,GAAG,cAAc,EAAE,GAAG,SAAS;IAehD;;;;;;;;OAQG;WACW,sBAAsB,CAClC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,uBAAuB,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,GAClF,eAAe,GAAG,SAAS;CA6C/B"}