@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.
- package/lib/cjs/bspline/BSplineCurve.d.ts +9 -3
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +12 -4
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.d.ts +10 -3
- package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.js +12 -4
- package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +8 -2
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +11 -2
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +8 -2
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -0
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +9 -2
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +9 -0
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.js +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +8 -2
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +8 -0
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts +8 -2
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +9 -0
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts +7 -1
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +9 -0
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/ProxyCurve.d.ts +9 -7
- package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/cjs/curve/ProxyCurve.js +4 -0
- package/lib/cjs/curve/ProxyCurve.js.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +2 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js +5 -4
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/cjs/curve/RegionOps.d.ts +5 -0
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +16 -3
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +8 -6
- package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js +56 -47
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +29 -8
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +64 -10
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +12 -7
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js +12 -3
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +1 -1
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +1 -1
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/topology/Merging.d.ts.map +1 -1
- package/lib/cjs/topology/Merging.js +9 -1
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +9 -3
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +12 -4
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.d.ts +10 -3
- package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.js +12 -4
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +8 -2
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +11 -2
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +8 -2
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -0
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +9 -2
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +9 -0
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.js +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +8 -2
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +8 -0
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts +8 -2
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +9 -0
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts +7 -1
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +9 -0
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/ProxyCurve.d.ts +9 -7
- package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/esm/curve/ProxyCurve.js +4 -0
- package/lib/esm/curve/ProxyCurve.js.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts +2 -1
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js +5 -4
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/esm/curve/RegionOps.d.ts +5 -0
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +16 -3
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +8 -6
- package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js +57 -48
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +29 -8
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +64 -10
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +12 -7
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js +12 -3
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +1 -1
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +1 -1
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/topology/Merging.d.ts.map +1 -1
- package/lib/esm/topology/Merging.js +9 -1
- package/lib/esm/topology/Merging.js.map +1 -1
- package/package.json +4 -4
|
@@ -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\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 {
|
|
9
|
-
import { LineString3d } from "../LineString3d";
|
|
5
|
+
import { CurvePrimitive } from "../CurvePrimitive";
|
|
10
6
|
import { OffsetOptions } from "../internalContexts/PolygonOffsetContext";
|
|
11
|
-
import {
|
|
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":"
|
|
1
|
+
{"version":3,"file":"TransitionSpiral3d.d.ts","sourceRoot":"","sources":["../../../../src/curve/spiral/TransitionSpiral3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,14 @@ exports.TransitionSpiral3d = void 0;
|
|
|
8
8
|
/** @packageDocumentation
|
|
9
9
|
* @module Curve
|
|
10
10
|
*/
|
|
11
|
-
const
|
|
11
|
+
const Geometry_1 = require("../../Geometry");
|
|
12
|
+
const Range_1 = require("../../geometry3d/Range");
|
|
12
13
|
const Segment1d_1 = require("../../geometry3d/Segment1d");
|
|
13
14
|
const Transform_1 = require("../../geometry3d/Transform");
|
|
14
|
-
const
|
|
15
|
+
const CurvePrimitive_1 = require("../CurvePrimitive");
|
|
15
16
|
const CurveOffsetXYHandler_1 = require("../internalContexts/CurveOffsetXYHandler");
|
|
17
|
+
const PlaneAltitudeRangeContext_1 = require("../internalContexts/PlaneAltitudeRangeContext");
|
|
16
18
|
const PolygonOffsetContext_1 = require("../internalContexts/PolygonOffsetContext");
|
|
17
|
-
const Range_1 = require("../../geometry3d/Range");
|
|
18
19
|
/**
|
|
19
20
|
* TransitionSpiral3d is a base class for multiple variants of spirals.
|
|
20
21
|
* * The menagerie of spiral types have 2 broad categories:
|
|
@@ -151,6 +152,14 @@ class TransitionSpiral3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
151
152
|
count = Geometry_1.Geometry.clamp(5, count, 30);
|
|
152
153
|
return this.rangeBetweenFractionsByCount(fractionA, fractionB, count, transform, 0.5);
|
|
153
154
|
}
|
|
155
|
+
/** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
|
|
156
|
+
* @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
|
|
157
|
+
* @param lowHigh optional receiver for output
|
|
158
|
+
* @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.
|
|
159
|
+
*/
|
|
160
|
+
projectedParameterRange(ray, lowHigh) {
|
|
161
|
+
return PlaneAltitudeRangeContext_1.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
|
|
162
|
+
}
|
|
154
163
|
}
|
|
155
164
|
exports.TransitionSpiral3d = TransitionSpiral3d;
|
|
156
165
|
//# sourceMappingURL=TransitionSpiral3d.js.map
|
|
@@ -1 +1 @@
|
|
|
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 { 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"}
|
|
@@ -1310,7 +1310,7 @@ class Range2d extends RangeBase {
|
|
|
1310
1310
|
yLength() { const a = this.high.y - this.low.y; return a > 0.0 ? a : 0.0; }
|
|
1311
1311
|
/** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
|
|
1312
1312
|
diagonal(result) { return this.low.vectorTo(this.high, result); }
|
|
1313
|
-
/** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */
|
|
1313
|
+
/** 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. */
|
|
1314
1314
|
diagonalFractionToPoint(fraction, result) { return this.low.interpolate(fraction, this.high, result); }
|
|
1315
1315
|
/** return a point given by fractional positions on the XY axes. This is done with no check for isNull !!! */
|
|
1316
1316
|
fractionToPoint(fractionX, fractionY, result) {
|