@itwin/core-geometry 4.10.0-dev.32 → 4.10.0-dev.33

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 (173) hide show
  1. package/lib/cjs/Geometry.js +2 -2
  2. package/lib/cjs/Geometry.js.map +1 -1
  3. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  4. package/lib/cjs/bspline/BSpline1dNd.js +0 -1
  5. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve.d.ts +5 -3
  7. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurve.js +5 -4
  9. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  10. package/lib/cjs/clipping/ClipVector.js +1 -1
  11. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  12. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  13. package/lib/cjs/curve/Arc3d.js.map +1 -1
  14. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  15. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  16. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -7
  17. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  18. package/lib/cjs/curve/CurveCollection.d.ts +21 -2
  19. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  20. package/lib/cjs/curve/CurveCollection.js +45 -10
  21. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  22. package/lib/cjs/curve/CurveExtendMode.d.ts +18 -15
  23. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  24. package/lib/cjs/curve/CurveExtendMode.js +18 -17
  25. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  26. package/lib/cjs/curve/CurvePrimitive.d.ts +9 -5
  27. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  28. package/lib/cjs/curve/CurvePrimitive.js +9 -5
  29. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  30. package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
  31. package/lib/cjs/curve/CurveProcessor.js +0 -1
  32. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  33. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  34. package/lib/cjs/curve/LineSegment3d.js +0 -1
  35. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  36. package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -1
  37. package/lib/cjs/curve/OffsetOptions.js +4 -4
  38. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  39. package/lib/cjs/curve/Path.d.ts +14 -0
  40. package/lib/cjs/curve/Path.d.ts.map +1 -1
  41. package/lib/cjs/curve/Path.js +27 -0
  42. package/lib/cjs/curve/Path.js.map +1 -1
  43. package/lib/cjs/curve/PointString3d.d.ts.map +1 -1
  44. package/lib/cjs/curve/PointString3d.js +0 -1
  45. package/lib/cjs/curve/PointString3d.js.map +1 -1
  46. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  47. package/lib/cjs/curve/StrokeOptions.js +0 -1
  48. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  49. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +5 -4
  50. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  51. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  52. package/lib/cjs/geometry3d/FrameBuilder.js +0 -1
  53. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  54. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  55. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  56. package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  57. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -3
  58. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  59. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  60. package/lib/cjs/geometry3d/PointHelpers.js +0 -1
  61. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  62. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  63. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  64. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  65. package/lib/cjs/numerics/BezierPolynomials.js +0 -1
  66. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  67. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  68. package/lib/cjs/polyface/AuxData.js.map +1 -1
  69. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  70. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +0 -1
  71. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  72. package/lib/cjs/polyface/Polyface.d.ts +2 -2
  73. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  74. package/lib/cjs/polyface/Polyface.js +0 -1
  75. package/lib/cjs/polyface/Polyface.js.map +1 -1
  76. package/lib/cjs/polyface/PolyfaceBuilder.js +1 -1
  77. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  78. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  79. package/lib/cjs/polyface/PolyfaceClip.js +0 -1
  80. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  81. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  82. package/lib/cjs/polyface/PolyfaceQuery.js +0 -1
  83. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  84. package/lib/cjs/serialization/DeepCompare.d.ts.map +1 -1
  85. package/lib/cjs/serialization/DeepCompare.js +0 -1
  86. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  87. package/lib/esm/Geometry.js +2 -2
  88. package/lib/esm/Geometry.js.map +1 -1
  89. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  90. package/lib/esm/bspline/BSpline1dNd.js +0 -1
  91. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  92. package/lib/esm/bspline/BSplineCurve.d.ts +5 -3
  93. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  94. package/lib/esm/bspline/BSplineCurve.js +5 -4
  95. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  96. package/lib/esm/clipping/ClipVector.js +1 -1
  97. package/lib/esm/clipping/ClipVector.js.map +1 -1
  98. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  99. package/lib/esm/curve/Arc3d.js.map +1 -1
  100. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  101. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  102. package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -7
  103. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  104. package/lib/esm/curve/CurveCollection.d.ts +21 -2
  105. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  106. package/lib/esm/curve/CurveCollection.js +45 -10
  107. package/lib/esm/curve/CurveCollection.js.map +1 -1
  108. package/lib/esm/curve/CurveExtendMode.d.ts +18 -15
  109. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  110. package/lib/esm/curve/CurveExtendMode.js +18 -17
  111. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  112. package/lib/esm/curve/CurvePrimitive.d.ts +9 -5
  113. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  114. package/lib/esm/curve/CurvePrimitive.js +9 -5
  115. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  116. package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
  117. package/lib/esm/curve/CurveProcessor.js +0 -1
  118. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  119. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  120. package/lib/esm/curve/LineSegment3d.js +0 -1
  121. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  122. package/lib/esm/curve/OffsetOptions.d.ts.map +1 -1
  123. package/lib/esm/curve/OffsetOptions.js +4 -4
  124. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  125. package/lib/esm/curve/Path.d.ts +14 -0
  126. package/lib/esm/curve/Path.d.ts.map +1 -1
  127. package/lib/esm/curve/Path.js +27 -0
  128. package/lib/esm/curve/Path.js.map +1 -1
  129. package/lib/esm/curve/PointString3d.d.ts.map +1 -1
  130. package/lib/esm/curve/PointString3d.js +0 -1
  131. package/lib/esm/curve/PointString3d.js.map +1 -1
  132. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  133. package/lib/esm/curve/StrokeOptions.js +0 -1
  134. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  135. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +5 -4
  136. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  137. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  138. package/lib/esm/geometry3d/FrameBuilder.js +0 -1
  139. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  140. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  141. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  142. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  143. package/lib/esm/geometry3d/Point2dArrayCarrier.js +0 -1
  144. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  145. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  146. package/lib/esm/geometry3d/PointHelpers.js +0 -1
  147. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  148. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  149. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  150. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  151. package/lib/esm/numerics/BezierPolynomials.js +0 -1
  152. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  153. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  154. package/lib/esm/polyface/AuxData.js.map +1 -1
  155. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  156. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +0 -1
  157. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  158. package/lib/esm/polyface/Polyface.d.ts +2 -2
  159. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  160. package/lib/esm/polyface/Polyface.js +0 -1
  161. package/lib/esm/polyface/Polyface.js.map +1 -1
  162. package/lib/esm/polyface/PolyfaceBuilder.js +1 -1
  163. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  164. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  165. package/lib/esm/polyface/PolyfaceClip.js +0 -1
  166. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  167. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  168. package/lib/esm/polyface/PolyfaceQuery.js +0 -1
  169. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  170. package/lib/esm/serialization/DeepCompare.d.ts.map +1 -1
  171. package/lib/esm/serialization/DeepCompare.js +0 -1
  172. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  173. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ClipVector.js","sourceRoot":"","sources":["../../../src/clipping/ClipVector.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 CartesianGeometry\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { AnnounceNumberNumber, AnnounceNumberNumberCurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { IndexedXYZCollection } from \"../geometry3d/IndexedXYZCollection\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { GrowableXYZArrayCache } from \"../geometry3d/ReusableObjectCache\";\r\nimport { Segment1d } from \"../geometry3d/Segment1d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { BooleanClipNodeIntersection } from \"./BooleanClipNode\";\r\nimport { ClipPlane } from \"./ClipPlane\";\r\nimport { ClipMaskXYZRangePlanes, ClipPrimitive, ClipPrimitiveProps, ClipShape } from \"./ClipPrimitive\";\r\nimport { Clipper, ClipPlaneContainment } from \"./ClipUtils\";\r\nimport { ConvexClipPlaneSet } from \"./ConvexClipPlaneSet\";\r\n\r\n/**\r\n * Wire format describing a [[ClipVector]].\r\n * @public\r\n */\r\nexport type ClipVectorProps = ClipPrimitiveProps[];\r\n\r\n/**\r\n * Class holding an array structure of shapes defined by `ClipPrimitive`\r\n * * The `ClipVector` defines an intersection of the member `ClipPrimitive` regions.\r\n * * In the most common usage, one of the `ClipPrimitive` will be an outer region, and all others are holes with marker\r\n * flag indicating that the outside of each hole is live.\r\n * @public\r\n */\r\nexport class ClipVector implements Clipper {\r\n private _clips: ClipPrimitive[];\r\n /**\r\n * Range acting as first filter.\r\n * * This is understood as overall range limit, not as precise planes.\r\n * * Applying any rotation to the whole ClipVector generally expands this range, rather than exactly transforming\r\n * its planes.\r\n */\r\n public boundingRange: Range3d = Range3d.createNull();\r\n /** Returns a reference to the array of ClipShapes. */\r\n public get clips() { return this._clips; }\r\n private constructor(clips?: ClipPrimitive[]) {\r\n this._clips = clips ? clips : [];\r\n }\r\n /** Returns true if this ClipVector contains a ClipPrimitive. */\r\n public get isValid(): boolean { return this._clips.length > 0; }\r\n /** Create a ClipVector with an empty set of ClipShapes. */\r\n public static createEmpty(result?: ClipVector): ClipVector {\r\n if (result) {\r\n result._clips.length = 0;\r\n return result;\r\n }\r\n return new ClipVector();\r\n }\r\n /** Create a ClipVector from an array of ClipPrimitives (or derived classes) (capture the pointers) */\r\n public static createCapture(clips: ClipPrimitive[], result?: ClipVector): ClipVector {\r\n if (result) {\r\n result._clips = clips;\r\n return result;\r\n }\r\n return new ClipVector(clips);\r\n }\r\n /** Create a ClipVector from (clones of) an array of ClipPrimitives */\r\n public static create(clips: ClipPrimitive[], result?: ClipVector): ClipVector {\r\n const clipClones: ClipPrimitive[] = [];\r\n for (const clip of clips)\r\n clipClones.push(clip.clone());\r\n return ClipVector.createCapture(clipClones, result);\r\n }\r\n /** Create a deep copy of another ClipVector */\r\n public clone(result?: ClipVector): ClipVector {\r\n const retVal = result ? result : new ClipVector();\r\n retVal._clips.length = 0;\r\n for (const clip of this._clips) {\r\n retVal._clips.push(clip.clone());\r\n }\r\n retVal.boundingRange.setFrom(this.boundingRange);\r\n return retVal;\r\n }\r\n /** Parse this ClipVector into a JSON object. */\r\n public toJSON(): ClipVectorProps {\r\n if (!this.isValid)\r\n return [];\r\n\r\n return this.clips.map((clip) => clip.toJSON());\r\n }\r\n /** Parse a JSON object into a new ClipVector. */\r\n public static fromJSON(json: ClipVectorProps | undefined, result?: ClipVector): ClipVector {\r\n result = result ? result : new ClipVector();\r\n result.clear();\r\n if (!Array.isArray(json))\r\n return result;\r\n try {\r\n for (const clip of json) {\r\n const clipPrim = ClipPrimitive.fromJSON(clip);\r\n if (clipPrim)\r\n result._clips.push(clipPrim);\r\n }\r\n } catch (e) {\r\n result.clear();\r\n }\r\n return result;\r\n }\r\n /** Empties out the array of ClipShapes. */\r\n public clear() {\r\n this._clips.length = 0;\r\n }\r\n /** Append a deep copy of the given ClipPrimitive to this ClipVector. */\r\n public appendClone(clip: ClipPrimitive) {\r\n this._clips.push(clip.clone());\r\n }\r\n /** Append a reference of the given ClipPrimitive to this ClipVector. */\r\n public appendReference(clip: ClipPrimitive) {\r\n this._clips.push(clip);\r\n }\r\n /** Create and append a new ClipPrimitive to the array given a shape as an array of points. Returns true if successful. */\r\n public appendShape(shape: Point3d[], zLow?: number, zHigh?: number,\r\n transform?: Transform, isMask: boolean = false, invisible: boolean = false): boolean {\r\n const clip = ClipShape.createShape(shape, zLow, zHigh, transform, isMask, invisible);\r\n if (!clip)\r\n return false;\r\n this._clips.push(clip);\r\n return true;\r\n }\r\n /** Returns true if the given point lies inside all of this ClipVector's ClipShapes (by rule of intersection).*/\r\n public pointInside(point: Point3d, onTolerance: number = Geometry.smallMetricDistanceSquared): boolean {\r\n return this.isPointOnOrInside(point, onTolerance);\r\n }\r\n /**\r\n * Method from [[Clipper]] interface.\r\n * * Implement as dispatch to clipPlaneSets as supplied by derived class.\r\n */\r\n public isPointOnOrInside(point: Point3d, onTolerance: number = Geometry.smallMetricDistanceSquared): boolean {\r\n if (!this.boundingRange.isNull && !this.boundingRange.containsPoint(point))\r\n return false;\r\n\r\n for (const clip of this._clips) {\r\n if (!clip.pointInside(point, onTolerance))\r\n return false;\r\n }\r\n return true;\r\n }\r\n // Proxy object to implement line and arc clip.\r\n private _clipNodeProxy?: BooleanClipNodeIntersection;\r\n private ensureProxyClipNode(): boolean {\r\n if (this._clipNodeProxy)\r\n return true;\r\n this._clipNodeProxy = new BooleanClipNodeIntersection(true);\r\n let numChildren = 0;\r\n for (const child of this._clips) {\r\n const q = child.fetchClipPlanesRef();\r\n if (q) {\r\n numChildren++;\r\n this._clipNodeProxy.captureChild(q);\r\n }\r\n }\r\n return numChildren > 0;\r\n }\r\n /**\r\n * Method from [[Clipper]] interface.\r\n * * Implement as dispatch to clipPlaneSets as supplied by derived class.\r\n */\r\n public announceClippedSegmentIntervals(\r\n f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: AnnounceNumberNumber,\r\n ): boolean {\r\n this.ensureProxyClipNode();\r\n if (this._clipNodeProxy)\r\n return this._clipNodeProxy.announceClippedSegmentIntervals(f0, f1, pointA, pointB, announce);\r\n return false;\r\n }\r\n /** Method from [[Clipper]] interface.\r\n * * Implement as dispatch to clipPlaneSets as supplied by derived class.\r\n */\r\n public announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n this.ensureProxyClipNode();\r\n if (this._clipNodeProxy)\r\n return this._clipNodeProxy.announceClippedArcIntervals(arc, announce);\r\n return false;\r\n }\r\n /** Execute polygon clip as intersection of the child primitives. */\r\n public appendPolygonClip(\r\n xyz: IndexedXYZCollection,\r\n insideFragments: GrowableXYZArray[],\r\n outsideFragments: GrowableXYZArray[],\r\n arrayCache: GrowableXYZArrayCache) {\r\n this.ensureProxyClipNode();\r\n if (this._clipNodeProxy)\r\n this._clipNodeProxy.appendPolygonClip(xyz, insideFragments, outsideFragments, arrayCache);\r\n }\r\n /**\r\n * Transforms this ClipVector to a new coordinate-system.\r\n * Note that if the transform has rotate and scale the boundingRange member expands.\r\n * Returns true if successful.\r\n */\r\n public transformInPlace(transform: Transform): boolean {\r\n for (const clip of this._clips)\r\n if (clip.transformInPlace(transform) === false)\r\n return false;\r\n\r\n if (!this.boundingRange.isNull)\r\n transform.multiplyRange(this.boundingRange, this.boundingRange);\r\n\r\n return true;\r\n }\r\n /**\r\n * A simple way of packaging this ClipVector's ClipShape points into a multidimensional array, while also\r\n * taking into account each ClipPrimitive's individual transforms.\r\n * ClipPrimitives OTHER THAN ClipShape are ignored.\r\n * Information out:\r\n * - All of the loop points are stored in the multidimensional Point3d array given (will return unchanged upon failure).\r\n * - If given a transform, will be set from the transformFromClip of the first ClipPrimitive.\r\n * - The ClipMask of the final ClipPrimitive is stored in the returned array at index 0.\r\n * - The last valid zLow found is stored in the returned array at index 1.\r\n * - The last valid zHigh found is stored in the returned array at index 2.\r\n */\r\n public extractBoundaryLoops(loopPoints: Point3d[][], transform?: Transform): number[] {\r\n let clipM = ClipMaskXYZRangePlanes.None;\r\n let zBack = -Number.MAX_VALUE;\r\n let zFront = Number.MAX_VALUE;\r\n const retVal: number[] = [];\r\n let nLoops = 0;\r\n\r\n if (this._clips.length === 0)\r\n return retVal;\r\n let firstClipShape: ClipShape | undefined;\r\n const deltaTrans = Transform.createIdentity();\r\n\r\n for (const clip of this._clips) {\r\n if (clip instanceof ClipShape) {\r\n if (firstClipShape !== undefined && clip !== firstClipShape) { // Is not the first iteration\r\n let fwdTrans = Transform.createIdentity();\r\n let invTrans = Transform.createIdentity();\r\n\r\n if (firstClipShape.transformValid && clip.transformValid) {\r\n fwdTrans = clip.transformFromClip!.clone();\r\n invTrans = firstClipShape.transformToClip!.clone();\r\n }\r\n deltaTrans.setFrom(invTrans.multiplyTransformTransform(fwdTrans));\r\n }\r\n if (!firstClipShape)\r\n firstClipShape = clip;\r\n loopPoints[nLoops] = [];\r\n\r\n if (clip.polygon !== undefined) {\r\n clipM = ClipMaskXYZRangePlanes.XAndY;\r\n\r\n if (clip.zHighValid) {\r\n clipM = clipM | ClipMaskXYZRangePlanes.ZHigh;\r\n zFront = clip.zHigh!;\r\n }\r\n if (clip.zLowValid) {\r\n clipM = clipM | ClipMaskXYZRangePlanes.ZLow;\r\n zBack = clip.zLow!;\r\n }\r\n\r\n for (const point of clip.polygon)\r\n loopPoints[nLoops].push(point.clone());\r\n deltaTrans.multiplyPoint3dArray(loopPoints[nLoops], loopPoints[nLoops]);\r\n nLoops++;\r\n }\r\n }\r\n }\r\n retVal.push(clipM);\r\n retVal.push(zBack);\r\n retVal.push(zFront);\r\n if (transform && firstClipShape)\r\n transform.setFrom(firstClipShape.transformFromClip!);\r\n return retVal;\r\n }\r\n /** Sets this ClipVector and all of its members to the visibility specified. */\r\n public setInvisible(invisible: boolean) {\r\n for (const clip of this._clips)\r\n clip.setInvisible(invisible);\r\n }\r\n /**\r\n * For every clip, parse the member point array into the member clip plane object (only for clipPlanes member,\r\n * not the mask)\r\n */\r\n public parseClipPlanes() {\r\n for (const clip of this._clips)\r\n clip.fetchClipPlanesRef();\r\n }\r\n /**\r\n * Multiply all ClipPlanes DPoint4d by matrix.\r\n * @param matrix matrix to apply.\r\n * @param invert if true, use in verse of the matrix.\r\n * @param transpose if true, use the transpose of the matrix (or inverse, per invert parameter)\r\n * * Note that if matrixA is applied to all of space, the matrix to send to this method to get a corresponding effect on the plane is the inverse transpose of matrixA\r\n * * Callers that will apply the same matrix to many planes should pre-invert the matrix for efficiency.\r\n * * Both params default to true to get the full effect of transforming space.\r\n * @param matrix matrix to apply\r\n * @returns false if matrix inversion fails.\r\n */\r\n public multiplyPlanesByMatrix4d(matrix: Matrix4d, invert: boolean = true, transpose: boolean = true): boolean {\r\n if (invert) { // form inverse once here, reuse for all planes\r\n const inverse = matrix.createInverse();\r\n if (!inverse)\r\n return false;\r\n return this.multiplyPlanesByMatrix4d(inverse, false, transpose);\r\n }\r\n // no inverse necessary -- lower level cannot fail.\r\n for (const clip of this._clips)\r\n clip.multiplyPlanesByMatrix4d(matrix, false, transpose);\r\n return true;\r\n }\r\n /**\r\n * Determines whether the given points fall inside or outside this set of ClipShapes. If any set is defined\r\n * by masking planes, checks the mask planes only, provided that ignoreMasks is false. Otherwise, checks the\r\n * _clipPlanes member.\r\n */\r\n public classifyPointContainment(points: Point3d[], ignoreMasks: boolean = false): ClipPlaneContainment {\r\n let currentContainment = ClipPlaneContainment.Ambiguous;\r\n\r\n for (const primitive of this._clips) {\r\n const thisContainment = primitive.classifyPointContainment(points, ignoreMasks);\r\n\r\n if (ClipPlaneContainment.Ambiguous === thisContainment)\r\n return ClipPlaneContainment.Ambiguous;\r\n\r\n if (ClipPlaneContainment.Ambiguous === currentContainment)\r\n currentContainment = thisContainment;\r\n else if (currentContainment !== thisContainment)\r\n return ClipPlaneContainment.Ambiguous;\r\n }\r\n return currentContainment;\r\n }\r\n /**\r\n * Determines whether a 3D range lies inside or outside this set of ClipShapes. If any set is defined by masking planes,\r\n * checks the mask planes only, provided that ignoreMasks is false. Otherwise, checks the clip planes member.\r\n */\r\n public classifyRangeContainment(range: Range3d, ignoreMasks: boolean): ClipPlaneContainment {\r\n const corners: Point3d[] = range.corners();\r\n return this.classifyPointContainment(corners, ignoreMasks);\r\n }\r\n /**\r\n * For an array of points (making up a LineString), tests whether the segment between each point lies inside the\r\n * ClipVector.\r\n * If true, returns true immediately.\r\n */\r\n public isAnyLineStringPointInside(points: Point3d[]): boolean {\r\n for (const clip of this._clips) {\r\n const clipPlaneSet = clip.fetchClipPlanesRef();\r\n if (clipPlaneSet !== undefined) {\r\n for (let i = 0; i + 1 < points.length; i++) {\r\n const segment = LineSegment3d.create(points[i], points[i + 1]);\r\n if (clipPlaneSet.isAnyPointInOrOnFromSegment(segment))\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n /** Note: Line segments are used to represent 1 dimensional intervals here, rather than segments. */\r\n public sumSizes(intervals: Segment1d[], begin: number, end: number): number {\r\n let s = 0.0;\r\n for (let i = begin; i < end; i++)\r\n s += (intervals[i].x1 - intervals[i].x0);\r\n return s;\r\n }\r\n private static readonly _TARGET_FRACTION_SUM = 0.99999999;\r\n /**\r\n * For an array of points that make up a LineString, develops a line segment between each point pair,\r\n * and returns true if all segments lie inside this ClipVector.\r\n */\r\n public isLineStringCompletelyContained(points: Point3d[]): boolean {\r\n const clipIntervals: Segment1d[] = [];\r\n\r\n for (let i = 0; i + 1 < points.length; i++) {\r\n const segment = LineSegment3d.create(points[i], points[i + 1]);\r\n let fractionSum = 0.0;\r\n let index0 = 0;\r\n\r\n for (const clip of this._clips) {\r\n const clipPlaneSet = clip.fetchClipPlanesRef();\r\n if (clipPlaneSet !== undefined) {\r\n clipPlaneSet.appendIntervalsFromSegment(segment, clipIntervals);\r\n const index1 = clipIntervals.length;\r\n fractionSum += this.sumSizes(clipIntervals, index0, index1);\r\n index0 = index1;\r\n // ASSUME primitives are non-overlapping...\r\n if (fractionSum >= ClipVector._TARGET_FRACTION_SUM)\r\n break;\r\n }\r\n }\r\n if (fractionSum < ClipVector._TARGET_FRACTION_SUM)\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * Serializes this ClipVector to a compact string representation appropriate for transmission as part of a URL.\r\n * Chiefly used for requesting [Tile]($frontend)s with section cut facets.\r\n * UnionOfConvexClipPlaneSets is obtained for each ClipPrimitive. The encoding is as follows:\r\n * ClipVector:\r\n * ClipPrimitive[]\r\n * _\r\n * ClipPrimitive:\r\n * invisible: 0|1\r\n * ConvexClipPlaneSet[]\r\n * _\r\n * ConvexClipPlaneSet:\r\n * ClipPlane[]\r\n * _\r\n * ClipPlane:\r\n * flags: 0|1|2|3, where 1=invisible and 2=interior\r\n * inwardNormal: Number[3]\r\n * distance: Number\r\n * Number:\r\n * number\r\n * _\r\n */\r\n public toCompactString(): string {\r\n function formatNumber(num: number) {\r\n return `${num.toString()}_`;\r\n }\r\n function formatVector3d(vec: Vector3d) {\r\n return `${formatNumber(vec.x)}${formatNumber(vec.y)}${formatNumber(vec.z)}`;\r\n }\r\n function formatFlags(flags: number) {\r\n const f = flags.toString();\r\n assert(1 === f.length);\r\n return f;\r\n }\r\n function formatPlane(plane: ClipPlane) {\r\n let flags = plane.invisible ? 1 : 0;\r\n flags |= (plane.interior ? 2 : 0);\r\n return `${formatFlags(flags)}${formatVector3d(plane.inwardNormalRef)}${formatNumber(plane.distance)}`;\r\n }\r\n function formatPlaneSet(set: ConvexClipPlaneSet) {\r\n let planes = \"\";\r\n for (const plane of set.planes)\r\n planes = `${planes}${formatPlane(plane)}`;\r\n\r\n return `${planes}_`;\r\n }\r\n function formatPrimitive(prim: ClipPrimitive) {\r\n const flags = prim.invisible ? 1 : 0;\r\n let str = flags.toString();\r\n assert(1 === str.length);\r\n\r\n const union = prim.fetchClipPlanesRef();\r\n if (union) {\r\n for (const s of union.convexSets)\r\n str = `${str}${formatPlaneSet(s)}`;\r\n }\r\n return `${str}_`;\r\n }\r\n let result = \"\";\r\n for (const primitive of this.clips)\r\n result = `${result}${formatPrimitive(primitive)}`;\r\n return `${result}_`;\r\n }\r\n}\r\n\r\n/**\r\n * Bundles a [[ClipVector]] with its compact string representation.\r\n * @note The string representation is computed once; the ClipVector is assumed not to be subsequently modified.\r\n * @see [[StringifiedClipVector.fromClipVector]] to create from a ClipVector.\r\n * @see [[ClipVector.toCompactString]] for a description of the string representation.\r\n * @alpha\r\n */\r\nexport type StringifiedClipVector = ClipVector & { readonly clipString: string };\r\n\r\n/**\r\n * Bundles a ClipVector with its compact string representation.\r\n * @note The string representation is computed once; the ClipVector is assumed not to be subsequently modified.\r\n * @alpha\r\n */\r\nexport namespace StringifiedClipVector { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Create from a ClipVector.\r\n * @param clip The ClipVector to stringify.\r\n * @returns The input ClipVector with its compact string representation, or undefined if the input is undefined or empty.\r\n * @note The string representation is computed once; the ClipVector is assumed not to be subsequently modified.\r\n */\r\n export function fromClipVector(clip?: ClipVector): StringifiedClipVector | undefined {\r\n if (!clip || !clip.isValid)\r\n return undefined;\r\n\r\n const ret = clip as any;\r\n if (undefined === ret.clipString)\r\n ret.clipString = clip.toCompactString();\r\n\r\n const stringified = ret as StringifiedClipVector;\r\n assert(undefined !== stringified.clipString);\r\n return stringified;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ClipVector.js","sourceRoot":"","sources":["../../../src/clipping/ClipVector.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 CartesianGeometry\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { AnnounceNumberNumber, AnnounceNumberNumberCurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { IndexedXYZCollection } from \"../geometry3d/IndexedXYZCollection\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { GrowableXYZArrayCache } from \"../geometry3d/ReusableObjectCache\";\r\nimport { Segment1d } from \"../geometry3d/Segment1d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { BooleanClipNodeIntersection } from \"./BooleanClipNode\";\r\nimport { ClipPlane } from \"./ClipPlane\";\r\nimport { ClipMaskXYZRangePlanes, ClipPrimitive, ClipPrimitiveProps, ClipShape } from \"./ClipPrimitive\";\r\nimport { Clipper, ClipPlaneContainment } from \"./ClipUtils\";\r\nimport { ConvexClipPlaneSet } from \"./ConvexClipPlaneSet\";\r\n\r\n/**\r\n * Wire format describing a [[ClipVector]].\r\n * @public\r\n */\r\nexport type ClipVectorProps = ClipPrimitiveProps[];\r\n\r\n/**\r\n * Class holding an array structure of shapes defined by `ClipPrimitive`\r\n * * The `ClipVector` defines an intersection of the member `ClipPrimitive` regions.\r\n * * In the most common usage, one of the `ClipPrimitive` will be an outer region, and all others are holes with marker\r\n * flag indicating that the outside of each hole is live.\r\n * @public\r\n */\r\nexport class ClipVector implements Clipper {\r\n private _clips: ClipPrimitive[];\r\n /**\r\n * Range acting as first filter.\r\n * * This is understood as overall range limit, not as precise planes.\r\n * * Applying any rotation to the whole ClipVector generally expands this range, rather than exactly transforming\r\n * its planes.\r\n */\r\n public boundingRange: Range3d = Range3d.createNull();\r\n /** Returns a reference to the array of ClipShapes. */\r\n public get clips() { return this._clips; }\r\n private constructor(clips?: ClipPrimitive[]) {\r\n this._clips = clips ? clips : [];\r\n }\r\n /** Returns true if this ClipVector contains a ClipPrimitive. */\r\n public get isValid(): boolean { return this._clips.length > 0; }\r\n /** Create a ClipVector with an empty set of ClipShapes. */\r\n public static createEmpty(result?: ClipVector): ClipVector {\r\n if (result) {\r\n result._clips.length = 0;\r\n return result;\r\n }\r\n return new ClipVector();\r\n }\r\n /** Create a ClipVector from an array of ClipPrimitives (or derived classes) (capture the pointers) */\r\n public static createCapture(clips: ClipPrimitive[], result?: ClipVector): ClipVector {\r\n if (result) {\r\n result._clips = clips;\r\n return result;\r\n }\r\n return new ClipVector(clips);\r\n }\r\n /** Create a ClipVector from (clones of) an array of ClipPrimitives */\r\n public static create(clips: ClipPrimitive[], result?: ClipVector): ClipVector {\r\n const clipClones: ClipPrimitive[] = [];\r\n for (const clip of clips)\r\n clipClones.push(clip.clone());\r\n return ClipVector.createCapture(clipClones, result);\r\n }\r\n /** Create a deep copy of another ClipVector */\r\n public clone(result?: ClipVector): ClipVector {\r\n const retVal = result ? result : new ClipVector();\r\n retVal._clips.length = 0;\r\n for (const clip of this._clips) {\r\n retVal._clips.push(clip.clone());\r\n }\r\n retVal.boundingRange.setFrom(this.boundingRange);\r\n return retVal;\r\n }\r\n /** Parse this ClipVector into a JSON object. */\r\n public toJSON(): ClipVectorProps {\r\n if (!this.isValid)\r\n return [];\r\n\r\n return this.clips.map((clip) => clip.toJSON());\r\n }\r\n /** Parse a JSON object into a new ClipVector. */\r\n public static fromJSON(json: ClipVectorProps | undefined, result?: ClipVector): ClipVector {\r\n result = result ? result : new ClipVector();\r\n result.clear();\r\n if (!Array.isArray(json))\r\n return result;\r\n try {\r\n for (const clip of json) {\r\n const clipPrim = ClipPrimitive.fromJSON(clip);\r\n if (clipPrim)\r\n result._clips.push(clipPrim);\r\n }\r\n } catch {\r\n result.clear();\r\n }\r\n return result;\r\n }\r\n /** Empties out the array of ClipShapes. */\r\n public clear() {\r\n this._clips.length = 0;\r\n }\r\n /** Append a deep copy of the given ClipPrimitive to this ClipVector. */\r\n public appendClone(clip: ClipPrimitive) {\r\n this._clips.push(clip.clone());\r\n }\r\n /** Append a reference of the given ClipPrimitive to this ClipVector. */\r\n public appendReference(clip: ClipPrimitive) {\r\n this._clips.push(clip);\r\n }\r\n /** Create and append a new ClipPrimitive to the array given a shape as an array of points. Returns true if successful. */\r\n public appendShape(shape: Point3d[], zLow?: number, zHigh?: number,\r\n transform?: Transform, isMask: boolean = false, invisible: boolean = false): boolean {\r\n const clip = ClipShape.createShape(shape, zLow, zHigh, transform, isMask, invisible);\r\n if (!clip)\r\n return false;\r\n this._clips.push(clip);\r\n return true;\r\n }\r\n /** Returns true if the given point lies inside all of this ClipVector's ClipShapes (by rule of intersection).*/\r\n public pointInside(point: Point3d, onTolerance: number = Geometry.smallMetricDistanceSquared): boolean {\r\n return this.isPointOnOrInside(point, onTolerance);\r\n }\r\n /**\r\n * Method from [[Clipper]] interface.\r\n * * Implement as dispatch to clipPlaneSets as supplied by derived class.\r\n */\r\n public isPointOnOrInside(point: Point3d, onTolerance: number = Geometry.smallMetricDistanceSquared): boolean {\r\n if (!this.boundingRange.isNull && !this.boundingRange.containsPoint(point))\r\n return false;\r\n\r\n for (const clip of this._clips) {\r\n if (!clip.pointInside(point, onTolerance))\r\n return false;\r\n }\r\n return true;\r\n }\r\n // Proxy object to implement line and arc clip.\r\n private _clipNodeProxy?: BooleanClipNodeIntersection;\r\n private ensureProxyClipNode(): boolean {\r\n if (this._clipNodeProxy)\r\n return true;\r\n this._clipNodeProxy = new BooleanClipNodeIntersection(true);\r\n let numChildren = 0;\r\n for (const child of this._clips) {\r\n const q = child.fetchClipPlanesRef();\r\n if (q) {\r\n numChildren++;\r\n this._clipNodeProxy.captureChild(q);\r\n }\r\n }\r\n return numChildren > 0;\r\n }\r\n /**\r\n * Method from [[Clipper]] interface.\r\n * * Implement as dispatch to clipPlaneSets as supplied by derived class.\r\n */\r\n public announceClippedSegmentIntervals(\r\n f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: AnnounceNumberNumber,\r\n ): boolean {\r\n this.ensureProxyClipNode();\r\n if (this._clipNodeProxy)\r\n return this._clipNodeProxy.announceClippedSegmentIntervals(f0, f1, pointA, pointB, announce);\r\n return false;\r\n }\r\n /** Method from [[Clipper]] interface.\r\n * * Implement as dispatch to clipPlaneSets as supplied by derived class.\r\n */\r\n public announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n this.ensureProxyClipNode();\r\n if (this._clipNodeProxy)\r\n return this._clipNodeProxy.announceClippedArcIntervals(arc, announce);\r\n return false;\r\n }\r\n /** Execute polygon clip as intersection of the child primitives. */\r\n public appendPolygonClip(\r\n xyz: IndexedXYZCollection,\r\n insideFragments: GrowableXYZArray[],\r\n outsideFragments: GrowableXYZArray[],\r\n arrayCache: GrowableXYZArrayCache) {\r\n this.ensureProxyClipNode();\r\n if (this._clipNodeProxy)\r\n this._clipNodeProxy.appendPolygonClip(xyz, insideFragments, outsideFragments, arrayCache);\r\n }\r\n /**\r\n * Transforms this ClipVector to a new coordinate-system.\r\n * Note that if the transform has rotate and scale the boundingRange member expands.\r\n * Returns true if successful.\r\n */\r\n public transformInPlace(transform: Transform): boolean {\r\n for (const clip of this._clips)\r\n if (clip.transformInPlace(transform) === false)\r\n return false;\r\n\r\n if (!this.boundingRange.isNull)\r\n transform.multiplyRange(this.boundingRange, this.boundingRange);\r\n\r\n return true;\r\n }\r\n /**\r\n * A simple way of packaging this ClipVector's ClipShape points into a multidimensional array, while also\r\n * taking into account each ClipPrimitive's individual transforms.\r\n * ClipPrimitives OTHER THAN ClipShape are ignored.\r\n * Information out:\r\n * - All of the loop points are stored in the multidimensional Point3d array given (will return unchanged upon failure).\r\n * - If given a transform, will be set from the transformFromClip of the first ClipPrimitive.\r\n * - The ClipMask of the final ClipPrimitive is stored in the returned array at index 0.\r\n * - The last valid zLow found is stored in the returned array at index 1.\r\n * - The last valid zHigh found is stored in the returned array at index 2.\r\n */\r\n public extractBoundaryLoops(loopPoints: Point3d[][], transform?: Transform): number[] {\r\n let clipM = ClipMaskXYZRangePlanes.None;\r\n let zBack = -Number.MAX_VALUE;\r\n let zFront = Number.MAX_VALUE;\r\n const retVal: number[] = [];\r\n let nLoops = 0;\r\n\r\n if (this._clips.length === 0)\r\n return retVal;\r\n let firstClipShape: ClipShape | undefined;\r\n const deltaTrans = Transform.createIdentity();\r\n\r\n for (const clip of this._clips) {\r\n if (clip instanceof ClipShape) {\r\n if (firstClipShape !== undefined && clip !== firstClipShape) { // Is not the first iteration\r\n let fwdTrans = Transform.createIdentity();\r\n let invTrans = Transform.createIdentity();\r\n\r\n if (firstClipShape.transformValid && clip.transformValid) {\r\n fwdTrans = clip.transformFromClip!.clone();\r\n invTrans = firstClipShape.transformToClip!.clone();\r\n }\r\n deltaTrans.setFrom(invTrans.multiplyTransformTransform(fwdTrans));\r\n }\r\n if (!firstClipShape)\r\n firstClipShape = clip;\r\n loopPoints[nLoops] = [];\r\n\r\n if (clip.polygon !== undefined) {\r\n clipM = ClipMaskXYZRangePlanes.XAndY;\r\n\r\n if (clip.zHighValid) {\r\n clipM = clipM | ClipMaskXYZRangePlanes.ZHigh;\r\n zFront = clip.zHigh!;\r\n }\r\n if (clip.zLowValid) {\r\n clipM = clipM | ClipMaskXYZRangePlanes.ZLow;\r\n zBack = clip.zLow!;\r\n }\r\n\r\n for (const point of clip.polygon)\r\n loopPoints[nLoops].push(point.clone());\r\n deltaTrans.multiplyPoint3dArray(loopPoints[nLoops], loopPoints[nLoops]);\r\n nLoops++;\r\n }\r\n }\r\n }\r\n retVal.push(clipM);\r\n retVal.push(zBack);\r\n retVal.push(zFront);\r\n if (transform && firstClipShape)\r\n transform.setFrom(firstClipShape.transformFromClip!);\r\n return retVal;\r\n }\r\n /** Sets this ClipVector and all of its members to the visibility specified. */\r\n public setInvisible(invisible: boolean) {\r\n for (const clip of this._clips)\r\n clip.setInvisible(invisible);\r\n }\r\n /**\r\n * For every clip, parse the member point array into the member clip plane object (only for clipPlanes member,\r\n * not the mask)\r\n */\r\n public parseClipPlanes() {\r\n for (const clip of this._clips)\r\n clip.fetchClipPlanesRef();\r\n }\r\n /**\r\n * Multiply all ClipPlanes DPoint4d by matrix.\r\n * @param matrix matrix to apply.\r\n * @param invert if true, use in verse of the matrix.\r\n * @param transpose if true, use the transpose of the matrix (or inverse, per invert parameter)\r\n * * Note that if matrixA is applied to all of space, the matrix to send to this method to get a corresponding effect on the plane is the inverse transpose of matrixA\r\n * * Callers that will apply the same matrix to many planes should pre-invert the matrix for efficiency.\r\n * * Both params default to true to get the full effect of transforming space.\r\n * @param matrix matrix to apply\r\n * @returns false if matrix inversion fails.\r\n */\r\n public multiplyPlanesByMatrix4d(matrix: Matrix4d, invert: boolean = true, transpose: boolean = true): boolean {\r\n if (invert) { // form inverse once here, reuse for all planes\r\n const inverse = matrix.createInverse();\r\n if (!inverse)\r\n return false;\r\n return this.multiplyPlanesByMatrix4d(inverse, false, transpose);\r\n }\r\n // no inverse necessary -- lower level cannot fail.\r\n for (const clip of this._clips)\r\n clip.multiplyPlanesByMatrix4d(matrix, false, transpose);\r\n return true;\r\n }\r\n /**\r\n * Determines whether the given points fall inside or outside this set of ClipShapes. If any set is defined\r\n * by masking planes, checks the mask planes only, provided that ignoreMasks is false. Otherwise, checks the\r\n * _clipPlanes member.\r\n */\r\n public classifyPointContainment(points: Point3d[], ignoreMasks: boolean = false): ClipPlaneContainment {\r\n let currentContainment = ClipPlaneContainment.Ambiguous;\r\n\r\n for (const primitive of this._clips) {\r\n const thisContainment = primitive.classifyPointContainment(points, ignoreMasks);\r\n\r\n if (ClipPlaneContainment.Ambiguous === thisContainment)\r\n return ClipPlaneContainment.Ambiguous;\r\n\r\n if (ClipPlaneContainment.Ambiguous === currentContainment)\r\n currentContainment = thisContainment;\r\n else if (currentContainment !== thisContainment)\r\n return ClipPlaneContainment.Ambiguous;\r\n }\r\n return currentContainment;\r\n }\r\n /**\r\n * Determines whether a 3D range lies inside or outside this set of ClipShapes. If any set is defined by masking planes,\r\n * checks the mask planes only, provided that ignoreMasks is false. Otherwise, checks the clip planes member.\r\n */\r\n public classifyRangeContainment(range: Range3d, ignoreMasks: boolean): ClipPlaneContainment {\r\n const corners: Point3d[] = range.corners();\r\n return this.classifyPointContainment(corners, ignoreMasks);\r\n }\r\n /**\r\n * For an array of points (making up a LineString), tests whether the segment between each point lies inside the\r\n * ClipVector.\r\n * If true, returns true immediately.\r\n */\r\n public isAnyLineStringPointInside(points: Point3d[]): boolean {\r\n for (const clip of this._clips) {\r\n const clipPlaneSet = clip.fetchClipPlanesRef();\r\n if (clipPlaneSet !== undefined) {\r\n for (let i = 0; i + 1 < points.length; i++) {\r\n const segment = LineSegment3d.create(points[i], points[i + 1]);\r\n if (clipPlaneSet.isAnyPointInOrOnFromSegment(segment))\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n /** Note: Line segments are used to represent 1 dimensional intervals here, rather than segments. */\r\n public sumSizes(intervals: Segment1d[], begin: number, end: number): number {\r\n let s = 0.0;\r\n for (let i = begin; i < end; i++)\r\n s += (intervals[i].x1 - intervals[i].x0);\r\n return s;\r\n }\r\n private static readonly _TARGET_FRACTION_SUM = 0.99999999;\r\n /**\r\n * For an array of points that make up a LineString, develops a line segment between each point pair,\r\n * and returns true if all segments lie inside this ClipVector.\r\n */\r\n public isLineStringCompletelyContained(points: Point3d[]): boolean {\r\n const clipIntervals: Segment1d[] = [];\r\n\r\n for (let i = 0; i + 1 < points.length; i++) {\r\n const segment = LineSegment3d.create(points[i], points[i + 1]);\r\n let fractionSum = 0.0;\r\n let index0 = 0;\r\n\r\n for (const clip of this._clips) {\r\n const clipPlaneSet = clip.fetchClipPlanesRef();\r\n if (clipPlaneSet !== undefined) {\r\n clipPlaneSet.appendIntervalsFromSegment(segment, clipIntervals);\r\n const index1 = clipIntervals.length;\r\n fractionSum += this.sumSizes(clipIntervals, index0, index1);\r\n index0 = index1;\r\n // ASSUME primitives are non-overlapping...\r\n if (fractionSum >= ClipVector._TARGET_FRACTION_SUM)\r\n break;\r\n }\r\n }\r\n if (fractionSum < ClipVector._TARGET_FRACTION_SUM)\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * Serializes this ClipVector to a compact string representation appropriate for transmission as part of a URL.\r\n * Chiefly used for requesting [Tile]($frontend)s with section cut facets.\r\n * UnionOfConvexClipPlaneSets is obtained for each ClipPrimitive. The encoding is as follows:\r\n * ClipVector:\r\n * ClipPrimitive[]\r\n * _\r\n * ClipPrimitive:\r\n * invisible: 0|1\r\n * ConvexClipPlaneSet[]\r\n * _\r\n * ConvexClipPlaneSet:\r\n * ClipPlane[]\r\n * _\r\n * ClipPlane:\r\n * flags: 0|1|2|3, where 1=invisible and 2=interior\r\n * inwardNormal: Number[3]\r\n * distance: Number\r\n * Number:\r\n * number\r\n * _\r\n */\r\n public toCompactString(): string {\r\n function formatNumber(num: number) {\r\n return `${num.toString()}_`;\r\n }\r\n function formatVector3d(vec: Vector3d) {\r\n return `${formatNumber(vec.x)}${formatNumber(vec.y)}${formatNumber(vec.z)}`;\r\n }\r\n function formatFlags(flags: number) {\r\n const f = flags.toString();\r\n assert(1 === f.length);\r\n return f;\r\n }\r\n function formatPlane(plane: ClipPlane) {\r\n let flags = plane.invisible ? 1 : 0;\r\n flags |= (plane.interior ? 2 : 0);\r\n return `${formatFlags(flags)}${formatVector3d(plane.inwardNormalRef)}${formatNumber(plane.distance)}`;\r\n }\r\n function formatPlaneSet(set: ConvexClipPlaneSet) {\r\n let planes = \"\";\r\n for (const plane of set.planes)\r\n planes = `${planes}${formatPlane(plane)}`;\r\n\r\n return `${planes}_`;\r\n }\r\n function formatPrimitive(prim: ClipPrimitive) {\r\n const flags = prim.invisible ? 1 : 0;\r\n let str = flags.toString();\r\n assert(1 === str.length);\r\n\r\n const union = prim.fetchClipPlanesRef();\r\n if (union) {\r\n for (const s of union.convexSets)\r\n str = `${str}${formatPlaneSet(s)}`;\r\n }\r\n return `${str}_`;\r\n }\r\n let result = \"\";\r\n for (const primitive of this.clips)\r\n result = `${result}${formatPrimitive(primitive)}`;\r\n return `${result}_`;\r\n }\r\n}\r\n\r\n/**\r\n * Bundles a [[ClipVector]] with its compact string representation.\r\n * @note The string representation is computed once; the ClipVector is assumed not to be subsequently modified.\r\n * @see [[StringifiedClipVector.fromClipVector]] to create from a ClipVector.\r\n * @see [[ClipVector.toCompactString]] for a description of the string representation.\r\n * @alpha\r\n */\r\nexport type StringifiedClipVector = ClipVector & { readonly clipString: string };\r\n\r\n/**\r\n * Bundles a ClipVector with its compact string representation.\r\n * @note The string representation is computed once; the ClipVector is assumed not to be subsequently modified.\r\n * @alpha\r\n */\r\nexport namespace StringifiedClipVector { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Create from a ClipVector.\r\n * @param clip The ClipVector to stringify.\r\n * @returns The input ClipVector with its compact string representation, or undefined if the input is undefined or empty.\r\n * @note The string representation is computed once; the ClipVector is assumed not to be subsequently modified.\r\n */\r\n export function fromClipVector(clip?: ClipVector): StringifiedClipVector | undefined {\r\n if (!clip || !clip.isValid)\r\n return undefined;\r\n\r\n const ret = clip as any;\r\n if (undefined === ret.clipString)\r\n ret.clipString = clip.toCompactString();\r\n\r\n const stringified = ret as StringifiedClipVector;\r\n assert(undefined !== stringified.clipString);\r\n return stringified;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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"}