@itwin/core-geometry 5.14.0-dev.1 → 5.14.0-dev.11
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/CHANGELOG.md +19 -1
- package/lib/cjs/bspline/AkimaCurve3d.d.ts +18 -13
- package/lib/cjs/bspline/AkimaCurve3d.d.ts.map +1 -1
- package/lib/cjs/bspline/AkimaCurve3d.js +19 -16
- package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts +2 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +3 -2
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/InterpolationCurve3d.d.ts +5 -1
- package/lib/cjs/bspline/InterpolationCurve3d.d.ts.map +1 -1
- package/lib/cjs/bspline/InterpolationCurve3d.js +11 -11
- package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipUtils.js +0 -2
- package/lib/cjs/clipping/ClipUtils.js.map +1 -1
- package/lib/cjs/curve/CoordinateXYZ.d.ts +2 -2
- package/lib/cjs/curve/CoordinateXYZ.d.ts.map +1 -1
- package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +5 -5
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -23
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +20 -4
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +39 -2
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +4 -5
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
- package/lib/cjs/curve/CurveOps.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +10 -3
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +1 -1
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveProcessor.d.ts +7 -7
- package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
- package/lib/cjs/curve/CurveProcessor.js +19 -3
- package/lib/cjs/curve/CurveProcessor.js.map +1 -1
- package/lib/cjs/curve/GeometryQuery.d.ts +49 -4
- package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/cjs/curve/GeometryQuery.js +52 -0
- package/lib/cjs/curve/GeometryQuery.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +1 -1
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/Loop.d.ts +18 -2
- package/lib/cjs/curve/Loop.d.ts.map +1 -1
- package/lib/cjs/curve/Loop.js +26 -1
- package/lib/cjs/curve/Loop.js.map +1 -1
- package/lib/cjs/curve/ParityRegion.d.ts +7 -2
- package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
- package/lib/cjs/curve/ParityRegion.js +9 -8
- package/lib/cjs/curve/ParityRegion.js.map +1 -1
- package/lib/cjs/curve/Path.d.ts +8 -1
- package/lib/cjs/curve/Path.d.ts.map +1 -1
- package/lib/cjs/curve/Path.js +12 -0
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/ProxyCurve.d.ts +1 -1
- package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/cjs/curve/ProxyCurve.js +2 -3
- package/lib/cjs/curve/ProxyCurve.js.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +36 -35
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js +4 -4
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +3 -3
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/UnionRegion.d.ts +9 -2
- package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
- package/lib/cjs/curve/UnionRegion.js +12 -0
- package/lib/cjs/curve/UnionRegion.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts +1 -0
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +3 -1
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts +1 -6
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +15 -8
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +5 -2
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js +6 -3
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +5 -2
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +6 -3
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +2 -0
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +4 -0
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +2 -0
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +6 -0
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +4 -4
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js +5 -2
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js +1 -2
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.d.ts +56 -41
- package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js +16 -17
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/topology/Merging.d.ts +4 -2
- package/lib/cjs/topology/Merging.d.ts.map +1 -1
- package/lib/cjs/topology/Merging.js +23 -20
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/esm/bspline/AkimaCurve3d.d.ts +18 -13
- package/lib/esm/bspline/AkimaCurve3d.d.ts.map +1 -1
- package/lib/esm/bspline/AkimaCurve3d.js +19 -16
- package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +2 -1
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +3 -2
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.d.ts +5 -1
- package/lib/esm/bspline/InterpolationCurve3d.d.ts.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.js +11 -11
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
- package/lib/esm/clipping/ClipUtils.js +0 -2
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/curve/CoordinateXYZ.d.ts +2 -2
- package/lib/esm/curve/CoordinateXYZ.d.ts.map +1 -1
- package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +5 -5
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -23
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +20 -4
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +39 -2
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +4 -5
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveOps.d.ts.map +1 -1
- package/lib/esm/curve/CurveOps.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +10 -3
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +1 -1
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveProcessor.d.ts +7 -7
- package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
- package/lib/esm/curve/CurveProcessor.js +19 -3
- package/lib/esm/curve/CurveProcessor.js.map +1 -1
- package/lib/esm/curve/GeometryQuery.d.ts +49 -4
- package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
- package/lib/esm/curve/GeometryQuery.js +52 -0
- package/lib/esm/curve/GeometryQuery.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +1 -1
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/Loop.d.ts +18 -2
- package/lib/esm/curve/Loop.d.ts.map +1 -1
- package/lib/esm/curve/Loop.js +26 -1
- package/lib/esm/curve/Loop.js.map +1 -1
- package/lib/esm/curve/ParityRegion.d.ts +7 -2
- package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
- package/lib/esm/curve/ParityRegion.js +9 -8
- package/lib/esm/curve/ParityRegion.js.map +1 -1
- package/lib/esm/curve/Path.d.ts +8 -1
- package/lib/esm/curve/Path.d.ts.map +1 -1
- package/lib/esm/curve/Path.js +12 -0
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/ProxyCurve.d.ts +1 -1
- package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/esm/curve/ProxyCurve.js +2 -3
- package/lib/esm/curve/ProxyCurve.js.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts +36 -35
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js +4 -4
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +3 -3
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/UnionRegion.d.ts +9 -2
- package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
- package/lib/esm/curve/UnionRegion.js +12 -0
- package/lib/esm/curve/UnionRegion.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts +1 -0
- package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js +3 -1
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts +1 -6
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +15 -8
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +5 -2
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js +6 -3
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +5 -2
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js +6 -3
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +2 -0
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +4 -0
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +2 -0
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +6 -0
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +4 -4
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBReader.js +5 -2
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js +1 -2
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.d.ts +56 -41
- package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js +16 -17
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/topology/Merging.d.ts +4 -2
- package/lib/esm/topology/Merging.d.ts.map +1 -1
- package/lib/esm/topology/Merging.js +23 -20
- package/lib/esm/topology/Merging.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BGFBWriter.js","sourceRoot":"","sources":["../../../src/serialization/BGFBWriter.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/** @packageDocumentation\r\n * @module Serialization\r\n */\r\nimport { flatbuffers } from \"flatbuffers\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { AkimaCurve3d } from \"../bspline/AkimaCurve3d\";\r\nimport { BSplineCurve3d } from \"../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\r\nimport { BSplineSurface3d, BSplineSurface3dH, UVSelect } from \"../bspline/BSplineSurface\";\r\nimport { InterpolationCurve3d } from \"../bspline/InterpolationCurve3d\";\r\nimport { BSplineWrapMode } from \"../bspline/KnotVector\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { ParityRegion } from \"../curve/ParityRegion\";\r\nimport { Path } from \"../curve/Path\";\r\nimport { PointString3d } from \"../curve/PointString3d\";\r\nimport { DirectSpiral3d } from \"../curve/spiral/DirectSpiral3d\";\r\nimport { IntegratedSpiral3d } from \"../curve/spiral/IntegratedSpiral3d\";\r\nimport { TransitionSpiral3d } from \"../curve/spiral/TransitionSpiral3d\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Point3d, XYZ } from \"../geometry3d/Point3dVector3d\";\r\nimport { AuxChannel, AuxChannelData, PolyfaceAuxData } from \"../polyface/AuxData\";\r\nimport { IndexedPolyface } from \"../polyface/Polyface\";\r\nimport { TaggedNumericData } from \"../polyface/TaggedNumericData\";\r\nimport { Box } from \"../solid/Box\";\r\nimport { Cone } from \"../solid/Cone\";\r\nimport { LinearSweep } from \"../solid/LinearSweep\";\r\nimport { RotationalSweep } from \"../solid/RotationalSweep\";\r\nimport { RuledSweep } from \"../solid/RuledSweep\";\r\nimport { SolidPrimitive } from \"../solid/SolidPrimitive\";\r\nimport { Sphere } from \"../solid/Sphere\";\r\nimport { TorusPipe } from \"../solid/TorusPipe\";\r\nimport { BGFBAccessors } from \"./BGFBAccessors\";\r\nimport { DgnSpiralTypeQueries } from \"./BGFBReader\";\r\nimport { SerializationHelpers } from \"./SerializationHelpers\";\r\n\r\n/**\r\n * Context to write to a flatbuffer blob.\r\n * * This class is internal.\r\n * * Public access is through BentleyGeometryFlatBuffer.geometryToBytes()\r\n * @internal\r\n */\r\nexport class BGFBWriter {\r\n public builder: flatbuffers.Builder;\r\n public constructor(defaultSize: number = 1024) {\r\n this.builder = new flatbuffers.Builder(defaultSize);\r\n }\r\n /**\r\n *\r\n * @param data data source, as Float64Array or number[].\r\n * @param count optional count, used only if less than .length numbers are to be written.\r\n */\r\n public writeDoubleArray(data: Float64Array | number[] | undefined, count?: number): number {\r\n if (data === undefined)\r\n return 0;\r\n let numFloats = data.length;\r\n if (numFloats === 0)\r\n return 0;\r\n if (count !== undefined && count < numFloats)\r\n numFloats = count;\r\n this.builder.startVector(8, numFloats, 8);\r\n for (let i = numFloats - 1; i >= 0; i--) {\r\n this.builder.addFloat64(data[i]);\r\n }\r\n return this.builder.endVector();\r\n }\r\n\r\n /**\r\n *\r\n * @param data data source, as Float64Array or number[].\r\n * @param count optional count, used only if less than .length numbers are to be written.\r\n */\r\n public writeIntArray(data: Int32Array | number[] | undefined): number {\r\n if (data === undefined)\r\n return 0;\r\n const numInt = data.length;\r\n if (numInt === 0)\r\n return 0;\r\n this.builder.startVector(4, numInt, 4);\r\n for (let i = numInt - 1; i >= 0; i--) {\r\n this.builder.addInt32(data[i]);\r\n }\r\n return this.builder.endVector();\r\n }\r\n\r\n /**\r\n *\r\n * @param data data source, as array derived from XYZ.\r\n * The data is output as a flat array of 3*data.length numbers.\r\n */\r\n public writePackedYZArray(data: XYZ[] | undefined): number {\r\n if (data === undefined)\r\n return 0;\r\n const numFloats = data.length * 3;\r\n if (numFloats === 0)\r\n return 0;\r\n this.builder.startVector(8, numFloats, 8);\r\n // write in reverse index order, and zyx within each XYZ\r\n for (let i = data.length - 1; i >= 0; i--) {\r\n this.builder.addFloat64(data[i].z);\r\n this.builder.addFloat64(data[i].y);\r\n this.builder.addFloat64(data[i].x);\r\n }\r\n return this.builder.endVector();\r\n }\r\n\r\n public writeCurveCollectionAsFBCurveVector(cv: CurveCollection): number {\r\n const childrenOffsets: flatbuffers.Offset[] = [];\r\n for (const child of cv.children) {\r\n if (child instanceof CurvePrimitive) {\r\n const childOffset = this.writeCurvePrimitiveAsFBVariantGeometry(child);\r\n if (childOffset)\r\n childrenOffsets.push(childOffset);\r\n } else if (child instanceof CurveCollection) {\r\n const childOffset = this.writeCurveCollectionAsFBVariantGeometry(child);\r\n if (childOffset)\r\n childrenOffsets.push(childOffset);\r\n }\r\n }\r\n const childrenVectorOffset = BGFBAccessors.CurveVector.createCurvesVector(this.builder, childrenOffsets);\r\n let cvType = 0;\r\n if (cv instanceof Path) cvType = 1;\r\n else if (cv instanceof Loop) {\r\n cvType = cv.isInner ? 3 : 2;\r\n } else if (cv instanceof ParityRegion) cvType = 4;\r\n else if (cv instanceof UnionRegion) cvType = 5;\r\n const curveVectorOffset = BGFBAccessors.CurveVector.createCurveVector(this.builder, cvType, childrenVectorOffset);\r\n return curveVectorOffset;\r\n }\r\n\r\n public writeCurveCollectionAsFBVariantGeometry(cv: CurveCollection): number | undefined {\r\n const curveVectorOffset = this.writeCurveCollectionAsFBCurveVector(cv);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagCurveVector, curveVectorOffset, 0);\r\n }\r\n\r\n public writeInterpolationCurve3dAsFBVariantGeometry(curve: InterpolationCurve3d): number | undefined {\r\n const props = curve.cloneProps();\r\n const fitPointsOffset = this.writeDoubleArray(curve.copyFitPointsFloat64Array());\r\n const knotOffset = props.knots ? this.writeDoubleArray(props.knots) : 0;\r\n\r\n BGFBAccessors.InterpolationCurve.startInterpolationCurve(this.builder);\r\n BGFBAccessors.InterpolationCurve.addFitPoints(this.builder, fitPointsOffset);\r\n if (props.order)\r\n BGFBAccessors.InterpolationCurve.addOrder(this.builder, props.order);\r\n if (props.closed)\r\n BGFBAccessors.InterpolationCurve.addClosed(this.builder, props.closed);\r\n if (props.isChordLenKnots)\r\n BGFBAccessors.InterpolationCurve.addIsChordLenKnots(this.builder, props.isChordLenKnots);\r\n if (props.isColinearTangents)\r\n BGFBAccessors.InterpolationCurve.addIsColinearTangents(this.builder, props.isColinearTangents);\r\n if (props.isChordLenKnots)\r\n BGFBAccessors.InterpolationCurve.addIsChordLenKnots(this.builder, props.isChordLenKnots);\r\n if (props.isNaturalTangents)\r\n BGFBAccessors.InterpolationCurve.addIsNaturalTangents(this.builder, props.isNaturalTangents);\r\n // REMARK: some native or flatbuffer quirk made startTangent a point and endTangent a vector.\r\n if (props.startTangent !== undefined) {\r\n const startTangentOffset = BGFBAccessors.DPoint3d.createDPoint3d(this.builder,\r\n XYZ.x(props.startTangent), XYZ.y(props.startTangent), XYZ.z(props.startTangent));\r\n BGFBAccessors.InterpolationCurve.addStartTangent(this.builder, startTangentOffset);\r\n }\r\n if (props.endTangent !== undefined) {\r\n const endTangentOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder,\r\n XYZ.x(props.endTangent), XYZ.y(props.endTangent), XYZ.z(props.endTangent));\r\n BGFBAccessors.InterpolationCurve.addEndTangent(this.builder, endTangentOffset);\r\n }\r\n if (knotOffset !== 0)\r\n BGFBAccessors.InterpolationCurve.addKnots(this.builder, knotOffset);\r\n const headerOffset = BGFBAccessors.InterpolationCurve.endInterpolationCurve(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagInterpolationCurve, headerOffset, 0);\r\n }\r\n\r\n public writeAkimaCurve3dAsFBVariantGeometry(curve: AkimaCurve3d): number | undefined {\r\n const fitPointsOffset = this.writeDoubleArray(curve.copyFitPointsFloat64Array());\r\n BGFBAccessors.AkimaCurve.startAkimaCurve(this.builder);\r\n BGFBAccessors.AkimaCurve.addPoints(this.builder, fitPointsOffset);\r\n const headerOffset = BGFBAccessors.AkimaCurve.endAkimaCurve(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagAkimaCurve, headerOffset, 0);\r\n }\r\n\r\n public writeBsplineCurve3dAsFBVariantGeometry(bcurve: BSplineCurve3d): number | undefined {\r\n const data = SerializationHelpers.createBSplineCurveData(bcurve.polesRef, bcurve.poleDimension, bcurve.knotsRef, bcurve.numPoles, bcurve.order);\r\n const wrapMode = bcurve.getWrappable();\r\n if (BSplineWrapMode.None !== wrapMode)\r\n data.params.wrapMode = wrapMode;\r\n\r\n if (!SerializationHelpers.Export.prepareBSplineCurveData(data, {jsonPoles: false}))\r\n return undefined;\r\n\r\n const closed = !!data.params.closed;\r\n const polesOffset = this.writeDoubleArray(data.poles as Float64Array);\r\n const weightsOffset = 0;\r\n const knotsOffset = this.writeDoubleArray(data.params.knots);\r\n const headerOffset = BGFBAccessors.BsplineCurve.createBsplineCurve(this.builder, data.params.order, closed, polesOffset, weightsOffset, knotsOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagBsplineCurve, headerOffset, 0);\r\n }\r\n\r\n public writeBSplineSurfaceAsFBVariantGeometry(bsurf: BSplineSurface3d | BSplineSurface3dH): number | undefined {\r\n let poles: Float64Array = bsurf.coffs;\r\n let weights: Float64Array | undefined;\r\n let dim = bsurf.poleDimension;\r\n if (bsurf instanceof BSplineSurface3dH) {\r\n poles = bsurf.copyXYZToFloat64Array(false);\r\n weights = bsurf.copyWeightsToFloat64Array();\r\n dim = 3;\r\n }\r\n\r\n const data = SerializationHelpers.createBSplineSurfaceData(poles, dim,\r\n bsurf.knots[UVSelect.uDirection].knots, bsurf.numPolesUV(UVSelect.uDirection), bsurf.orderUV(UVSelect.uDirection),\r\n bsurf.knots[UVSelect.vDirection].knots, bsurf.numPolesUV(UVSelect.vDirection), bsurf.orderUV(UVSelect.vDirection));\r\n\r\n if (weights)\r\n data.weights = weights;\r\n const wrapModeU = bsurf.getWrappable(UVSelect.uDirection);\r\n const wrapModeV = bsurf.getWrappable(UVSelect.vDirection);\r\n if (BSplineWrapMode.None !== wrapModeU)\r\n data.uParams.wrapMode = wrapModeU;\r\n if (BSplineWrapMode.None !== wrapModeV)\r\n data.vParams.wrapMode = wrapModeV;\r\n\r\n if (!SerializationHelpers.Export.prepareBSplineSurfaceData(data, {jsonPoles: false}))\r\n return undefined;\r\n\r\n // TypeScript B-spline surfaces do not support trim curves or isoline counts\r\n const holeOrigin = 0;\r\n const boundariesOffset = 0;\r\n const numRulesU = 0;\r\n const numRulesV = 0;\r\n\r\n const closedU = !!data.uParams.closed;\r\n const closedV = !!data.vParams.closed;\r\n const polesOffset = this.writeDoubleArray(data.poles as Float64Array);\r\n const weightsOffset = data.weights ? this.writeDoubleArray(data.weights as Float64Array) : 0;\r\n const uKnotsOffset = this.writeDoubleArray(data.uParams.knots);\r\n const vKnotsOffset = this.writeDoubleArray(data.vParams.knots);\r\n const headerOffset = BGFBAccessors.BsplineSurface.createBsplineSurface(this.builder, polesOffset, weightsOffset,\r\n uKnotsOffset, vKnotsOffset, data.uParams.numPoles, data.vParams.numPoles, data.uParams.order, data.vParams.order,\r\n numRulesU, numRulesV, holeOrigin, boundariesOffset, closedU, closedV);\r\n\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagBsplineSurface, headerOffset, 0);\r\n }\r\n\r\n public writeBsplineCurve3dHAsFBVariantGeometry(bcurve: BSplineCurve3dH): number | undefined {\r\n const poles = bcurve.copyXYZFloat64Array(false);\r\n const weights = bcurve.copyWeightsFloat64Array();\r\n const dim = 3;\r\n\r\n const data = SerializationHelpers.createBSplineCurveData(poles, dim, bcurve.knotsRef, bcurve.numPoles, bcurve.order);\r\n data.weights = weights;\r\n const wrapMode = bcurve.getWrappable();\r\n if (BSplineWrapMode.None !== wrapMode)\r\n data.params.wrapMode = wrapMode;\r\n\r\n if (!SerializationHelpers.Export.prepareBSplineCurveData(data, {jsonPoles: false}))\r\n return undefined;\r\n\r\n const closed = !!data.params.closed;\r\n const polesOffset = this.writeDoubleArray(data.poles as Float64Array);\r\n const weightsOffset = this.writeDoubleArray(data.weights);\r\n const knotsOffset = this.writeDoubleArray(data.params.knots);\r\n const headerOffset = BGFBAccessors.BsplineCurve.createBsplineCurve(this.builder, data.params.order, closed, polesOffset, weightsOffset, knotsOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagBsplineCurve, headerOffset, 0);\r\n }\r\n\r\n public writeCurvePrimitiveAsFBVariantGeometry(curvePrimitive: CurvePrimitive): number | undefined {\r\n if (curvePrimitive instanceof LineSegment3d) {\r\n const segmentDataOffset = BGFBAccessors.DSegment3d.createDSegment3d(this.builder,\r\n curvePrimitive.point0Ref.x,\r\n curvePrimitive.point0Ref.y,\r\n curvePrimitive.point0Ref.z,\r\n curvePrimitive.point1Ref.x,\r\n curvePrimitive.point1Ref.y,\r\n curvePrimitive.point1Ref.z);\r\n const lineSegmentOffset = BGFBAccessors.LineSegment.createLineSegment(this.builder, segmentDataOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagLineSegment, lineSegmentOffset, 0);\r\n } else if (curvePrimitive instanceof Arc3d) {\r\n const data = curvePrimitive.toVectors();\r\n const arcDataOffset = BGFBAccessors.DEllipse3d.createDEllipse3d(this.builder,\r\n data.center.x, data.center.y, data.center.z,\r\n data.vector0.x, data.vector0.y, data.vector0.z,\r\n data.vector90.x, data.vector90.y, data.vector90.z,\r\n data.sweep.startRadians,\r\n data.sweep.sweepRadians);\r\n const arcOffset = BGFBAccessors.EllipticArc.createEllipticArc(this.builder, arcDataOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagEllipticArc, arcOffset, 0);\r\n } else if (curvePrimitive instanceof LineString3d) {\r\n const coordinates = extractNumberArray(curvePrimitive.packedPoints);\r\n const lineStringOffset = BGFBAccessors.LineString.createLineString(this.builder,\r\n BGFBAccessors.LineString.createPointsVector(this.builder, coordinates));\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagLineString, lineStringOffset, 0);\r\n } else if (curvePrimitive instanceof BSplineCurve3d) {\r\n return this.writeBsplineCurve3dAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof BSplineCurve3dH) {\r\n return this.writeBsplineCurve3dHAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof InterpolationCurve3d) {\r\n return this.writeInterpolationCurve3dAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof AkimaCurve3d) {\r\n return this.writeAkimaCurve3dAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof IntegratedSpiral3d) {\r\n const placement = curvePrimitive.localToWorld;\r\n const typeCode = DgnSpiralTypeQueries.stringToTypeCode(curvePrimitive.spiralType, true);\r\n assert(typeCode !== undefined, \"expect defined because we passed true to return clothoid for unrecognized type\");\r\n const spiralDetailOffset = BGFBAccessors.TransitionSpiralDetail.createTransitionSpiralDetail(this.builder,\r\n placement.matrix.coffs[0], placement.matrix.coffs[1], placement.matrix.coffs[2], placement.origin.x,\r\n placement.matrix.coffs[3], placement.matrix.coffs[4], placement.matrix.coffs[5], placement.origin.y,\r\n placement.matrix.coffs[6], placement.matrix.coffs[5], placement.matrix.coffs[8], placement.origin.z,\r\n curvePrimitive.activeFractionInterval.x0, curvePrimitive.activeFractionInterval.x1,\r\n curvePrimitive.bearing01.startRadians, curvePrimitive.bearing01.endRadians,\r\n TransitionSpiral3d.radiusToCurvature(curvePrimitive.radius01.x0),\r\n TransitionSpiral3d.radiusToCurvature(curvePrimitive.radius01.x1),\r\n typeCode,\r\n 0);\r\n const transitionTableOffset = BGFBAccessors.TransitionSpiral.createTransitionSpiral(this.builder,\r\n spiralDetailOffset, 0, 0);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder,\r\n BGFBAccessors.VariantGeometryUnion.tagTransitionSpiral, transitionTableOffset, 0);\r\n } else if (curvePrimitive instanceof DirectSpiral3d) {\r\n const placement = curvePrimitive.localToWorld;\r\n // direct spirals always inflect at the origin of the local frame ..\r\n const curvature0 = 0.0;\r\n const curvature1 = curvePrimitive.nominalCurvature1;\r\n const radius0 = 0.0;\r\n const radius1 = curvePrimitive.nominalR1; // which is 1/curvature1\r\n const nominalLength = curvePrimitive.nominalL1;\r\n const bearing0Radians = 0.0;\r\n const bearing1Radians = TransitionSpiral3d.radiusRadiusLengthToSweepRadians(radius0, radius1, nominalLength);\r\n const typeCode = DgnSpiralTypeQueries.stringToTypeCode(curvePrimitive.spiralType, true);\r\n assert(typeCode !== undefined, \"expect defined because we passed true to return clothoid for unrecognized type\");\r\n const spiralDetailOffset = BGFBAccessors.TransitionSpiralDetail.createTransitionSpiralDetail(this.builder,\r\n placement.matrix.coffs[0], placement.matrix.coffs[1], placement.matrix.coffs[2], placement.origin.x,\r\n placement.matrix.coffs[3], placement.matrix.coffs[4], placement.matrix.coffs[5], placement.origin.y,\r\n placement.matrix.coffs[6], placement.matrix.coffs[5], placement.matrix.coffs[8], placement.origin.z,\r\n curvePrimitive.activeFractionInterval.x0, curvePrimitive.activeFractionInterval.x1,\r\n bearing0Radians, bearing1Radians,\r\n curvature0, curvature1,\r\n typeCode,\r\n 0);\r\n const transitionTableOffset = BGFBAccessors.TransitionSpiral.createTransitionSpiral(this.builder,\r\n spiralDetailOffset, 0, 0);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder,\r\n BGFBAccessors.VariantGeometryUnion.tagTransitionSpiral, transitionTableOffset, 0);\r\n }\r\n return undefined;\r\n }\r\n public writePointString3dAsFBVariantGeometry(pointString: PointString3d): number | undefined {\r\n if (pointString instanceof PointString3d) {\r\n const coordinates = extractNumberArray(pointString.points);\r\n const headerOffset = BGFBAccessors.PointString.createPointString(this.builder,\r\n BGFBAccessors.PointString.createPointsVector(this.builder, coordinates));\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagPointString, headerOffset, 0);\r\n\r\n }\r\n return undefined;\r\n }\r\n\r\n public writeSolidPrimitiveAsFBVariantGeometry(solid: SolidPrimitive): number | undefined {\r\n // NOTE: Box, Sphere, Cone, and TorusPipe have \"detail\" within a \"table\"\r\n // BUT: linear, rotational, and ruled sweeps have their contour and numerics directly within their table.\r\n if (solid instanceof Box) {\r\n const originA = solid.getBaseOrigin();\r\n const originB = solid.getTopOrigin();\r\n const vectorX = solid.getVectorX();\r\n const vectorY = solid.getVectorY();\r\n\r\n const baseX = solid.getBaseX();\r\n const baseY = solid.getBaseY();\r\n const topX = solid.getTopX();\r\n const topY = solid.getTopY();\r\n const detailOffset = BGFBAccessors.DgnBoxDetail.createDgnBoxDetail(this.builder,\r\n originA.x, originA.y, originA.z,\r\n originB.x, originB.y, originB.z,\r\n vectorX.x, vectorX.y, vectorX.z,\r\n vectorY.x, vectorY.y, vectorY.z,\r\n baseX, baseY, topX, topY, solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnBox.createDgnBox(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnBox, carrierOffset, 0);\r\n } else if (solid instanceof Sphere) {\r\n const localToWorld = solid.cloneLocalToWorld();\r\n const sweep = solid.cloneLatitudeSweep();\r\n const detailOffset = BGFBAccessors.DgnSphereDetail.createDgnSphereDetail(this.builder,\r\n localToWorld.matrix.coffs[0], localToWorld.matrix.coffs[1], localToWorld.matrix.coffs[2], localToWorld.origin.x,\r\n localToWorld.matrix.coffs[3], localToWorld.matrix.coffs[4], localToWorld.matrix.coffs[5], localToWorld.origin.y,\r\n localToWorld.matrix.coffs[6], localToWorld.matrix.coffs[7], localToWorld.matrix.coffs[8], localToWorld.origin.z,\r\n sweep.startRadians, sweep.sweepRadians,\r\n solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnSphere.createDgnSphere(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnSphere, carrierOffset, 0);\r\n } else if (solid instanceof Cone) {\r\n const centerA = solid.getCenterA();\r\n const centerB = solid.getCenterB();\r\n const vectorX = solid.getVectorX();\r\n const vectorY = solid.getVectorY();\r\n const radiusA = solid.getRadiusA();\r\n const radiusB = solid.getRadiusB();\r\n const detailOffset = BGFBAccessors.DgnConeDetail.createDgnConeDetail(this.builder,\r\n centerA.x, centerA.y, centerA.z,\r\n centerB.x, centerB.y, centerB.z,\r\n vectorX.x, vectorX.y, vectorX.z,\r\n vectorY.x, vectorY.y, vectorY.z, radiusA, radiusB, solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnCone.createDgnCone(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnCone, carrierOffset, 0);\r\n } else if (solid instanceof TorusPipe) {\r\n const center = solid.cloneCenter();\r\n const vectorX = solid.cloneVectorX();\r\n const vectorY = solid.cloneVectorY();\r\n const minorRadius = solid.getMinorRadius();\r\n const majorRadius = solid.getMajorRadius();\r\n const sweepRadians = solid.getSweepAngle().radians;\r\n const detailOffset = BGFBAccessors.DgnTorusPipeDetail.createDgnTorusPipeDetail(this.builder,\r\n center.x, center.y, center.z,\r\n vectorX.x, vectorX.y, vectorX.z,\r\n vectorY.x, vectorY.y, vectorY.z, majorRadius, minorRadius, sweepRadians, solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnTorusPipe.createDgnTorusPipe(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnTorusPipe, carrierOffset, 0);\r\n } else if (solid instanceof LinearSweep) {\r\n const baseCurveOffset = this.writeCurveCollectionAsFBCurveVector(solid.getSweepContourRef().getCurves());\r\n const sweepVector = solid.cloneSweepVector();\r\n // WOW -- the machine generated createDgnExtrusion expects an offset for the sweepVector, but then chokes trying to add it.\r\n // const sweepVectorOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder, sweepVector.x, sweepVector.y, sweepVector.z);\r\n // const carrierOffset = BGFBAccessors.DgnExtrusion.createDgnExtrusion(this.builder, contourOffset, sweepVectorOffset, solid.capped);\r\n BGFBAccessors.DgnExtrusion.startDgnExtrusion(this.builder);\r\n BGFBAccessors.DgnExtrusion.addBaseCurve(this.builder, baseCurveOffset);\r\n const extrusionVectorOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder, sweepVector.x, sweepVector.y, sweepVector.z);\r\n BGFBAccessors.DgnExtrusion.addExtrusionVector(this.builder, extrusionVectorOffset);\r\n BGFBAccessors.DgnExtrusion.addCapped(this.builder, solid.capped);\r\n const dgnExtrusionOffset = BGFBAccessors.DgnExtrusion.endDgnExtrusion(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnExtrusion, dgnExtrusionOffset, 0);\r\n } else if (solid instanceof RotationalSweep) {\r\n const baseCurveOffset = this.writeCurveCollectionAsFBCurveVector(solid.getSweepContourRef().getCurves());\r\n const axis = solid.cloneAxisRay();\r\n const sweepAngle = solid.getSweep();\r\n // WOW -- the machine generated createDgnExtrusion expects an offset for the sweepVector, but then chokes trying to add it.\r\n // const sweepVectorOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder, sweepVector.x, sweepVector.y, sweepVector.z);\r\n // const carrierOffset = BGFBAccessors.DgnExtrusion.createDgnExtrusion(this.builder, contourOffset, sweepVectorOffset, solid.capped);\r\n BGFBAccessors.DgnRotationalSweep.startDgnRotationalSweep(this.builder);\r\n BGFBAccessors.DgnRotationalSweep.addBaseCurve(this.builder, baseCurveOffset);\r\n const axisRayOffset = BGFBAccessors.DRay3d.createDRay3d(this.builder,\r\n axis.origin.x, axis.origin.y, axis.origin.z, axis.direction.x, axis.direction.y, axis.direction.z);\r\n BGFBAccessors.DgnRotationalSweep.addAxis(this.builder, axisRayOffset);\r\n BGFBAccessors.DgnRotationalSweep.addSweepRadians(this.builder, sweepAngle.radians);\r\n BGFBAccessors.DgnRotationalSweep.addCapped(this.builder, solid.capped);\r\n const dgnRotationalSweepOffset = BGFBAccessors.DgnRotationalSweep.endDgnRotationalSweep(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnRotationalSweep, dgnRotationalSweepOffset, 0);\r\n } else if (solid instanceof RuledSweep) {\r\n const contours = solid.sweepContoursRef();\r\n const contourOffsets: flatbuffers.Offset[] = [];\r\n for (const contour of contours)\r\n contourOffsets.push(this.writeCurveCollectionAsFBCurveVector(contour.getCurves()));\r\n const contoursVectorOffset = BGFBAccessors.DgnRuledSweep.createCurvesVector(this.builder, contourOffsets);\r\n const ruledSweepTable = BGFBAccessors.DgnRuledSweep.createDgnRuledSweep(this.builder, contoursVectorOffset, solid.capped);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnRuledSweep, ruledSweepTable, 0);\r\n }\r\n return undefined;\r\n }\r\n public writePolyfaceAuxChannelDataAsFBVariantGeometry(channelData: AuxChannelData): number {\r\n const valuesOffset = BGFBAccessors.PolyfaceAuxChannelData.createValuesVector(this.builder, channelData.values);\r\n return BGFBAccessors.PolyfaceAuxChannelData.createPolyfaceAuxChannelData(this.builder, channelData.input, valuesOffset);\r\n }\r\n\r\n public writePolyfaceAuxChannelAsFBVariantGeometry(channel: AuxChannel): number {\r\n const channelDataOffsets: number[] = [];\r\n for (const channelData of channel.data)\r\n channelDataOffsets.push(this.writePolyfaceAuxChannelDataAsFBVariantGeometry(channelData));\r\n const valuesOffset = BGFBAccessors.PolyfaceAuxChannel.createDataVector(this.builder, channelDataOffsets);\r\n const nameOffset = channel.name ? this.builder.createString(channel.name) : 0;\r\n const inputNameOffset = channel.inputName ? this.builder.createString(channel.inputName) : 0;\r\n return BGFBAccessors.PolyfaceAuxChannel.createPolyfaceAuxChannel(this.builder,\r\n channel.dataType,\r\n nameOffset,\r\n inputNameOffset, valuesOffset,\r\n );\r\n }\r\n\r\n public writePolyfaceAuxDataAsFBVariantGeometry(mesh: IndexedPolyface, data: PolyfaceAuxData): number {\r\n const channelOffsets: number[] = [];\r\n for (const channel of data.channels)\r\n channelOffsets.push(this.writePolyfaceAuxChannelAsFBVariantGeometry(channel));\r\n const channelOffsetsOffset = BGFBAccessors.PolyfaceAuxChannel.createDataVector(this.builder, channelOffsets);\r\n\r\n const indexArray: number[] = [];\r\n this.fillOneBasedIndexArray(mesh, data.indices, undefined, 0, indexArray);\r\n const indicesOffset = BGFBAccessors.PolyfaceAuxData.createIndicesVector(this.builder, indexArray);\r\n\r\n return BGFBAccessors.PolyfaceAuxData.createPolyfaceAuxData(this.builder, indicesOffset, channelOffsetsOffset);\r\n }\r\n public writeTaggedNumericDataArray(data: TaggedNumericData | undefined): number {\r\n if (data){\r\n const intDataOffset = this.writeIntArray(data.intData);\r\n const doubleDataOffset = this.writeDoubleArray(data.doubleData);\r\n return BGFBAccessors.TaggedNumericData.createTaggedNumericData(this.builder,\r\n data.tagA, data.tagB, intDataOffset, doubleDataOffset);\r\n }\r\n return 0;\r\n }\r\n\r\n public writePolyfaceAsFBVariantGeometry(mesh: IndexedPolyface): number | undefined {\r\n if (mesh instanceof IndexedPolyface) {\r\n // WE KNOW . . . . the polyface has blocks of zero-based indices.\r\n const indexArray: number[] = []; // and this will really be integers.\r\n const numberArray: number[] = []; // and this will really be doubles.\r\n\r\n copyToPackedNumberArray(numberArray, mesh.data.point.float64Data(), mesh.data.point.float64Length);\r\n const pointOffset = BGFBAccessors.Polyface.createPointVector(this.builder, numberArray);\r\n let paramIndexOffset = 0;\r\n let normalIndexOffset = 0;\r\n let colorIndexOffset = 0;\r\n let intColorOffset = 0;\r\n let normalOffset = 0;\r\n let paramOffset = 0;\r\n let auxDataOffset = 0;\r\n let taggedNumericDataOffset = 0;\r\n let edgeMateIndexOffset = 0;\r\n const meshStyle = 1; // always write MESH_ELM_STYLE_INDEXED_FACE_LOOPS\r\n const numPerFace = 0; // always write variable sized, 0-terminated face loops\r\n this.fillOneBasedIndexArray(mesh, mesh.data.pointIndex, mesh.data.edgeVisible, 0, indexArray);\r\n\r\n const twoSided = mesh.twoSided;\r\n const pointIndexOffset = BGFBAccessors.Polyface.createPointIndexVector(this.builder, indexArray);\r\n if (mesh.data.paramIndex !== undefined && mesh.data.paramIndex.length > 0) {\r\n this.fillOneBasedIndexArray(mesh, mesh.data.paramIndex, undefined, 0, indexArray);\r\n paramIndexOffset = BGFBAccessors.Polyface.createParamIndexVector(this.builder, indexArray);\r\n }\r\n\r\n if (mesh.data.normalIndex !== undefined && mesh.data.normalIndex.length > 0) {\r\n this.fillOneBasedIndexArray(mesh, mesh.data.normalIndex, undefined, 0, indexArray);\r\n normalIndexOffset = BGFBAccessors.Polyface.createNormalIndexVector(this.builder, indexArray);\r\n }\r\n\r\n if (mesh.data.colorIndex !== undefined && mesh.data.colorIndex.length > 0) {\r\n this.fillOneBasedIndexArray(mesh, mesh.data.colorIndex, undefined, 0, indexArray);\r\n colorIndexOffset = BGFBAccessors.Polyface.createColorIndexVector(this.builder, indexArray);\r\n }\r\n\r\n // only int colors are persistent\r\n if (mesh.data.color !== undefined && mesh.data.color.length > 0) {\r\n intColorOffset = BGFBAccessors.Polyface.createIntColorVector(this.builder, mesh.data.color);\r\n }\r\n\r\n if (mesh.data.normal) {\r\n copyToPackedNumberArray(numberArray, mesh.data.normal.float64Data(), mesh.data.normal.float64Length);\r\n normalOffset = BGFBAccessors.Polyface.createNormalVector(this.builder, numberArray);\r\n }\r\n\r\n if (mesh.data.param) {\r\n copyToPackedNumberArray(numberArray, mesh.data.param.float64Data(), mesh.data.param.float64Length);\r\n paramOffset = BGFBAccessors.Polyface.createPointVector(this.builder, numberArray);\r\n }\r\n\r\n if (mesh.data.auxData)\r\n auxDataOffset = this.writePolyfaceAuxDataAsFBVariantGeometry(mesh, mesh.data.auxData);\r\n\r\n if (mesh.data.taggedNumericData)\r\n taggedNumericDataOffset = this.writeTaggedNumericDataArray(mesh.data.taggedNumericData);\r\n\r\n const expectedClosure = mesh.expectedClosure;\r\n\r\n if (mesh.data.edgeMateIndex) {\r\n indexArray.length = 0;\r\n if (SerializationHelpers.announceUncompressedZeroBasedReflexiveIndices(mesh.data.edgeMateIndex, mesh.facetStart,\r\n SerializationHelpers.EdgeMateIndex.BlockSeparator, SerializationHelpers.EdgeMateIndex.NoEdgeMate,\r\n (i: number) => indexArray.push(i),\r\n )) {\r\n edgeMateIndexOffset = BGFBAccessors.Polyface.createEdgeMateIndexVector(this.builder, indexArray);\r\n }\r\n }\r\n\r\n // NOTE: mesh.data.face is not persistent\r\n\r\n const polyfaceOffset = BGFBAccessors.Polyface.createPolyface(\r\n this.builder, pointOffset, paramOffset, normalOffset, 0, intColorOffset, pointIndexOffset, paramIndexOffset,\r\n normalIndexOffset, colorIndexOffset, 0, numPerFace, 0, meshStyle, twoSided, 0, 0, auxDataOffset,\r\n expectedClosure, taggedNumericDataOffset, edgeMateIndexOffset,\r\n );\r\n\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagPolyface, polyfaceOffset, 0);\r\n\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @param sourceIndex a map that takes zeroBasedDataIndex -> zeroBasedDataIndex, packed into unterminated face loops delineated by `mesh.facetIndex0/1`\r\n * @param destIndex a map that takes zeroBasedDataIndex -> signedOneBasedDataIndex, packed into optionally terminated face loops\r\n */\r\n private fillOneBasedIndexArray(mesh: IndexedPolyface, sourceIndex: number[], visible: boolean[] | undefined, facetTerminator: 0 | undefined, destIndex: number[]) {\r\n destIndex.length = 0;\r\n const numFacet = mesh.facetCount;\r\n for (let facetIndex = 0; facetIndex < numFacet; facetIndex++) {\r\n const k0 = mesh.facetIndex0(facetIndex);\r\n const k1 = mesh.facetIndex1(facetIndex);\r\n for (let k = k0; k < k1; k++) {\r\n let q = sourceIndex[k] + 1;\r\n if (visible !== undefined && !visible[k])\r\n q = -q;\r\n destIndex.push(q);\r\n }\r\n if (facetTerminator !== undefined)\r\n destIndex.push(facetTerminator);\r\n }\r\n }\r\n\r\n public writeGeometryQueryAsFBVariantGeometry(g: GeometryQuery): number | undefined {\r\n let offset: number | undefined;\r\n if (g instanceof CurvePrimitive && (offset = this.writeCurvePrimitiveAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof CurveCollection && (offset = this.writeCurveCollectionAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof IndexedPolyface && (offset = this.writePolyfaceAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof SolidPrimitive && (offset = this.writeSolidPrimitiveAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof BSplineSurface3d && (offset = this.writeBSplineSurfaceAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof BSplineSurface3dH && (offset = this.writeBSplineSurfaceAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof PointString3d && (offset = this.writePointString3dAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n // if (g instanceof CoordinateXYZ) // TODO\r\n return undefined;\r\n }\r\n\r\n public writeGeometryQueryArrayAsFBVariantGeometry(allGeometry: GeometryQuery | GeometryQuery[] | undefined): number | undefined{\r\n if (Array.isArray(allGeometry)) {\r\n const allOffsets: number[] = [];\r\n for (const g of allGeometry) {\r\n const offset = this.writeGeometryQueryAsFBVariantGeometry(g);\r\n if (offset !== undefined)\r\n allOffsets.push(offset);\r\n }\r\n if (allOffsets.length > 0) {\r\n const membersOffset = BGFBAccessors.VectorOfVariantGeometry.createMembersVector(this.builder, allOffsets);\r\n const vectorOffset = BGFBAccessors.VectorOfVariantGeometry.createVectorOfVariantGeometry(this.builder, membersOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagVectorOfVariantGeometry, vectorOffset, 0);\r\n }\r\n } else if (allGeometry instanceof GeometryQuery)\r\n return this.writeGeometryQueryAsFBVariantGeometry(allGeometry);\r\n return undefined;\r\n }\r\n /**\r\n * Serialize bytes to a flatbuffer.\r\n */\r\n public static geometryToBytes(data: GeometryQuery | GeometryQuery[], signatureBytes?: Uint8Array): Uint8Array | undefined {\r\n const writer = new BGFBWriter();\r\n const rootOffset = writer.writeGeometryQueryArrayAsFBVariantGeometry(data);\r\n\r\n if (rootOffset !== undefined) {\r\n const builder = writer.builder;\r\n builder.finish(rootOffset);\r\n const buffer = builder.dataBuffer();\r\n if (!signatureBytes) {\r\n return buffer.bytes().slice(buffer.position());\r\n } else if (buffer.position() >= signatureBytes.length) {\r\n // The buffer has space for the signature ahead of its position . . .\r\n const i0 = buffer.position() - signatureBytes.length;\r\n let i = i0;\r\n for (const k of signatureBytes)\r\n buffer.bytes()[i++] = k;\r\n return buffer.bytes().slice(i0);\r\n } else {\r\n // There is no space ahead of the position () . . .\r\n // coverage remark: I have never seen this happen for real.\r\n // It has been exercised by adding 1024 to the signatureBytes.length test to force this branch.\r\n const num1 = buffer.bytes().length - buffer.position();\r\n const num0 = signatureBytes.length;\r\n const newBytes = new Uint8Array(num0 + num1);\r\n newBytes.set(signatureBytes, 0);\r\n newBytes.set(buffer.bytes().slice(buffer.position()), num0);\r\n return newBytes;\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\nfunction extractNumberArray(data: GrowableXYZArray | Point3d[]): number[] {\r\n const result = [];\r\n if (data instanceof GrowableXYZArray) {\r\n // ugh -- accessors only deal with number[] ..\r\n const numCoordinate = 3 * data.length;\r\n const source = data.float64Data();\r\n for (let i = 0; i < numCoordinate; i++)\r\n result.push(source[i]);\r\n return result;\r\n } else if (Array.isArray(data)) {\r\n for (const xyz of data)\r\n result.push(xyz.x, xyz.y, xyz.z);\r\n }\r\n return result;\r\n}\r\n/** Copy the active data to a simple number array. */\r\nfunction copyToPackedNumberArray(dest: number[], source: Float64Array, count: number) {\r\n dest.length = 0;\r\n for (let i = 0; i < count; i++)\r\n dest.push(source[i]);\r\n}\r\n\r\n"]}
|
|
1
|
+
{"version":3,"file":"BGFBWriter.js","sourceRoot":"","sources":["../../../src/serialization/BGFBWriter.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/** @packageDocumentation\r\n * @module Serialization\r\n */\r\nimport { flatbuffers } from \"flatbuffers\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { AkimaCurve3d } from \"../bspline/AkimaCurve3d\";\r\nimport { BSplineCurve3d } from \"../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\r\nimport { BSplineSurface3d, BSplineSurface3dH, UVSelect } from \"../bspline/BSplineSurface\";\r\nimport { InterpolationCurve3d } from \"../bspline/InterpolationCurve3d\";\r\nimport { BSplineWrapMode } from \"../bspline/KnotVector\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { ParityRegion } from \"../curve/ParityRegion\";\r\nimport { Path } from \"../curve/Path\";\r\nimport { PointString3d } from \"../curve/PointString3d\";\r\nimport { DirectSpiral3d } from \"../curve/spiral/DirectSpiral3d\";\r\nimport { IntegratedSpiral3d } from \"../curve/spiral/IntegratedSpiral3d\";\r\nimport { TransitionSpiral3d } from \"../curve/spiral/TransitionSpiral3d\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Point3d, XYZ } from \"../geometry3d/Point3dVector3d\";\r\nimport { AuxChannel, AuxChannelData, PolyfaceAuxData } from \"../polyface/AuxData\";\r\nimport { IndexedPolyface } from \"../polyface/Polyface\";\r\nimport { TaggedNumericData } from \"../polyface/TaggedNumericData\";\r\nimport { Box } from \"../solid/Box\";\r\nimport { Cone } from \"../solid/Cone\";\r\nimport { LinearSweep } from \"../solid/LinearSweep\";\r\nimport { RotationalSweep } from \"../solid/RotationalSweep\";\r\nimport { RuledSweep } from \"../solid/RuledSweep\";\r\nimport { SolidPrimitive } from \"../solid/SolidPrimitive\";\r\nimport { Sphere } from \"../solid/Sphere\";\r\nimport { TorusPipe } from \"../solid/TorusPipe\";\r\nimport { BGFBAccessors } from \"./BGFBAccessors\";\r\nimport { DgnSpiralTypeQueries } from \"./BGFBReader\";\r\nimport { SerializationHelpers } from \"./SerializationHelpers\";\r\n\r\n/**\r\n * Context to write to a flatbuffer blob.\r\n * * This class is internal.\r\n * * Public access is through BentleyGeometryFlatBuffer.geometryToBytes()\r\n * @internal\r\n */\r\nexport class BGFBWriter {\r\n public builder: flatbuffers.Builder;\r\n public constructor(defaultSize: number = 1024) {\r\n this.builder = new flatbuffers.Builder(defaultSize);\r\n }\r\n /**\r\n *\r\n * @param data data source, as Float64Array or number[].\r\n * @param count optional count, used only if less than .length numbers are to be written.\r\n */\r\n public writeDoubleArray(data: Float64Array | number[] | undefined, count?: number): number {\r\n if (data === undefined)\r\n return 0;\r\n let numFloats = data.length;\r\n if (numFloats === 0)\r\n return 0;\r\n if (count !== undefined && count < numFloats)\r\n numFloats = count;\r\n this.builder.startVector(8, numFloats, 8);\r\n for (let i = numFloats - 1; i >= 0; i--) {\r\n this.builder.addFloat64(data[i]);\r\n }\r\n return this.builder.endVector();\r\n }\r\n\r\n /**\r\n *\r\n * @param data data source, as Float64Array or number[].\r\n * @param count optional count, used only if less than .length numbers are to be written.\r\n */\r\n public writeIntArray(data: Int32Array | number[] | undefined): number {\r\n if (data === undefined)\r\n return 0;\r\n const numInt = data.length;\r\n if (numInt === 0)\r\n return 0;\r\n this.builder.startVector(4, numInt, 4);\r\n for (let i = numInt - 1; i >= 0; i--) {\r\n this.builder.addInt32(data[i]);\r\n }\r\n return this.builder.endVector();\r\n }\r\n\r\n /**\r\n *\r\n * @param data data source, as array derived from XYZ.\r\n * The data is output as a flat array of 3*data.length numbers.\r\n */\r\n public writePackedYZArray(data: XYZ[] | undefined): number {\r\n if (data === undefined)\r\n return 0;\r\n const numFloats = data.length * 3;\r\n if (numFloats === 0)\r\n return 0;\r\n this.builder.startVector(8, numFloats, 8);\r\n // write in reverse index order, and zyx within each XYZ\r\n for (let i = data.length - 1; i >= 0; i--) {\r\n this.builder.addFloat64(data[i].z);\r\n this.builder.addFloat64(data[i].y);\r\n this.builder.addFloat64(data[i].x);\r\n }\r\n return this.builder.endVector();\r\n }\r\n\r\n public writeCurveCollectionAsFBCurveVector(cv: CurveCollection): number {\r\n const childrenOffsets: flatbuffers.Offset[] = [];\r\n for (const child of cv.children) {\r\n if (child instanceof CurvePrimitive) {\r\n const childOffset = this.writeCurvePrimitiveAsFBVariantGeometry(child);\r\n if (childOffset)\r\n childrenOffsets.push(childOffset);\r\n } else if (child instanceof CurveCollection) {\r\n const childOffset = this.writeCurveCollectionAsFBVariantGeometry(child);\r\n if (childOffset)\r\n childrenOffsets.push(childOffset);\r\n }\r\n }\r\n const childrenVectorOffset = BGFBAccessors.CurveVector.createCurvesVector(this.builder, childrenOffsets);\r\n let cvType = 0;\r\n if (cv instanceof Path) cvType = 1;\r\n else if (cv instanceof Loop) cvType = cv.isInner ? 3 : 2;\r\n else if (cv instanceof ParityRegion) cvType = 4;\r\n else if (cv instanceof UnionRegion) cvType = 5;\r\n const curveVectorOffset = BGFBAccessors.CurveVector.createCurveVector(this.builder, cvType, childrenVectorOffset);\r\n return curveVectorOffset;\r\n }\r\n\r\n public writeCurveCollectionAsFBVariantGeometry(cv: CurveCollection): number | undefined {\r\n const curveVectorOffset = this.writeCurveCollectionAsFBCurveVector(cv);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagCurveVector, curveVectorOffset, 0);\r\n }\r\n\r\n public writeInterpolationCurve3dAsFBVariantGeometry(curve: InterpolationCurve3d): number | undefined {\r\n const props = curve.cloneProps();\r\n const fitPointsOffset = this.writeDoubleArray(curve.copyFitPointsFloat64Array());\r\n const knotOffset = props.knots ? this.writeDoubleArray(props.knots) : 0;\r\n\r\n BGFBAccessors.InterpolationCurve.startInterpolationCurve(this.builder);\r\n BGFBAccessors.InterpolationCurve.addFitPoints(this.builder, fitPointsOffset);\r\n if (props.order)\r\n BGFBAccessors.InterpolationCurve.addOrder(this.builder, props.order);\r\n if (props.closed)\r\n BGFBAccessors.InterpolationCurve.addClosed(this.builder, props.closed);\r\n if (props.isChordLenKnots)\r\n BGFBAccessors.InterpolationCurve.addIsChordLenKnots(this.builder, props.isChordLenKnots);\r\n if (props.isColinearTangents)\r\n BGFBAccessors.InterpolationCurve.addIsColinearTangents(this.builder, props.isColinearTangents);\r\n if (props.isChordLenKnots)\r\n BGFBAccessors.InterpolationCurve.addIsChordLenKnots(this.builder, props.isChordLenKnots);\r\n if (props.isNaturalTangents)\r\n BGFBAccessors.InterpolationCurve.addIsNaturalTangents(this.builder, props.isNaturalTangents);\r\n // REMARK: some native or flatbuffer quirk made startTangent a point and endTangent a vector.\r\n if (props.startTangent !== undefined) {\r\n const startTangentOffset = BGFBAccessors.DPoint3d.createDPoint3d(this.builder,\r\n XYZ.x(props.startTangent), XYZ.y(props.startTangent), XYZ.z(props.startTangent));\r\n BGFBAccessors.InterpolationCurve.addStartTangent(this.builder, startTangentOffset);\r\n }\r\n if (props.endTangent !== undefined) {\r\n const endTangentOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder,\r\n XYZ.x(props.endTangent), XYZ.y(props.endTangent), XYZ.z(props.endTangent));\r\n BGFBAccessors.InterpolationCurve.addEndTangent(this.builder, endTangentOffset);\r\n }\r\n if (knotOffset !== 0)\r\n BGFBAccessors.InterpolationCurve.addKnots(this.builder, knotOffset);\r\n const headerOffset = BGFBAccessors.InterpolationCurve.endInterpolationCurve(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagInterpolationCurve, headerOffset, 0);\r\n }\r\n\r\n public writeAkimaCurve3dAsFBVariantGeometry(curve: AkimaCurve3d): number | undefined {\r\n const fitPointsOffset = this.writeDoubleArray(curve.copyFitPointsFloat64Array());\r\n BGFBAccessors.AkimaCurve.startAkimaCurve(this.builder);\r\n BGFBAccessors.AkimaCurve.addPoints(this.builder, fitPointsOffset);\r\n const headerOffset = BGFBAccessors.AkimaCurve.endAkimaCurve(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagAkimaCurve, headerOffset, 0);\r\n }\r\n\r\n public writeBsplineCurve3dAsFBVariantGeometry(bcurve: BSplineCurve3d): number | undefined {\r\n const data = SerializationHelpers.createBSplineCurveData(bcurve.polesRef, bcurve.poleDimension, bcurve.knotsRef, bcurve.numPoles, bcurve.order);\r\n const wrapMode = bcurve.getWrappable();\r\n if (BSplineWrapMode.None !== wrapMode)\r\n data.params.wrapMode = wrapMode;\r\n\r\n if (!SerializationHelpers.Export.prepareBSplineCurveData(data, {jsonPoles: false}))\r\n return undefined;\r\n\r\n const closed = !!data.params.closed;\r\n const polesOffset = this.writeDoubleArray(data.poles as Float64Array);\r\n const weightsOffset = 0;\r\n const knotsOffset = this.writeDoubleArray(data.params.knots);\r\n const headerOffset = BGFBAccessors.BsplineCurve.createBsplineCurve(this.builder, data.params.order, closed, polesOffset, weightsOffset, knotsOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagBsplineCurve, headerOffset, 0);\r\n }\r\n\r\n public writeBSplineSurfaceAsFBVariantGeometry(bsurf: BSplineSurface3d | BSplineSurface3dH): number | undefined {\r\n let poles: Float64Array = bsurf.coffs;\r\n let weights: Float64Array | undefined;\r\n let dim = bsurf.poleDimension;\r\n if (bsurf instanceof BSplineSurface3dH) {\r\n poles = bsurf.copyXYZToFloat64Array(false);\r\n weights = bsurf.copyWeightsToFloat64Array();\r\n dim = 3;\r\n }\r\n\r\n const data = SerializationHelpers.createBSplineSurfaceData(poles, dim,\r\n bsurf.knots[UVSelect.uDirection].knots, bsurf.numPolesUV(UVSelect.uDirection), bsurf.orderUV(UVSelect.uDirection),\r\n bsurf.knots[UVSelect.vDirection].knots, bsurf.numPolesUV(UVSelect.vDirection), bsurf.orderUV(UVSelect.vDirection));\r\n\r\n if (weights)\r\n data.weights = weights;\r\n const wrapModeU = bsurf.getWrappable(UVSelect.uDirection);\r\n const wrapModeV = bsurf.getWrappable(UVSelect.vDirection);\r\n if (BSplineWrapMode.None !== wrapModeU)\r\n data.uParams.wrapMode = wrapModeU;\r\n if (BSplineWrapMode.None !== wrapModeV)\r\n data.vParams.wrapMode = wrapModeV;\r\n\r\n if (!SerializationHelpers.Export.prepareBSplineSurfaceData(data, {jsonPoles: false}))\r\n return undefined;\r\n\r\n // TypeScript B-spline surfaces do not support trim curves or isoline counts\r\n const holeOrigin = 0;\r\n const boundariesOffset = 0;\r\n const numRulesU = 0;\r\n const numRulesV = 0;\r\n\r\n const closedU = !!data.uParams.closed;\r\n const closedV = !!data.vParams.closed;\r\n const polesOffset = this.writeDoubleArray(data.poles as Float64Array);\r\n const weightsOffset = data.weights ? this.writeDoubleArray(data.weights as Float64Array) : 0;\r\n const uKnotsOffset = this.writeDoubleArray(data.uParams.knots);\r\n const vKnotsOffset = this.writeDoubleArray(data.vParams.knots);\r\n const headerOffset = BGFBAccessors.BsplineSurface.createBsplineSurface(this.builder, polesOffset, weightsOffset,\r\n uKnotsOffset, vKnotsOffset, data.uParams.numPoles, data.vParams.numPoles, data.uParams.order, data.vParams.order,\r\n numRulesU, numRulesV, holeOrigin, boundariesOffset, closedU, closedV);\r\n\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagBsplineSurface, headerOffset, 0);\r\n }\r\n\r\n public writeBsplineCurve3dHAsFBVariantGeometry(bcurve: BSplineCurve3dH): number | undefined {\r\n const poles = bcurve.copyXYZFloat64Array(false);\r\n const weights = bcurve.copyWeightsFloat64Array();\r\n const dim = 3;\r\n\r\n const data = SerializationHelpers.createBSplineCurveData(poles, dim, bcurve.knotsRef, bcurve.numPoles, bcurve.order);\r\n data.weights = weights;\r\n const wrapMode = bcurve.getWrappable();\r\n if (BSplineWrapMode.None !== wrapMode)\r\n data.params.wrapMode = wrapMode;\r\n\r\n if (!SerializationHelpers.Export.prepareBSplineCurveData(data, {jsonPoles: false}))\r\n return undefined;\r\n\r\n const closed = !!data.params.closed;\r\n const polesOffset = this.writeDoubleArray(data.poles as Float64Array);\r\n const weightsOffset = this.writeDoubleArray(data.weights);\r\n const knotsOffset = this.writeDoubleArray(data.params.knots);\r\n const headerOffset = BGFBAccessors.BsplineCurve.createBsplineCurve(this.builder, data.params.order, closed, polesOffset, weightsOffset, knotsOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagBsplineCurve, headerOffset, 0);\r\n }\r\n\r\n public writeCurvePrimitiveAsFBVariantGeometry(curvePrimitive: CurvePrimitive): number | undefined {\r\n if (curvePrimitive instanceof LineSegment3d) {\r\n const segmentDataOffset = BGFBAccessors.DSegment3d.createDSegment3d(this.builder,\r\n curvePrimitive.point0Ref.x,\r\n curvePrimitive.point0Ref.y,\r\n curvePrimitive.point0Ref.z,\r\n curvePrimitive.point1Ref.x,\r\n curvePrimitive.point1Ref.y,\r\n curvePrimitive.point1Ref.z);\r\n const lineSegmentOffset = BGFBAccessors.LineSegment.createLineSegment(this.builder, segmentDataOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagLineSegment, lineSegmentOffset, 0);\r\n } else if (curvePrimitive instanceof Arc3d) {\r\n const data = curvePrimitive.toVectors();\r\n const arcDataOffset = BGFBAccessors.DEllipse3d.createDEllipse3d(this.builder,\r\n data.center.x, data.center.y, data.center.z,\r\n data.vector0.x, data.vector0.y, data.vector0.z,\r\n data.vector90.x, data.vector90.y, data.vector90.z,\r\n data.sweep.startRadians,\r\n data.sweep.sweepRadians);\r\n const arcOffset = BGFBAccessors.EllipticArc.createEllipticArc(this.builder, arcDataOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagEllipticArc, arcOffset, 0);\r\n } else if (curvePrimitive instanceof LineString3d) {\r\n const coordinates = extractNumberArray(curvePrimitive.packedPoints);\r\n const lineStringOffset = BGFBAccessors.LineString.createLineString(this.builder,\r\n BGFBAccessors.LineString.createPointsVector(this.builder, coordinates));\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagLineString, lineStringOffset, 0);\r\n } else if (curvePrimitive instanceof BSplineCurve3d) {\r\n return this.writeBsplineCurve3dAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof BSplineCurve3dH) {\r\n return this.writeBsplineCurve3dHAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof InterpolationCurve3d) {\r\n return this.writeInterpolationCurve3dAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof AkimaCurve3d) {\r\n return this.writeAkimaCurve3dAsFBVariantGeometry(curvePrimitive);\r\n } else if (curvePrimitive instanceof IntegratedSpiral3d) {\r\n const placement = curvePrimitive.localToWorld;\r\n const typeCode = DgnSpiralTypeQueries.stringToTypeCode(curvePrimitive.spiralType, true);\r\n assert(typeCode !== undefined, \"expect defined because we passed true to return clothoid for unrecognized type\");\r\n const spiralDetailOffset = BGFBAccessors.TransitionSpiralDetail.createTransitionSpiralDetail(this.builder,\r\n placement.matrix.coffs[0], placement.matrix.coffs[1], placement.matrix.coffs[2], placement.origin.x,\r\n placement.matrix.coffs[3], placement.matrix.coffs[4], placement.matrix.coffs[5], placement.origin.y,\r\n placement.matrix.coffs[6], placement.matrix.coffs[5], placement.matrix.coffs[8], placement.origin.z,\r\n curvePrimitive.activeFractionInterval.x0, curvePrimitive.activeFractionInterval.x1,\r\n curvePrimitive.bearing01.startRadians, curvePrimitive.bearing01.endRadians,\r\n TransitionSpiral3d.radiusToCurvature(curvePrimitive.radius01.x0),\r\n TransitionSpiral3d.radiusToCurvature(curvePrimitive.radius01.x1),\r\n typeCode,\r\n 0);\r\n const transitionTableOffset = BGFBAccessors.TransitionSpiral.createTransitionSpiral(this.builder,\r\n spiralDetailOffset, 0, 0);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder,\r\n BGFBAccessors.VariantGeometryUnion.tagTransitionSpiral, transitionTableOffset, 0);\r\n } else if (curvePrimitive instanceof DirectSpiral3d) {\r\n const placement = curvePrimitive.localToWorld;\r\n // direct spirals always inflect at the origin of the local frame ..\r\n const curvature0 = 0.0;\r\n const curvature1 = curvePrimitive.nominalCurvature1;\r\n const radius0 = 0.0;\r\n const radius1 = curvePrimitive.nominalR1; // which is 1/curvature1\r\n const nominalLength = curvePrimitive.nominalL1;\r\n const bearing0Radians = 0.0;\r\n const bearing1Radians = TransitionSpiral3d.radiusRadiusLengthToSweepRadians(radius0, radius1, nominalLength);\r\n const typeCode = DgnSpiralTypeQueries.stringToTypeCode(curvePrimitive.spiralType, true);\r\n assert(typeCode !== undefined, \"expect defined because we passed true to return clothoid for unrecognized type\");\r\n const spiralDetailOffset = BGFBAccessors.TransitionSpiralDetail.createTransitionSpiralDetail(this.builder,\r\n placement.matrix.coffs[0], placement.matrix.coffs[1], placement.matrix.coffs[2], placement.origin.x,\r\n placement.matrix.coffs[3], placement.matrix.coffs[4], placement.matrix.coffs[5], placement.origin.y,\r\n placement.matrix.coffs[6], placement.matrix.coffs[5], placement.matrix.coffs[8], placement.origin.z,\r\n curvePrimitive.activeFractionInterval.x0, curvePrimitive.activeFractionInterval.x1,\r\n bearing0Radians, bearing1Radians,\r\n curvature0, curvature1,\r\n typeCode,\r\n 0);\r\n const transitionTableOffset = BGFBAccessors.TransitionSpiral.createTransitionSpiral(this.builder,\r\n spiralDetailOffset, 0, 0);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder,\r\n BGFBAccessors.VariantGeometryUnion.tagTransitionSpiral, transitionTableOffset, 0);\r\n }\r\n return undefined;\r\n }\r\n public writePointString3dAsFBVariantGeometry(pointString: PointString3d): number | undefined {\r\n if (pointString instanceof PointString3d) {\r\n const coordinates = extractNumberArray(pointString.points);\r\n const headerOffset = BGFBAccessors.PointString.createPointString(this.builder,\r\n BGFBAccessors.PointString.createPointsVector(this.builder, coordinates));\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagPointString, headerOffset, 0);\r\n\r\n }\r\n return undefined;\r\n }\r\n\r\n public writeSolidPrimitiveAsFBVariantGeometry(solid: SolidPrimitive): number | undefined {\r\n // NOTE: Box, Sphere, Cone, and TorusPipe have \"detail\" within a \"table\"\r\n // BUT: linear, rotational, and ruled sweeps have their contour and numerics directly within their table.\r\n if (solid instanceof Box) {\r\n const originA = solid.getBaseOrigin();\r\n const originB = solid.getTopOrigin();\r\n const vectorX = solid.getVectorX();\r\n const vectorY = solid.getVectorY();\r\n\r\n const baseX = solid.getBaseX();\r\n const baseY = solid.getBaseY();\r\n const topX = solid.getTopX();\r\n const topY = solid.getTopY();\r\n const detailOffset = BGFBAccessors.DgnBoxDetail.createDgnBoxDetail(this.builder,\r\n originA.x, originA.y, originA.z,\r\n originB.x, originB.y, originB.z,\r\n vectorX.x, vectorX.y, vectorX.z,\r\n vectorY.x, vectorY.y, vectorY.z,\r\n baseX, baseY, topX, topY, solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnBox.createDgnBox(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnBox, carrierOffset, 0);\r\n } else if (solid instanceof Sphere) {\r\n const localToWorld = solid.cloneLocalToWorld();\r\n const sweep = solid.cloneLatitudeSweep();\r\n const detailOffset = BGFBAccessors.DgnSphereDetail.createDgnSphereDetail(this.builder,\r\n localToWorld.matrix.coffs[0], localToWorld.matrix.coffs[1], localToWorld.matrix.coffs[2], localToWorld.origin.x,\r\n localToWorld.matrix.coffs[3], localToWorld.matrix.coffs[4], localToWorld.matrix.coffs[5], localToWorld.origin.y,\r\n localToWorld.matrix.coffs[6], localToWorld.matrix.coffs[7], localToWorld.matrix.coffs[8], localToWorld.origin.z,\r\n sweep.startRadians, sweep.sweepRadians,\r\n solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnSphere.createDgnSphere(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnSphere, carrierOffset, 0);\r\n } else if (solid instanceof Cone) {\r\n const centerA = solid.getCenterA();\r\n const centerB = solid.getCenterB();\r\n const vectorX = solid.getVectorX();\r\n const vectorY = solid.getVectorY();\r\n const radiusA = solid.getRadiusA();\r\n const radiusB = solid.getRadiusB();\r\n const detailOffset = BGFBAccessors.DgnConeDetail.createDgnConeDetail(this.builder,\r\n centerA.x, centerA.y, centerA.z,\r\n centerB.x, centerB.y, centerB.z,\r\n vectorX.x, vectorX.y, vectorX.z,\r\n vectorY.x, vectorY.y, vectorY.z, radiusA, radiusB, solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnCone.createDgnCone(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnCone, carrierOffset, 0);\r\n } else if (solid instanceof TorusPipe) {\r\n const center = solid.cloneCenter();\r\n const vectorX = solid.cloneVectorX();\r\n const vectorY = solid.cloneVectorY();\r\n const minorRadius = solid.getMinorRadius();\r\n const majorRadius = solid.getMajorRadius();\r\n const sweepRadians = solid.getSweepAngle().radians;\r\n const detailOffset = BGFBAccessors.DgnTorusPipeDetail.createDgnTorusPipeDetail(this.builder,\r\n center.x, center.y, center.z,\r\n vectorX.x, vectorX.y, vectorX.z,\r\n vectorY.x, vectorY.y, vectorY.z, majorRadius, minorRadius, sweepRadians, solid.capped);\r\n const carrierOffset = BGFBAccessors.DgnTorusPipe.createDgnTorusPipe(this.builder, detailOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnTorusPipe, carrierOffset, 0);\r\n } else if (solid instanceof LinearSweep) {\r\n const baseCurveOffset = this.writeCurveCollectionAsFBCurveVector(solid.getSweepContourRef().getCurves());\r\n const sweepVector = solid.cloneSweepVector();\r\n // WOW -- the machine generated createDgnExtrusion expects an offset for the sweepVector, but then chokes trying to add it.\r\n // const sweepVectorOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder, sweepVector.x, sweepVector.y, sweepVector.z);\r\n // const carrierOffset = BGFBAccessors.DgnExtrusion.createDgnExtrusion(this.builder, contourOffset, sweepVectorOffset, solid.capped);\r\n BGFBAccessors.DgnExtrusion.startDgnExtrusion(this.builder);\r\n BGFBAccessors.DgnExtrusion.addBaseCurve(this.builder, baseCurveOffset);\r\n const extrusionVectorOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder, sweepVector.x, sweepVector.y, sweepVector.z);\r\n BGFBAccessors.DgnExtrusion.addExtrusionVector(this.builder, extrusionVectorOffset);\r\n BGFBAccessors.DgnExtrusion.addCapped(this.builder, solid.capped);\r\n const dgnExtrusionOffset = BGFBAccessors.DgnExtrusion.endDgnExtrusion(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnExtrusion, dgnExtrusionOffset, 0);\r\n } else if (solid instanceof RotationalSweep) {\r\n const baseCurveOffset = this.writeCurveCollectionAsFBCurveVector(solid.getSweepContourRef().getCurves());\r\n const axis = solid.cloneAxisRay();\r\n const sweepAngle = solid.getSweep();\r\n // WOW -- the machine generated createDgnExtrusion expects an offset for the sweepVector, but then chokes trying to add it.\r\n // const sweepVectorOffset = BGFBAccessors.DVector3d.createDVector3d(this.builder, sweepVector.x, sweepVector.y, sweepVector.z);\r\n // const carrierOffset = BGFBAccessors.DgnExtrusion.createDgnExtrusion(this.builder, contourOffset, sweepVectorOffset, solid.capped);\r\n BGFBAccessors.DgnRotationalSweep.startDgnRotationalSweep(this.builder);\r\n BGFBAccessors.DgnRotationalSweep.addBaseCurve(this.builder, baseCurveOffset);\r\n const axisRayOffset = BGFBAccessors.DRay3d.createDRay3d(this.builder,\r\n axis.origin.x, axis.origin.y, axis.origin.z, axis.direction.x, axis.direction.y, axis.direction.z);\r\n BGFBAccessors.DgnRotationalSweep.addAxis(this.builder, axisRayOffset);\r\n BGFBAccessors.DgnRotationalSweep.addSweepRadians(this.builder, sweepAngle.radians);\r\n BGFBAccessors.DgnRotationalSweep.addCapped(this.builder, solid.capped);\r\n const dgnRotationalSweepOffset = BGFBAccessors.DgnRotationalSweep.endDgnRotationalSweep(this.builder);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnRotationalSweep, dgnRotationalSweepOffset, 0);\r\n } else if (solid instanceof RuledSweep) {\r\n const contours = solid.sweepContoursRef();\r\n const contourOffsets: flatbuffers.Offset[] = [];\r\n for (const contour of contours)\r\n contourOffsets.push(this.writeCurveCollectionAsFBCurveVector(contour.getCurves()));\r\n const contoursVectorOffset = BGFBAccessors.DgnRuledSweep.createCurvesVector(this.builder, contourOffsets);\r\n const ruledSweepTable = BGFBAccessors.DgnRuledSweep.createDgnRuledSweep(this.builder, contoursVectorOffset, solid.capped);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagDgnRuledSweep, ruledSweepTable, 0);\r\n }\r\n return undefined;\r\n }\r\n public writePolyfaceAuxChannelDataAsFBVariantGeometry(channelData: AuxChannelData): number {\r\n const valuesOffset = BGFBAccessors.PolyfaceAuxChannelData.createValuesVector(this.builder, channelData.values);\r\n return BGFBAccessors.PolyfaceAuxChannelData.createPolyfaceAuxChannelData(this.builder, channelData.input, valuesOffset);\r\n }\r\n\r\n public writePolyfaceAuxChannelAsFBVariantGeometry(channel: AuxChannel): number {\r\n const channelDataOffsets: number[] = [];\r\n for (const channelData of channel.data)\r\n channelDataOffsets.push(this.writePolyfaceAuxChannelDataAsFBVariantGeometry(channelData));\r\n const valuesOffset = BGFBAccessors.PolyfaceAuxChannel.createDataVector(this.builder, channelDataOffsets);\r\n const nameOffset = channel.name ? this.builder.createString(channel.name) : 0;\r\n const inputNameOffset = channel.inputName ? this.builder.createString(channel.inputName) : 0;\r\n return BGFBAccessors.PolyfaceAuxChannel.createPolyfaceAuxChannel(this.builder,\r\n channel.dataType,\r\n nameOffset,\r\n inputNameOffset, valuesOffset,\r\n );\r\n }\r\n\r\n public writePolyfaceAuxDataAsFBVariantGeometry(mesh: IndexedPolyface, data: PolyfaceAuxData): number {\r\n const channelOffsets: number[] = [];\r\n for (const channel of data.channels)\r\n channelOffsets.push(this.writePolyfaceAuxChannelAsFBVariantGeometry(channel));\r\n const channelOffsetsOffset = BGFBAccessors.PolyfaceAuxChannel.createDataVector(this.builder, channelOffsets);\r\n\r\n const indexArray: number[] = [];\r\n this.fillOneBasedIndexArray(mesh, data.indices, undefined, 0, indexArray);\r\n const indicesOffset = BGFBAccessors.PolyfaceAuxData.createIndicesVector(this.builder, indexArray);\r\n\r\n return BGFBAccessors.PolyfaceAuxData.createPolyfaceAuxData(this.builder, indicesOffset, channelOffsetsOffset);\r\n }\r\n public writeTaggedNumericDataArray(data: TaggedNumericData | undefined): number {\r\n if (data){\r\n const intDataOffset = this.writeIntArray(data.intData);\r\n const doubleDataOffset = this.writeDoubleArray(data.doubleData);\r\n return BGFBAccessors.TaggedNumericData.createTaggedNumericData(this.builder,\r\n data.tagA, data.tagB, intDataOffset, doubleDataOffset);\r\n }\r\n return 0;\r\n }\r\n\r\n public writePolyfaceAsFBVariantGeometry(mesh: IndexedPolyface): number | undefined {\r\n if (mesh instanceof IndexedPolyface) {\r\n // WE KNOW . . . . the polyface has blocks of zero-based indices.\r\n const indexArray: number[] = []; // and this will really be integers.\r\n const numberArray: number[] = []; // and this will really be doubles.\r\n\r\n copyToPackedNumberArray(numberArray, mesh.data.point.float64Data(), mesh.data.point.float64Length);\r\n const pointOffset = BGFBAccessors.Polyface.createPointVector(this.builder, numberArray);\r\n let paramIndexOffset = 0;\r\n let normalIndexOffset = 0;\r\n let colorIndexOffset = 0;\r\n let intColorOffset = 0;\r\n let normalOffset = 0;\r\n let paramOffset = 0;\r\n let auxDataOffset = 0;\r\n let taggedNumericDataOffset = 0;\r\n let edgeMateIndexOffset = 0;\r\n const meshStyle = 1; // always write MESH_ELM_STYLE_INDEXED_FACE_LOOPS\r\n const numPerFace = 0; // always write variable sized, 0-terminated face loops\r\n this.fillOneBasedIndexArray(mesh, mesh.data.pointIndex, mesh.data.edgeVisible, 0, indexArray);\r\n\r\n const twoSided = mesh.twoSided;\r\n const pointIndexOffset = BGFBAccessors.Polyface.createPointIndexVector(this.builder, indexArray);\r\n if (mesh.data.paramIndex !== undefined && mesh.data.paramIndex.length > 0) {\r\n this.fillOneBasedIndexArray(mesh, mesh.data.paramIndex, undefined, 0, indexArray);\r\n paramIndexOffset = BGFBAccessors.Polyface.createParamIndexVector(this.builder, indexArray);\r\n }\r\n\r\n if (mesh.data.normalIndex !== undefined && mesh.data.normalIndex.length > 0) {\r\n this.fillOneBasedIndexArray(mesh, mesh.data.normalIndex, undefined, 0, indexArray);\r\n normalIndexOffset = BGFBAccessors.Polyface.createNormalIndexVector(this.builder, indexArray);\r\n }\r\n\r\n if (mesh.data.colorIndex !== undefined && mesh.data.colorIndex.length > 0) {\r\n this.fillOneBasedIndexArray(mesh, mesh.data.colorIndex, undefined, 0, indexArray);\r\n colorIndexOffset = BGFBAccessors.Polyface.createColorIndexVector(this.builder, indexArray);\r\n }\r\n\r\n // only int colors are persistent\r\n if (mesh.data.color !== undefined && mesh.data.color.length > 0) {\r\n intColorOffset = BGFBAccessors.Polyface.createIntColorVector(this.builder, mesh.data.color);\r\n }\r\n\r\n if (mesh.data.normal) {\r\n copyToPackedNumberArray(numberArray, mesh.data.normal.float64Data(), mesh.data.normal.float64Length);\r\n normalOffset = BGFBAccessors.Polyface.createNormalVector(this.builder, numberArray);\r\n }\r\n\r\n if (mesh.data.param) {\r\n copyToPackedNumberArray(numberArray, mesh.data.param.float64Data(), mesh.data.param.float64Length);\r\n paramOffset = BGFBAccessors.Polyface.createPointVector(this.builder, numberArray);\r\n }\r\n\r\n if (mesh.data.auxData)\r\n auxDataOffset = this.writePolyfaceAuxDataAsFBVariantGeometry(mesh, mesh.data.auxData);\r\n\r\n if (mesh.data.taggedNumericData)\r\n taggedNumericDataOffset = this.writeTaggedNumericDataArray(mesh.data.taggedNumericData);\r\n\r\n const expectedClosure = mesh.expectedClosure;\r\n\r\n if (mesh.data.edgeMateIndex) {\r\n indexArray.length = 0;\r\n if (SerializationHelpers.announceUncompressedZeroBasedReflexiveIndices(mesh.data.edgeMateIndex, mesh.facetStart,\r\n SerializationHelpers.EdgeMateIndex.BlockSeparator, SerializationHelpers.EdgeMateIndex.NoEdgeMate,\r\n (i: number) => indexArray.push(i),\r\n )) {\r\n edgeMateIndexOffset = BGFBAccessors.Polyface.createEdgeMateIndexVector(this.builder, indexArray);\r\n }\r\n }\r\n\r\n // NOTE: mesh.data.face is not persistent\r\n\r\n const polyfaceOffset = BGFBAccessors.Polyface.createPolyface(\r\n this.builder, pointOffset, paramOffset, normalOffset, 0, intColorOffset, pointIndexOffset, paramIndexOffset,\r\n normalIndexOffset, colorIndexOffset, 0, numPerFace, 0, meshStyle, twoSided, 0, 0, auxDataOffset,\r\n expectedClosure, taggedNumericDataOffset, edgeMateIndexOffset,\r\n );\r\n\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagPolyface, polyfaceOffset, 0);\r\n\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @param sourceIndex a map that takes zeroBasedDataIndex -> zeroBasedDataIndex, packed into unterminated face loops delineated by `mesh.facetIndex0/1`\r\n * @param destIndex a map that takes zeroBasedDataIndex -> signedOneBasedDataIndex, packed into optionally terminated face loops\r\n */\r\n private fillOneBasedIndexArray(mesh: IndexedPolyface, sourceIndex: number[], visible: boolean[] | undefined, facetTerminator: 0 | undefined, destIndex: number[]) {\r\n destIndex.length = 0;\r\n const numFacet = mesh.facetCount;\r\n for (let facetIndex = 0; facetIndex < numFacet; facetIndex++) {\r\n const k0 = mesh.facetIndex0(facetIndex);\r\n const k1 = mesh.facetIndex1(facetIndex);\r\n for (let k = k0; k < k1; k++) {\r\n let q = sourceIndex[k] + 1;\r\n if (visible !== undefined && !visible[k])\r\n q = -q;\r\n destIndex.push(q);\r\n }\r\n if (facetTerminator !== undefined)\r\n destIndex.push(facetTerminator);\r\n }\r\n }\r\n\r\n public writeGeometryQueryAsFBVariantGeometry(g: GeometryQuery): number | undefined {\r\n let offset: number | undefined;\r\n if (g instanceof CurvePrimitive && (offset = this.writeCurvePrimitiveAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof CurveCollection && (offset = this.writeCurveCollectionAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof IndexedPolyface && (offset = this.writePolyfaceAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof SolidPrimitive && (offset = this.writeSolidPrimitiveAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof BSplineSurface3d && (offset = this.writeBSplineSurfaceAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof BSplineSurface3dH && (offset = this.writeBSplineSurfaceAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n if (g instanceof PointString3d && (offset = this.writePointString3dAsFBVariantGeometry(g)) !== undefined)\r\n return offset;\r\n // if (g instanceof CoordinateXYZ) // TODO\r\n return undefined;\r\n }\r\n\r\n public writeGeometryQueryArrayAsFBVariantGeometry(allGeometry: GeometryQuery | GeometryQuery[] | undefined): number | undefined{\r\n if (Array.isArray(allGeometry)) {\r\n const allOffsets: number[] = [];\r\n for (const g of allGeometry) {\r\n const offset = this.writeGeometryQueryAsFBVariantGeometry(g);\r\n if (offset !== undefined)\r\n allOffsets.push(offset);\r\n }\r\n if (allOffsets.length > 0) {\r\n const membersOffset = BGFBAccessors.VectorOfVariantGeometry.createMembersVector(this.builder, allOffsets);\r\n const vectorOffset = BGFBAccessors.VectorOfVariantGeometry.createVectorOfVariantGeometry(this.builder, membersOffset);\r\n return BGFBAccessors.VariantGeometry.createVariantGeometry(this.builder, BGFBAccessors.VariantGeometryUnion.tagVectorOfVariantGeometry, vectorOffset, 0);\r\n }\r\n } else if (allGeometry instanceof GeometryQuery)\r\n return this.writeGeometryQueryAsFBVariantGeometry(allGeometry);\r\n return undefined;\r\n }\r\n /**\r\n * Serialize bytes to a flatbuffer.\r\n */\r\n public static geometryToBytes(data: GeometryQuery | GeometryQuery[], signatureBytes?: Uint8Array): Uint8Array | undefined {\r\n const writer = new BGFBWriter();\r\n const rootOffset = writer.writeGeometryQueryArrayAsFBVariantGeometry(data);\r\n\r\n if (rootOffset !== undefined) {\r\n const builder = writer.builder;\r\n builder.finish(rootOffset);\r\n const buffer = builder.dataBuffer();\r\n if (!signatureBytes) {\r\n return buffer.bytes().slice(buffer.position());\r\n } else if (buffer.position() >= signatureBytes.length) {\r\n // The buffer has space for the signature ahead of its position . . .\r\n const i0 = buffer.position() - signatureBytes.length;\r\n let i = i0;\r\n for (const k of signatureBytes)\r\n buffer.bytes()[i++] = k;\r\n return buffer.bytes().slice(i0);\r\n } else {\r\n // There is no space ahead of the position () . . .\r\n // coverage remark: I have never seen this happen for real.\r\n // It has been exercised by adding 1024 to the signatureBytes.length test to force this branch.\r\n const num1 = buffer.bytes().length - buffer.position();\r\n const num0 = signatureBytes.length;\r\n const newBytes = new Uint8Array(num0 + num1);\r\n newBytes.set(signatureBytes, 0);\r\n newBytes.set(buffer.bytes().slice(buffer.position()), num0);\r\n return newBytes;\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\nfunction extractNumberArray(data: GrowableXYZArray | Point3d[]): number[] {\r\n const result = [];\r\n if (data instanceof GrowableXYZArray) {\r\n // ugh -- accessors only deal with number[] ..\r\n const numCoordinate = 3 * data.length;\r\n const source = data.float64Data();\r\n for (let i = 0; i < numCoordinate; i++)\r\n result.push(source[i]);\r\n return result;\r\n } else if (Array.isArray(data)) {\r\n for (const xyz of data)\r\n result.push(xyz.x, xyz.y, xyz.z);\r\n }\r\n return result;\r\n}\r\n/** Copy the active data to a simple number array. */\r\nfunction copyToPackedNumberArray(dest: number[], source: Float64Array, count: number) {\r\n dest.length = 0;\r\n for (let i = 0; i < count; i++)\r\n dest.push(source[i]);\r\n}\r\n\r\n"]}
|
|
@@ -89,51 +89,66 @@ export declare namespace IModelJson {
|
|
|
89
89
|
/** polynomial order (one more than degree) in the v parameter direction */
|
|
90
90
|
orderV: number;
|
|
91
91
|
/** Square grid of control points (aka poles) in row major order (row is along the u direction) */
|
|
92
|
-
points: [[[
|
|
92
|
+
points: number[][][];
|
|
93
93
|
/** Array of knots for the u direction bspline */
|
|
94
|
-
uKnots: [
|
|
94
|
+
uKnots: number[];
|
|
95
95
|
/** Array of knots for the v direction bspline */
|
|
96
|
-
vKnots: [
|
|
96
|
+
vKnots: number[];
|
|
97
97
|
/** optional flag for periodic data in the u parameter direction */
|
|
98
98
|
closedU?: boolean;
|
|
99
99
|
/** optional flag for periodic data in the v parameter direction */
|
|
100
100
|
closedV?: boolean;
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Interface for a `Loop`.
|
|
104
|
+
* @public
|
|
105
|
+
*/
|
|
106
|
+
interface LoopProps {
|
|
107
|
+
/** Flag for inner loop status. */
|
|
108
|
+
isInner?: boolean;
|
|
109
|
+
/** A sequence of curves which connect head to tail, with the final connecting back to the first. */
|
|
110
|
+
loop: CurvePrimitiveProps[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Interface for a `ParityRegion`.
|
|
114
|
+
* @public
|
|
115
|
+
*/
|
|
116
|
+
interface ParityRegionProps {
|
|
117
|
+
/**
|
|
118
|
+
* A collection of loops, with composite inside/outside determined by parity rules.
|
|
119
|
+
* * A single outer boundary with one or more holes is a parityRegion.
|
|
120
|
+
*/
|
|
121
|
+
parityRegion: LoopProps[];
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Interface for a `UnionRegion`.
|
|
125
|
+
* @public
|
|
126
|
+
*/
|
|
127
|
+
interface UnionRegionProps {
|
|
128
|
+
/** A collection of loops and parityRegions. */
|
|
129
|
+
unionRegion: (LoopProps | ParityRegionProps)[];
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Interface for a collection of curves that bound a planar region.
|
|
133
|
+
* @public
|
|
134
|
+
*/
|
|
135
|
+
interface PlanarRegionProps extends Partial<LoopProps>, Partial<ParityRegionProps>, Partial<UnionRegionProps> {
|
|
136
|
+
}
|
|
102
137
|
/**
|
|
103
138
|
* Interface for a collection of curves, e.g. as used as a swept contour.
|
|
104
139
|
* @public
|
|
105
140
|
*/
|
|
106
141
|
interface CurveCollectionProps extends PlanarRegionProps {
|
|
107
142
|
/** A sequence of curves joined head to tail. */
|
|
108
|
-
path?: [
|
|
143
|
+
path?: CurvePrimitiveProps[];
|
|
109
144
|
/**
|
|
110
145
|
* A collection of curves with no required structure or connections
|
|
111
|
-
* @deprecated in 5.0 - might be removed in next major version. Instead use bagOfCurves,
|
|
146
|
+
* @deprecated in 5.0 - might be removed in next major version. Instead use bagOfCurves,
|
|
147
|
+
* which has correct capitalization and type. The old name has never been persisted.
|
|
112
148
|
*/
|
|
113
|
-
bagofCurves?: [
|
|
149
|
+
bagofCurves?: CurveCollectionProps[];
|
|
114
150
|
/** A collection of curves with no required structure or connections. */
|
|
115
|
-
bagOfCurves?:
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Interface for a collection of curves that bound a planar region
|
|
119
|
-
* @public
|
|
120
|
-
*/
|
|
121
|
-
interface PlanarRegionProps {
|
|
122
|
-
/** `{loop:...}`
|
|
123
|
-
* * A sequence of curves which connect head to tail, with the final connecting back to the first
|
|
124
|
-
*/
|
|
125
|
-
loop?: [CurvePrimitiveProps];
|
|
126
|
-
/** `{parityRegion:...}`
|
|
127
|
-
* * A collection of loops, with composite inside/outside determined by parity rules.
|
|
128
|
-
* * (The single outer boundary with one or more holes is a parityRegion)
|
|
129
|
-
*/
|
|
130
|
-
parityRegion?: [{
|
|
131
|
-
loop: [CurvePrimitiveProps];
|
|
132
|
-
}];
|
|
133
|
-
/** `{unionRegion:...}`
|
|
134
|
-
* * A collection of loops and parityRegions
|
|
135
|
-
*/
|
|
136
|
-
unionRegion?: [PlanarRegionProps];
|
|
151
|
+
bagOfCurves?: (CurveCollectionProps | CurvePrimitiveProps)[];
|
|
137
152
|
}
|
|
138
153
|
/**
|
|
139
154
|
* Interface for solid primitives: box, sphere, cylinder, cone, torusPipe, linear sweep, rotational sweep, ruled sweep.
|
|
@@ -291,7 +306,7 @@ export declare namespace IModelJson {
|
|
|
291
306
|
*/
|
|
292
307
|
interface RuledSweepProps {
|
|
293
308
|
/** An array of swept curves or regions. */
|
|
294
|
-
contour: [
|
|
309
|
+
contour: CurveCollectionProps[];
|
|
295
310
|
/** Optional capping flag. */
|
|
296
311
|
capped?: boolean;
|
|
297
312
|
}
|
|
@@ -333,9 +348,9 @@ export declare namespace IModelJson {
|
|
|
333
348
|
*/
|
|
334
349
|
interface BcurveProps {
|
|
335
350
|
/** control points */
|
|
336
|
-
points: [
|
|
351
|
+
points: XYZProps[];
|
|
337
352
|
/** knots. */
|
|
338
|
-
knots: [
|
|
353
|
+
knots: number[];
|
|
339
354
|
/** order of polynomial
|
|
340
355
|
* * The order is the number of basis functions that are in effect at any knot value.
|
|
341
356
|
* * The order is the number of points that affect the curve at any knot value,
|
|
@@ -511,21 +526,21 @@ export declare namespace IModelJson {
|
|
|
511
526
|
*/
|
|
512
527
|
interface IndexedMeshProps {
|
|
513
528
|
/** vertex coordinates */
|
|
514
|
-
point: [
|
|
529
|
+
point: XYZProps[];
|
|
515
530
|
/** surface normals */
|
|
516
|
-
normal?: [
|
|
531
|
+
normal?: XYZProps[];
|
|
517
532
|
/** texture space (uv parameter) coordinates */
|
|
518
|
-
param?: [
|
|
533
|
+
param?: XYProps[];
|
|
519
534
|
/** 32 bit color values */
|
|
520
|
-
color?: [
|
|
535
|
+
color?: number[];
|
|
521
536
|
/** SIGNED ONE BASED ZERO TERMINATED array of point indices. */
|
|
522
|
-
pointIndex: [
|
|
537
|
+
pointIndex: number[];
|
|
523
538
|
/** ONE BASED ZERO TERMINATED array of param indices. ZERO is terminator for single facet. */
|
|
524
|
-
paramIndex?: [
|
|
539
|
+
paramIndex?: number[];
|
|
525
540
|
/** ONE BASED ZERO TERMINATED array of normal indices. ZERO is terminator for single facet. */
|
|
526
|
-
normalIndex?: [
|
|
541
|
+
normalIndex?: number[];
|
|
527
542
|
/** ONE BASED ZERO TERMINATED array of color indices. ZERO is terminator for single facet. */
|
|
528
|
-
colorIndex?: [
|
|
543
|
+
colorIndex?: number[];
|
|
529
544
|
/**
|
|
530
545
|
* Optional fixed block size for indices.
|
|
531
546
|
* If defined, each facet is represented by `numPerFace` 1-based indices, with appended zeroes if the facet has fewer edges.
|
|
@@ -546,7 +561,7 @@ export declare namespace IModelJson {
|
|
|
546
561
|
* Optional edge -> edgeMate map, parallel to the other index arrays.
|
|
547
562
|
* * Each entry is a zero-based index, or -1 face loop terminator, or -2 to indicate "no edge mate".
|
|
548
563
|
*/
|
|
549
|
-
edgeMateIndex?: [
|
|
564
|
+
edgeMateIndex?: number[];
|
|
550
565
|
}
|
|
551
566
|
/** parser services for "iModelJson" schema
|
|
552
567
|
* * 1: create a reader with `new ImodelJsonReader`
|
|
@@ -605,7 +620,7 @@ export declare namespace IModelJson {
|
|
|
605
620
|
/** parse indexed mesh content to an IndexedPolyface instance */
|
|
606
621
|
static parseIndexedMesh(data?: any): IndexedPolyface | undefined;
|
|
607
622
|
/** parse contents of a curve collection to a CurveCollection instance */
|
|
608
|
-
static parseCurveCollectionMembers(result: CurveCollection, data?: any): CurveCollection | undefined;
|
|
623
|
+
static parseCurveCollectionMembers(result: CurveCollection, data?: any, isInner?: boolean): CurveCollection | undefined;
|
|
609
624
|
/** Parse content of `bsurf` to BSplineSurface3d or BSplineSurface3dH */
|
|
610
625
|
static parseBsurf(data?: any): BSplineSurface3d | BSplineSurface3dH | undefined;
|
|
611
626
|
/** Parse `cone` contents to `Cone` instance */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelJsonSchema.d.ts","sourceRoot":"","sources":["../../../src/serialization/IModelJsonSchema.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAyB,MAAM,2BAA2B,CAAC;AACvG,OAAO,EAAE,oBAAoB,IAAI,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAE1H,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAiB,MAAM,+BAA+B,CAAC;AAIvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAsB,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAA8B,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C;;;GAGG;AACH,yBAAiB,UAAU,CAAC;IAC1B;;;OAGG;IACH,UAAiB,aAAc,SAAQ,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB;QACnG,0BAA0B;QAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,oBAAoB;QACpB,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,oBAAoB;QACpB,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,0BAA0B;QAC1B,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;KAC1B;IACD;;;;OAIG;IACH,UAAiB,mBAAmB;QAClC,0BAA0B;QAC1B,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnC,yBAAyB;QACzB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxB,qBAAqB;QACrB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,+BAA+B;QAC/B,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;QACzC,kBAAkB;QAClB,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxD,iCAAiC;QACjC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;KAChD;IAED;;;OAGG;IACH,UAAiB,UAAU;QACzB,oBAAoB;QACpB,KAAK,CAAC,EAAE,QAAQ,CAAC;KAClB;IAED;;;;OAIG;IACH,UAAiB,mBAAmB;QAClC,2EAA2E;QAC3E,MAAM,EAAE,MAAM,CAAC;QACf,2EAA2E;QAC3E,MAAM,EAAE,MAAM,CAAC;QACf,kGAAkG;QAClG,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,iDAAiD;QACjD,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QACjB,iDAAiD;QACjD,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QACjB,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB;IAED;;;OAGG;IACH,UAAiB,oBAAqB,SAAQ,iBAAiB;QAC7D,gDAAgD;QAChD,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAE7B;;;UAGE;QACF,WAAW,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;QACrC,wEAAwE;QACxE,WAAW,CAAC,EAAE,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,CAAC;KAC5D;IAED;;;OAGG;IACH,UAAiB,iBAAiB;QAChC;;WAEG;QACH,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAC7B;;;WAGG;QACH,YAAY,CAAC,EAAE,CAAC;YAAE,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAA;SAAE,CAAC,CAAC;QACjD;;WAEG;QACH,WAAW,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;KACnC;IACD;;;OAGG;IACH,UAAiB,mBAAmB;QAClC,uBAAuB;QACvB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,kBAAkB;QAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;QACf,8BAA8B;QAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,4BAA4B;QAC5B,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,iCAAiC;QACjC,SAAS,CAAC,EAAE,cAAc,CAAC;QAC3B,gCAAgC;QAChC,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,8BAA8B;QAC9B,eAAe,CAAC,EAAE,oBAAoB,CAAC;QACvC,yBAAyB;QACzB,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B;IAED;;;;;;;OAOG;IACH,UAAiB,SAAS;QACxB;;;;;;WAMG;QACH,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;QACvC;;;;;WAKG;QACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjC;;;;;WAKG;QACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjC;;;;;WAKG;QACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC7C;IAED;;;OAGG;IACH,UAAiB,gBAAgB;QAC/B,uBAAuB;QACvB,MAAM,EAAE,QAAQ,CAAC;QACjB,+EAA+E;QAC/E,OAAO,EAAE,QAAQ,CAAC;QAClB,8EAA8E;QAC9E,OAAO,EAAE,QAAQ,CAAC;QAClB,iGAAiG;QACjG,aAAa,EAAE,eAAe,CAAC;KAChC;IAED;;;;;;;;OAQG;IACH,UAAiB,SAAU,SAAQ,SAAS;QAC1C,gDAAgD;QAChD,KAAK,EAAE,QAAQ,CAAC;QAChB,8CAA8C;QAC9C,GAAG,EAAE,QAAQ,CAAC;QAEd,mFAAmF;QACnF,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iFAAiF;QACjF,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kFAAkF;QAClF,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;;WAGG;QACH,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB;;;WAGG;QACH,OAAO,CAAC,EAAE,QAAQ,CAAC;QAEnB,kCAAkC;QAClC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;OAGG;IACH,UAAiB,aAAa;QAC5B,0BAA0B;QAC1B,KAAK,EAAE,QAAQ,CAAC;QAChB,wBAAwB;QACxB,GAAG,EAAE,QAAQ,CAAC;QACd,sBAAsB;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,kCAAkC;QAClC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;OAGG;IACH,UAAiB,gBAAgB;QAC/B,uDAAuD;QACvD,OAAO,EAAE,oBAAoB,CAAC;QAC9B,wBAAwB;QACxB,MAAM,EAAE,QAAQ,CAAC;QACjB,kCAAkC;QAClC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;OAGG;IACH,UAAiB,oBAAoB;QACnC,uDAAuD;QACvD,OAAO,EAAE,oBAAoB,CAAC;QAC9B,yCAAyC;QACzC,MAAM,EAAE,QAAQ,CAAC;QACjB,4BAA4B;QAC5B,IAAI,EAAE,QAAQ,CAAC;QACf,kBAAkB;QAClB,UAAU,EAAE,UAAU,CAAC;QACvB,kCAAkC;QAClC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;OAGG;IACH,UAAiB,eAAe;QAC9B,2CAA2C;QAC3C,OAAO,EAAE,CAAC,oBAAoB,CAAC,CAAC;QAChC,6BAA6B;QAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;;;;;OAOG;IACH,UAAiB,qBAAsB,SAAQ,SAAS;QAEtD,uCAAuC;QACvC,MAAM,EAAE,QAAQ,CAAC;QACjB,sCAAsC;QACtC,YAAY,CAAC,EAAE,UAAU,CAAC;QAC1B,mBAAmB;QACnB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,2CAA2C;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;WACG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;QAClC;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IAED;;;OAGG;IACH,UAAiB,WAAW;QAC1B,qBAAqB;QACrB,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;QACnB,aAAa;QACb,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;QAChB;;;;;;;;;;;;;WAaG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,uCAAuC;QACvC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;;;;;;OAQG;IACH,UAAiB,QAAS,SAAQ,SAAS;QACzC,sDAAsD;QACtD,MAAM,EAAE,QAAQ,CAAC;QACjB;;;;WAIG;QACH,UAAU,CAAC,EAAE,QAAQ,CAAC;QACtB,6BAA6B;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;WAGG;QACH,SAAS,CAAC,EAAE,QAAQ,CAAC;QACrB;;UAEE;QACF,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,6BAA6B;QAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;;;;;OAOG;IACH,UAAiB,WAAY,SAAQ,SAAS;QAC5C,6CAA6C;QAC7C,MAAM,EAAE,QAAQ,CAAC;QAEjB,qBAAqB;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,wBAAwB;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,wBAAwB;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,wBAAwB;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,yFAAyF;QACzF,gBAAgB,CAAC,EAAE,eAAe,CAAC;QACnC,uDAAuD;QACvD,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;;;;;;;;OAUG;IACH,UAAiB,cAAe,SAAQ,SAAS;QAC/C,sEAAsE;QACtE,MAAM,EAAE,QAAQ,CAAC;QAEjB,qCAAqC;QACrC,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB;;WAEG;QACH,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,uDAAuD;QACvD,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED;;;;OAIG;IACH,UAAiB,mBAAmB;QAClC,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,mJAAmJ;QACnJ,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IACD;;;;OAIG;IACH,UAAiB,eAAe;QAC9B,+DAA+D;QAC/D,IAAI,EAAE,mBAAmB,EAAE,CAAC;QAC5B,+CAA+C;QAC/C,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,6BAA6B;QAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,2BAA2B;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD;;;;MAIE;IACF,UAAiB,YAAY;QAC3B,yDAAyD;QACzD,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC5B,0FAA0F;QAC1F,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB;IACD;;;;OAIG;IACH,UAAiB,sBAAsB;QACrC,wDAAwD;QACxD,IAAI,EAAE,MAAM,CAAC;QACb,2BAA2B;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,wCAAwC;QACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,mCAAmC;QACnC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB;IACD;;;;;;;;;OASG;IACH,UAAiB,gBAAgB;QAC/B,yBAAyB;QACzB,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;QAClB,sBAAsB;QACtB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACpB,+CAA+C;QAC/C,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAClB,0BAA0B;QAC1B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEjB,+DAA+D;QAC/D,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;QACrB,8FAA8F;QAC9F,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACtB,8FAA8F;QAC9F,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACvB,6FAA6F;QAC7F,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEtB;;;;WAIG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iGAAiG;QACjG,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;WAEG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,2DAA2D;QAC3D,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,iFAAiF;QACjF,IAAI,CAAC,EAAE,sBAAsB,CAAC;QAE9B;;;WAGG;QACH,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;KAC1B;IACD;;;;OAIG;IACH,MAAa,MAAM;;QAKjB,OAAO,CAAC,MAAM,CAAC,qBAAqB;QAapC,OAAO,CAAC,MAAM,CAAC,oBAAoB;QAanC,OAAO,CAAC,MAAM,CAAC,sBAAsB;QASrC,OAAO,CAAC,MAAM,CAAC,mBAAmB;QAQlC;;WAEG;eACW,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,iBAAiB,GAAG,SAAS;QAc/E,OAAO,CAAC,MAAM,CAAC,wBAAwB;QAevC,OAAO,CAAC,MAAM,CAAC,kBAAkB;QAOjC;;WAEG;QACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;QAUnC,OAAO,CAAC,MAAM,CAAC,oBAAoB;QASnC,OAAO,CAAC,MAAM,CAAC,gBAAgB;QAkB/B,OAAO,CAAC,MAAM,CAAC,iCAAiC;QAKhD,OAAO,CAAC,MAAM,CAAC,mBAAmB;QASlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;QAsBnC;;;;;;;;;WASG;QACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;QAc/B,OAAO,CAAC,MAAM,CAAC,qBAAqB;QAgBpC,OAAO,CAAC,MAAM,CAAC,iBAAiB;QAUhC,OAAO,CAAC,MAAM,CAAC,cAAc;QAO7B,4EAA4E;eAC9D,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,aAAa,GAAG,SAAS;QAMpE,2EAA2E;eAC7D,qBAAqB,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,kBAAkB,GAAG,SAAS;QA4CjG,0EAA0E;eAC5D,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,cAAc,GAAG,eAAe,GAAG,SAAS;QA0BnF,4EAA4E;eAC9D,uBAAuB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,oBAAoB,GAAG,SAAS;QAMnF,2DAA2D;eAC7C,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,YAAY,GAAG,SAAS;QAMrE,yDAAyD;eAC3C,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,SAAS;QAcvD,kEAAkE;eACpD,oBAAoB,CAAC,IAAI,GAAE,GAAe,EAAE,UAAU,GAAE,MAAU,GAAG,eAAe,GAAG,SAAS;QAuB9G,gEAAgE;eAClD,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,eAAe,GAAG,SAAS;QAyEvE,yEAAyE;eAC3D,2BAA2B,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,eAAe,GAAG,SAAS;QAY3G,wEAAwE;eAC1D,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,SAAS;QAgCtF,gDAAgD;eAClC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS;QAsBhE,kDAAkD;eACpC,kBAAkB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS;QAcxE,oFAAoF;QACpF,OAAO,CAAC,MAAM,CAAC,qBAAqB;QAMpC,4DAA4D;eAC9C,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,WAAW,GAAG,SAAS;QAanE,oEAAoE;eACtD,oBAAoB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,eAAe,GAAG,SAAS;QAuB5F,2CAA2C;eAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,GAAG,GAAG,SAAS;QA+BxD,gDAAgD;eAClC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS;QAejE,oDAAoD;eACtC,eAAe,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS;QAS7E,mDAAmD;eACrC,cAAc,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS;QAkB1E,2DAA2D;eAC7C,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE;QAatD,uDAAuD;eACzC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,gBAAgB,GAAG,GAAG,EAAE,GAAG,SAAS;KAuDtE;IAED;;;OAGG;IACH,MAAa,MAAO,SAAQ,eAAe;QAElC,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,sBAAsB;QAQ/E,qDAAqD;QAC9C,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,GAAG;QAGpD,qDAAqD;QAC9C,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,GAAG;QAIpD,qDAAqD;QAC9C,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG;QAUpC;;;;;WAKG;QACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;QAY1C,OAAO,CAAC,MAAM,CAAC,YAAY;QAI3B;;;;;WAKG;QACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;QAM7C;;;;;;;WAOG;QACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;QAOlC,8CAA8C;QACvC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,GAAG;QAgE5D,qDAAqD;QAC9C,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QA+ClC,qDAAqD;QAC9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;QA+CtC,qDAAqD;QAC9C,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,GAAG;QAwB5C,qDAAqD;QAC9C,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,GAAG;QAQlD,qDAAqD;QAC9C,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,GAAG;QAQpD,qDAAqD;QACrC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QAG3C,qDAAqD;QACrC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QAI3C,qDAAqD;QACrC,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,GAAG;QAI3D,qDAAqD;QACrC,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,GAAG;QAIzD,qDAAqD;QACrC,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,GAAG;QAIzD,OAAO,CAAC,eAAe;QAYvB,qDAAqD;QAC9C,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,GAAG;QAkBhD,qDAAqD;QAC9C,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG;QAoB9C,qDAAqD;QAC9C,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,GAAG;QAgBxD,qDAAqD;QAC9C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;QAqB/B,OAAO,CAAC,qBAAqB;QAqB7B,qDAAqD;QAC9C,qBAAqB,CAAC,EAAE,EAAE,eAAe,GAAG,GAAG;QAqHtD,OAAO,CAAC,kBAAkB;QAoB1B,qDAAqD;QAC9C,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG;QAIvD,qDAAqD;QAC9C,0BAA0B,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG;QAMnE,qDAAqD;QAC9C,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,GAAG;QAInD,qDAAqD;QAC9C,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG;QAcrD,qDAAqD;QAC9C,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG;QAIzD,qDAAqD;QAC9C,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,GAAG;QAI7D,qDAAqD;QAC9C,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG;QAcvD,qDAAqD;QACrD,OAAO,CAAC,oBAAoB;QA4B5B,qDAAqD;QAC9C,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,GAAG;QAI/D,8EAA8E;QACvE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG;QAQrC,uFAAuF;QAChF,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG;QAW3B,uEAAuE;eACzD,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG;KAI3C;CACF"}
|
|
1
|
+
{"version":3,"file":"IModelJsonSchema.d.ts","sourceRoot":"","sources":["../../../src/serialization/IModelJsonSchema.ts"],"names":[],"mappings":"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"}
|