@itwin/core-orbitgt 3.0.0-dev.100
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 +515 -0
- package/lib/cjs/core-orbitgt.d.ts +27 -0
- package/lib/cjs/core-orbitgt.d.ts.map +1 -0
- package/lib/cjs/core-orbitgt.js +59 -0
- package/lib/cjs/core-orbitgt.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/AttributeMask.d.ts +31 -0
- package/lib/cjs/pointcloud/format/opc/AttributeMask.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/AttributeMask.js +48 -0
- package/lib/cjs/pointcloud/format/opc/AttributeMask.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/AttributeReader.d.ts +64 -0
- package/lib/cjs/pointcloud/format/opc/AttributeReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/AttributeReader.js +25 -0
- package/lib/cjs/pointcloud/format/opc/AttributeReader.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/BlockRecord.d.ts +55 -0
- package/lib/cjs/pointcloud/format/opc/BlockRecord.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/BlockRecord.js +85 -0
- package/lib/cjs/pointcloud/format/opc/BlockRecord.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFile.d.ts +86 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFile.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFile.js +200 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFile.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFilePart.d.ts +56 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFilePart.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFilePart.js +76 -0
- package/lib/cjs/pointcloud/format/opc/ContainerFilePart.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryReader.d.ts +76 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryReader.js +170 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryReader.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryRecord.d.ts +60 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryRecord.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryRecord.js +90 -0
- package/lib/cjs/pointcloud/format/opc/DirectoryRecord.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.d.ts +107 -0
- package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.js +198 -0
- package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/FileAccess.d.ts +40 -0
- package/lib/cjs/pointcloud/format/opc/FileAccess.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/FileAccess.js +49 -0
- package/lib/cjs/pointcloud/format/opc/FileAccess.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/FileReader.d.ts +119 -0
- package/lib/cjs/pointcloud/format/opc/FileReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/FileReader.js +249 -0
- package/lib/cjs/pointcloud/format/opc/FileReader.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/FileRecord.d.ts +90 -0
- package/lib/cjs/pointcloud/format/opc/FileRecord.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/FileRecord.js +126 -0
- package/lib/cjs/pointcloud/format/opc/FileRecord.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/GeometryReader.d.ts +80 -0
- package/lib/cjs/pointcloud/format/opc/GeometryReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/GeometryReader.js +164 -0
- package/lib/cjs/pointcloud/format/opc/GeometryReader.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/GeometryRecord.d.ts +54 -0
- package/lib/cjs/pointcloud/format/opc/GeometryRecord.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/GeometryRecord.js +108 -0
- package/lib/cjs/pointcloud/format/opc/GeometryRecord.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/OPCReader.d.ts +158 -0
- package/lib/cjs/pointcloud/format/opc/OPCReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/OPCReader.js +320 -0
- package/lib/cjs/pointcloud/format/opc/OPCReader.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/PointReader.d.ts +73 -0
- package/lib/cjs/pointcloud/format/opc/PointReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/PointReader.js +153 -0
- package/lib/cjs/pointcloud/format/opc/PointReader.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/TileReadBuffer.d.ts +64 -0
- package/lib/cjs/pointcloud/format/opc/TileReadBuffer.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/TileReadBuffer.js +93 -0
- package/lib/cjs/pointcloud/format/opc/TileReadBuffer.js.map +1 -0
- package/lib/cjs/pointcloud/format/opc/TileRecord.d.ts +89 -0
- package/lib/cjs/pointcloud/format/opc/TileRecord.d.ts.map +1 -0
- package/lib/cjs/pointcloud/format/opc/TileRecord.js +162 -0
- package/lib/cjs/pointcloud/format/opc/TileRecord.js.map +1 -0
- package/lib/cjs/pointcloud/model/AttributeTypes.d.ts +38 -0
- package/lib/cjs/pointcloud/model/AttributeTypes.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/AttributeTypes.js +65 -0
- package/lib/cjs/pointcloud/model/AttributeTypes.js.map +1 -0
- package/lib/cjs/pointcloud/model/AttributeValue.d.ts +248 -0
- package/lib/cjs/pointcloud/model/AttributeValue.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/AttributeValue.js +509 -0
- package/lib/cjs/pointcloud/model/AttributeValue.js.map +1 -0
- package/lib/cjs/pointcloud/model/BlockIndex.d.ts +50 -0
- package/lib/cjs/pointcloud/model/BlockIndex.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/BlockIndex.js +49 -0
- package/lib/cjs/pointcloud/model/BlockIndex.js.map +1 -0
- package/lib/cjs/pointcloud/model/CloudPoint.d.ts +211 -0
- package/lib/cjs/pointcloud/model/CloudPoint.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/CloudPoint.js +319 -0
- package/lib/cjs/pointcloud/model/CloudPoint.js.map +1 -0
- package/lib/cjs/pointcloud/model/Grid.d.ts +92 -0
- package/lib/cjs/pointcloud/model/Grid.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/Grid.js +130 -0
- package/lib/cjs/pointcloud/model/Grid.js.map +1 -0
- package/lib/cjs/pointcloud/model/GridIndex.d.ts +67 -0
- package/lib/cjs/pointcloud/model/GridIndex.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/GridIndex.js +94 -0
- package/lib/cjs/pointcloud/model/GridIndex.js.map +1 -0
- package/lib/cjs/pointcloud/model/PointAttribute.d.ts +209 -0
- package/lib/cjs/pointcloud/model/PointAttribute.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/PointAttribute.js +375 -0
- package/lib/cjs/pointcloud/model/PointAttribute.js.map +1 -0
- package/lib/cjs/pointcloud/model/PointCloudReader.d.ts +157 -0
- package/lib/cjs/pointcloud/model/PointCloudReader.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/PointCloudReader.js +190 -0
- package/lib/cjs/pointcloud/model/PointCloudReader.js.map +1 -0
- package/lib/cjs/pointcloud/model/PointData.d.ts +18 -0
- package/lib/cjs/pointcloud/model/PointData.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/PointData.js +25 -0
- package/lib/cjs/pointcloud/model/PointData.js.map +1 -0
- package/lib/cjs/pointcloud/model/PointDataRaw.d.ts +35 -0
- package/lib/cjs/pointcloud/model/PointDataRaw.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/PointDataRaw.js +70 -0
- package/lib/cjs/pointcloud/model/PointDataRaw.js.map +1 -0
- package/lib/cjs/pointcloud/model/ReadRequest.d.ts +176 -0
- package/lib/cjs/pointcloud/model/ReadRequest.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/ReadRequest.js +240 -0
- package/lib/cjs/pointcloud/model/ReadRequest.js.map +1 -0
- package/lib/cjs/pointcloud/model/StandardAttributes.d.ts +41 -0
- package/lib/cjs/pointcloud/model/StandardAttributes.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/StandardAttributes.js +48 -0
- package/lib/cjs/pointcloud/model/StandardAttributes.js.map +1 -0
- package/lib/cjs/pointcloud/model/TileIndex.d.ts +48 -0
- package/lib/cjs/pointcloud/model/TileIndex.d.ts.map +1 -0
- package/lib/cjs/pointcloud/model/TileIndex.js +48 -0
- package/lib/cjs/pointcloud/model/TileIndex.js.map +1 -0
- package/lib/cjs/pointcloud/render/AViewRequest.d.ts +39 -0
- package/lib/cjs/pointcloud/render/AViewRequest.d.ts.map +1 -0
- package/lib/cjs/pointcloud/render/AViewRequest.js +25 -0
- package/lib/cjs/pointcloud/render/AViewRequest.js.map +1 -0
- package/lib/cjs/pointcloud/render/Block.d.ts +68 -0
- package/lib/cjs/pointcloud/render/Block.d.ts.map +1 -0
- package/lib/cjs/pointcloud/render/Block.js +120 -0
- package/lib/cjs/pointcloud/render/Block.js.map +1 -0
- package/lib/cjs/pointcloud/render/DataManager.d.ts +137 -0
- package/lib/cjs/pointcloud/render/DataManager.d.ts.map +1 -0
- package/lib/cjs/pointcloud/render/DataManager.js +343 -0
- package/lib/cjs/pointcloud/render/DataManager.js.map +1 -0
- package/lib/cjs/pointcloud/render/FrameData.d.ts +31 -0
- package/lib/cjs/pointcloud/render/FrameData.d.ts.map +1 -0
- package/lib/cjs/pointcloud/render/FrameData.js +40 -0
- package/lib/cjs/pointcloud/render/FrameData.js.map +1 -0
- package/lib/cjs/pointcloud/render/Level.d.ts +91 -0
- package/lib/cjs/pointcloud/render/Level.d.ts.map +1 -0
- package/lib/cjs/pointcloud/render/Level.js +120 -0
- package/lib/cjs/pointcloud/render/Level.js.map +1 -0
- package/lib/cjs/pointcloud/render/TileLoadSorter.d.ts +61 -0
- package/lib/cjs/pointcloud/render/TileLoadSorter.d.ts.map +1 -0
- package/lib/cjs/pointcloud/render/TileLoadSorter.js +100 -0
- package/lib/cjs/pointcloud/render/TileLoadSorter.js.map +1 -0
- package/lib/cjs/pointcloud/render/ViewTree.d.ts +114 -0
- package/lib/cjs/pointcloud/render/ViewTree.d.ts.map +1 -0
- package/lib/cjs/pointcloud/render/ViewTree.js +364 -0
- package/lib/cjs/pointcloud/render/ViewTree.js.map +1 -0
- package/lib/cjs/spatial/crs/CRSEngine.d.ts +56 -0
- package/lib/cjs/spatial/crs/CRSEngine.d.ts.map +1 -0
- package/lib/cjs/spatial/crs/CRSEngine.js +94 -0
- package/lib/cjs/spatial/crs/CRSEngine.js.map +1 -0
- package/lib/cjs/spatial/crs/CRSManager.d.ts +50 -0
- package/lib/cjs/spatial/crs/CRSManager.d.ts.map +1 -0
- package/lib/cjs/spatial/crs/CRSManager.js +110 -0
- package/lib/cjs/spatial/crs/CRSManager.js.map +1 -0
- package/lib/cjs/spatial/ecrs/Axis.d.ts +78 -0
- package/lib/cjs/spatial/ecrs/Axis.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/Axis.js +94 -0
- package/lib/cjs/spatial/ecrs/Axis.js.map +1 -0
- package/lib/cjs/spatial/ecrs/CRS.d.ts +448 -0
- package/lib/cjs/spatial/ecrs/CRS.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/CRS.js +931 -0
- package/lib/cjs/spatial/ecrs/CRS.js.map +1 -0
- package/lib/cjs/spatial/ecrs/CoordinateSystem.d.ts +143 -0
- package/lib/cjs/spatial/ecrs/CoordinateSystem.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/CoordinateSystem.js +327 -0
- package/lib/cjs/spatial/ecrs/CoordinateSystem.js.map +1 -0
- package/lib/cjs/spatial/ecrs/DataFileUnit.d.ts +11 -0
- package/lib/cjs/spatial/ecrs/DataFileUnit.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/DataFileUnit.js +105 -0
- package/lib/cjs/spatial/ecrs/DataFileUnit.js.map +1 -0
- package/lib/cjs/spatial/ecrs/Datum.d.ts +112 -0
- package/lib/cjs/spatial/ecrs/Datum.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/Datum.js +167 -0
- package/lib/cjs/spatial/ecrs/Datum.js.map +1 -0
- package/lib/cjs/spatial/ecrs/Ellipsoid.d.ts +189 -0
- package/lib/cjs/spatial/ecrs/Ellipsoid.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/Ellipsoid.js +337 -0
- package/lib/cjs/spatial/ecrs/Ellipsoid.js.map +1 -0
- package/lib/cjs/spatial/ecrs/OnlineEngine.d.ts +49 -0
- package/lib/cjs/spatial/ecrs/OnlineEngine.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/OnlineEngine.js +103 -0
- package/lib/cjs/spatial/ecrs/OnlineEngine.js.map +1 -0
- package/lib/cjs/spatial/ecrs/OnlineRegistry.d.ts +38 -0
- package/lib/cjs/spatial/ecrs/OnlineRegistry.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/OnlineRegistry.js +77 -0
- package/lib/cjs/spatial/ecrs/OnlineRegistry.js.map +1 -0
- package/lib/cjs/spatial/ecrs/Operation.d.ts +192 -0
- package/lib/cjs/spatial/ecrs/Operation.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/Operation.js +346 -0
- package/lib/cjs/spatial/ecrs/Operation.js.map +1 -0
- package/lib/cjs/spatial/ecrs/OperationMethod.d.ts +72 -0
- package/lib/cjs/spatial/ecrs/OperationMethod.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/OperationMethod.js +76 -0
- package/lib/cjs/spatial/ecrs/OperationMethod.js.map +1 -0
- package/lib/cjs/spatial/ecrs/ParameterValue.d.ts +50 -0
- package/lib/cjs/spatial/ecrs/ParameterValue.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/ParameterValue.js +66 -0
- package/lib/cjs/spatial/ecrs/ParameterValue.js.map +1 -0
- package/lib/cjs/spatial/ecrs/ParameterValueList.d.ts +73 -0
- package/lib/cjs/spatial/ecrs/ParameterValueList.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/ParameterValueList.js +121 -0
- package/lib/cjs/spatial/ecrs/ParameterValueList.js.map +1 -0
- package/lib/cjs/spatial/ecrs/PrimeMeridian.d.ts +79 -0
- package/lib/cjs/spatial/ecrs/PrimeMeridian.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/PrimeMeridian.js +109 -0
- package/lib/cjs/spatial/ecrs/PrimeMeridian.js.map +1 -0
- package/lib/cjs/spatial/ecrs/Registry.d.ts +110 -0
- package/lib/cjs/spatial/ecrs/Registry.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/Registry.js +208 -0
- package/lib/cjs/spatial/ecrs/Registry.js.map +1 -0
- package/lib/cjs/spatial/ecrs/Transform.d.ts +78 -0
- package/lib/cjs/spatial/ecrs/Transform.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/Transform.js +397 -0
- package/lib/cjs/spatial/ecrs/Transform.js.map +1 -0
- package/lib/cjs/spatial/ecrs/Unit.d.ts +171 -0
- package/lib/cjs/spatial/ecrs/Unit.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/Unit.js +337 -0
- package/lib/cjs/spatial/ecrs/Unit.js.map +1 -0
- package/lib/cjs/spatial/ecrs/VerticalModel.d.ts +70 -0
- package/lib/cjs/spatial/ecrs/VerticalModel.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/VerticalModel.js +89 -0
- package/lib/cjs/spatial/ecrs/VerticalModel.js.map +1 -0
- package/lib/cjs/spatial/ecrs/WellKnownText.d.ts +154 -0
- package/lib/cjs/spatial/ecrs/WellKnownText.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/WellKnownText.js +495 -0
- package/lib/cjs/spatial/ecrs/WellKnownText.js.map +1 -0
- package/lib/cjs/spatial/ecrs/WellKnownTextNode.d.ts +70 -0
- package/lib/cjs/spatial/ecrs/WellKnownTextNode.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/WellKnownTextNode.js +129 -0
- package/lib/cjs/spatial/ecrs/WellKnownTextNode.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.d.ts +102 -0
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.js +163 -0
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts +80 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.js +126 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts +48 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js +74 -0
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.d.ts +73 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.js +130 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.d.ts +121 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.js +180 -0
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.d.ts +74 -0
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.js +113 -0
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.d.ts +97 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.js +174 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.d.ts +124 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.js +209 -0
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.js.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.d.ts +109 -0
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.js +184 -0
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.js.map +1 -0
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.d.ts +91 -0
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.d.ts.map +1 -0
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.js +131 -0
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.js.map +1 -0
- package/lib/cjs/spatial/geom/Bounds.d.ts +34 -0
- package/lib/cjs/spatial/geom/Bounds.d.ts.map +1 -0
- package/lib/cjs/spatial/geom/Bounds.js +157 -0
- package/lib/cjs/spatial/geom/Bounds.js.map +1 -0
- package/lib/cjs/spatial/geom/Coordinate.d.ts +62 -0
- package/lib/cjs/spatial/geom/Coordinate.d.ts.map +1 -0
- package/lib/cjs/spatial/geom/Coordinate.js +187 -0
- package/lib/cjs/spatial/geom/Coordinate.js.map +1 -0
- package/lib/cjs/spatial/geom/Line.d.ts +226 -0
- package/lib/cjs/spatial/geom/Line.d.ts.map +1 -0
- package/lib/cjs/spatial/geom/Line.js +433 -0
- package/lib/cjs/spatial/geom/Line.js.map +1 -0
- package/lib/cjs/spatial/geom/Transform.d.ts +341 -0
- package/lib/cjs/spatial/geom/Transform.d.ts.map +1 -0
- package/lib/cjs/spatial/geom/Transform.js +749 -0
- package/lib/cjs/spatial/geom/Transform.js.map +1 -0
- package/lib/cjs/system/buffer/ABuffer.d.ts +52 -0
- package/lib/cjs/system/buffer/ABuffer.d.ts.map +1 -0
- package/lib/cjs/system/buffer/ABuffer.js +91 -0
- package/lib/cjs/system/buffer/ABuffer.js.map +1 -0
- package/lib/cjs/system/buffer/Float32Buffer.d.ts +47 -0
- package/lib/cjs/system/buffer/Float32Buffer.d.ts.map +1 -0
- package/lib/cjs/system/buffer/Float32Buffer.js +61 -0
- package/lib/cjs/system/buffer/Float32Buffer.js.map +1 -0
- package/lib/cjs/system/buffer/LittleEndian.d.ts +150 -0
- package/lib/cjs/system/buffer/LittleEndian.d.ts.map +1 -0
- package/lib/cjs/system/buffer/LittleEndian.js +304 -0
- package/lib/cjs/system/buffer/LittleEndian.js.map +1 -0
- package/lib/cjs/system/buffer/Uint16Buffer.d.ts +50 -0
- package/lib/cjs/system/buffer/Uint16Buffer.d.ts.map +1 -0
- package/lib/cjs/system/buffer/Uint16Buffer.js +66 -0
- package/lib/cjs/system/buffer/Uint16Buffer.js.map +1 -0
- package/lib/cjs/system/buffer/Uint8Buffer.d.ts +50 -0
- package/lib/cjs/system/buffer/Uint8Buffer.d.ts.map +1 -0
- package/lib/cjs/system/buffer/Uint8Buffer.js +66 -0
- package/lib/cjs/system/buffer/Uint8Buffer.js.map +1 -0
- package/lib/cjs/system/collection/AList.d.ts +31 -0
- package/lib/cjs/system/collection/AList.d.ts.map +1 -0
- package/lib/cjs/system/collection/AList.js +71 -0
- package/lib/cjs/system/collection/AList.js.map +1 -0
- package/lib/cjs/system/collection/IntMap.d.ts +19 -0
- package/lib/cjs/system/collection/IntMap.d.ts.map +1 -0
- package/lib/cjs/system/collection/IntMap.js +36 -0
- package/lib/cjs/system/collection/IntMap.js.map +1 -0
- package/lib/cjs/system/collection/StringMap.d.ts +27 -0
- package/lib/cjs/system/collection/StringMap.d.ts.map +1 -0
- package/lib/cjs/system/collection/StringMap.js +64 -0
- package/lib/cjs/system/collection/StringMap.js.map +1 -0
- package/lib/cjs/system/io/ABufferInStream.d.ts +30 -0
- package/lib/cjs/system/io/ABufferInStream.d.ts.map +1 -0
- package/lib/cjs/system/io/ABufferInStream.js +47 -0
- package/lib/cjs/system/io/ABufferInStream.js.map +1 -0
- package/lib/cjs/system/io/InStream.d.ts +24 -0
- package/lib/cjs/system/io/InStream.d.ts.map +1 -0
- package/lib/cjs/system/io/InStream.js +35 -0
- package/lib/cjs/system/io/InStream.js.map +1 -0
- package/lib/cjs/system/io/OutStream.d.ts +24 -0
- package/lib/cjs/system/io/OutStream.d.ts.map +1 -0
- package/lib/cjs/system/io/OutStream.js +34 -0
- package/lib/cjs/system/io/OutStream.js.map +1 -0
- package/lib/cjs/system/runtime/ALong.d.ts +330 -0
- package/lib/cjs/system/runtime/ALong.d.ts.map +1 -0
- package/lib/cjs/system/runtime/ALong.js +688 -0
- package/lib/cjs/system/runtime/ALong.js.map +1 -0
- package/lib/cjs/system/runtime/ASystem.d.ts +15 -0
- package/lib/cjs/system/runtime/ASystem.d.ts.map +1 -0
- package/lib/cjs/system/runtime/ASystem.js +32 -0
- package/lib/cjs/system/runtime/ASystem.js.map +1 -0
- package/lib/cjs/system/runtime/Downloader.d.ts +18 -0
- package/lib/cjs/system/runtime/Downloader.d.ts.map +1 -0
- package/lib/cjs/system/runtime/Downloader.js +39 -0
- package/lib/cjs/system/runtime/Downloader.js.map +1 -0
- package/lib/cjs/system/runtime/DownloaderNode.d.ts +19 -0
- package/lib/cjs/system/runtime/DownloaderNode.d.ts.map +1 -0
- package/lib/cjs/system/runtime/DownloaderNode.js +130 -0
- package/lib/cjs/system/runtime/DownloaderNode.js.map +1 -0
- package/lib/cjs/system/runtime/DownloaderXhr.d.ts +19 -0
- package/lib/cjs/system/runtime/DownloaderXhr.d.ts.map +1 -0
- package/lib/cjs/system/runtime/DownloaderXhr.js +132 -0
- package/lib/cjs/system/runtime/DownloaderXhr.js.map +1 -0
- package/lib/cjs/system/runtime/Message.d.ts +17 -0
- package/lib/cjs/system/runtime/Message.d.ts.map +1 -0
- package/lib/cjs/system/runtime/Message.js +40 -0
- package/lib/cjs/system/runtime/Message.js.map +1 -0
- package/lib/cjs/system/runtime/Numbers.d.ts +35 -0
- package/lib/cjs/system/runtime/Numbers.d.ts.map +1 -0
- package/lib/cjs/system/runtime/Numbers.js +88 -0
- package/lib/cjs/system/runtime/Numbers.js.map +1 -0
- package/lib/cjs/system/runtime/Strings.d.ts +50 -0
- package/lib/cjs/system/runtime/Strings.d.ts.map +1 -0
- package/lib/cjs/system/runtime/Strings.js +189 -0
- package/lib/cjs/system/runtime/Strings.js.map +1 -0
- package/lib/cjs/system/runtime/iComparator.d.ts +13 -0
- package/lib/cjs/system/runtime/iComparator.d.ts.map +1 -0
- package/lib/cjs/system/runtime/iComparator.js +10 -0
- package/lib/cjs/system/runtime/iComparator.js.map +1 -0
- package/lib/cjs/system/storage/CacheList.d.ts +40 -0
- package/lib/cjs/system/storage/CacheList.d.ts.map +1 -0
- package/lib/cjs/system/storage/CacheList.js +81 -0
- package/lib/cjs/system/storage/CacheList.js.map +1 -0
- package/lib/cjs/system/storage/CachedItem.d.ts +22 -0
- package/lib/cjs/system/storage/CachedItem.d.ts.map +1 -0
- package/lib/cjs/system/storage/CachedItem.js +26 -0
- package/lib/cjs/system/storage/CachedItem.js.map +1 -0
- package/lib/cjs/system/storage/ContentLoader.d.ts +65 -0
- package/lib/cjs/system/storage/ContentLoader.d.ts.map +1 -0
- package/lib/cjs/system/storage/ContentLoader.js +96 -0
- package/lib/cjs/system/storage/ContentLoader.js.map +1 -0
- package/lib/cjs/system/storage/FileContent.d.ts +20 -0
- package/lib/cjs/system/storage/FileContent.d.ts.map +1 -0
- package/lib/cjs/system/storage/FileContent.js +25 -0
- package/lib/cjs/system/storage/FileContent.js.map +1 -0
- package/lib/cjs/system/storage/FileRange.d.ts +21 -0
- package/lib/cjs/system/storage/FileRange.d.ts.map +1 -0
- package/lib/cjs/system/storage/FileRange.js +25 -0
- package/lib/cjs/system/storage/FileRange.js.map +1 -0
- package/lib/cjs/system/storage/FileStorage.d.ts +45 -0
- package/lib/cjs/system/storage/FileStorage.d.ts.map +1 -0
- package/lib/cjs/system/storage/FileStorage.js +63 -0
- package/lib/cjs/system/storage/FileStorage.js.map +1 -0
- package/lib/cjs/system/storage/NodeFS.d.ts +42 -0
- package/lib/cjs/system/storage/NodeFS.d.ts.map +1 -0
- package/lib/cjs/system/storage/NodeFS.js +80 -0
- package/lib/cjs/system/storage/NodeFS.js.map +1 -0
- package/lib/cjs/system/storage/PageCachedFile.d.ts +55 -0
- package/lib/cjs/system/storage/PageCachedFile.d.ts.map +1 -0
- package/lib/cjs/system/storage/PageCachedFile.js +166 -0
- package/lib/cjs/system/storage/PageCachedFile.js.map +1 -0
- package/lib/cjs/system/storage/UrlFS.d.ts +54 -0
- package/lib/cjs/system/storage/UrlFS.d.ts.map +1 -0
- package/lib/cjs/system/storage/UrlFS.js +115 -0
- package/lib/cjs/system/storage/UrlFS.js.map +1 -0
- package/lib/esm/core-orbitgt.d.ts +27 -0
- package/lib/esm/core-orbitgt.d.ts.map +1 -0
- package/lib/esm/core-orbitgt.js +32 -0
- package/lib/esm/core-orbitgt.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/AttributeMask.d.ts +31 -0
- package/lib/esm/pointcloud/format/opc/AttributeMask.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/AttributeMask.js +44 -0
- package/lib/esm/pointcloud/format/opc/AttributeMask.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/AttributeReader.d.ts +64 -0
- package/lib/esm/pointcloud/format/opc/AttributeReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/AttributeReader.js +21 -0
- package/lib/esm/pointcloud/format/opc/AttributeReader.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/BlockRecord.d.ts +55 -0
- package/lib/esm/pointcloud/format/opc/BlockRecord.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/BlockRecord.js +81 -0
- package/lib/esm/pointcloud/format/opc/BlockRecord.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/ContainerFile.d.ts +86 -0
- package/lib/esm/pointcloud/format/opc/ContainerFile.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/ContainerFile.js +196 -0
- package/lib/esm/pointcloud/format/opc/ContainerFile.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/ContainerFilePart.d.ts +56 -0
- package/lib/esm/pointcloud/format/opc/ContainerFilePart.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/ContainerFilePart.js +72 -0
- package/lib/esm/pointcloud/format/opc/ContainerFilePart.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/DirectoryReader.d.ts +76 -0
- package/lib/esm/pointcloud/format/opc/DirectoryReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/DirectoryReader.js +166 -0
- package/lib/esm/pointcloud/format/opc/DirectoryReader.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/DirectoryRecord.d.ts +60 -0
- package/lib/esm/pointcloud/format/opc/DirectoryRecord.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/DirectoryRecord.js +86 -0
- package/lib/esm/pointcloud/format/opc/DirectoryRecord.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.d.ts +107 -0
- package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.js +194 -0
- package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/FileAccess.d.ts +40 -0
- package/lib/esm/pointcloud/format/opc/FileAccess.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/FileAccess.js +45 -0
- package/lib/esm/pointcloud/format/opc/FileAccess.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/FileReader.d.ts +119 -0
- package/lib/esm/pointcloud/format/opc/FileReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/FileReader.js +245 -0
- package/lib/esm/pointcloud/format/opc/FileReader.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/FileRecord.d.ts +90 -0
- package/lib/esm/pointcloud/format/opc/FileRecord.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/FileRecord.js +122 -0
- package/lib/esm/pointcloud/format/opc/FileRecord.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/GeometryReader.d.ts +80 -0
- package/lib/esm/pointcloud/format/opc/GeometryReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/GeometryReader.js +160 -0
- package/lib/esm/pointcloud/format/opc/GeometryReader.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/GeometryRecord.d.ts +54 -0
- package/lib/esm/pointcloud/format/opc/GeometryRecord.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/GeometryRecord.js +104 -0
- package/lib/esm/pointcloud/format/opc/GeometryRecord.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/OPCReader.d.ts +158 -0
- package/lib/esm/pointcloud/format/opc/OPCReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/OPCReader.js +316 -0
- package/lib/esm/pointcloud/format/opc/OPCReader.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/PointReader.d.ts +73 -0
- package/lib/esm/pointcloud/format/opc/PointReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/PointReader.js +149 -0
- package/lib/esm/pointcloud/format/opc/PointReader.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/TileReadBuffer.d.ts +64 -0
- package/lib/esm/pointcloud/format/opc/TileReadBuffer.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/TileReadBuffer.js +89 -0
- package/lib/esm/pointcloud/format/opc/TileReadBuffer.js.map +1 -0
- package/lib/esm/pointcloud/format/opc/TileRecord.d.ts +89 -0
- package/lib/esm/pointcloud/format/opc/TileRecord.d.ts.map +1 -0
- package/lib/esm/pointcloud/format/opc/TileRecord.js +158 -0
- package/lib/esm/pointcloud/format/opc/TileRecord.js.map +1 -0
- package/lib/esm/pointcloud/model/AttributeTypes.d.ts +38 -0
- package/lib/esm/pointcloud/model/AttributeTypes.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/AttributeTypes.js +61 -0
- package/lib/esm/pointcloud/model/AttributeTypes.js.map +1 -0
- package/lib/esm/pointcloud/model/AttributeValue.d.ts +248 -0
- package/lib/esm/pointcloud/model/AttributeValue.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/AttributeValue.js +505 -0
- package/lib/esm/pointcloud/model/AttributeValue.js.map +1 -0
- package/lib/esm/pointcloud/model/BlockIndex.d.ts +50 -0
- package/lib/esm/pointcloud/model/BlockIndex.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/BlockIndex.js +45 -0
- package/lib/esm/pointcloud/model/BlockIndex.js.map +1 -0
- package/lib/esm/pointcloud/model/CloudPoint.d.ts +211 -0
- package/lib/esm/pointcloud/model/CloudPoint.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/CloudPoint.js +315 -0
- package/lib/esm/pointcloud/model/CloudPoint.js.map +1 -0
- package/lib/esm/pointcloud/model/Grid.d.ts +92 -0
- package/lib/esm/pointcloud/model/Grid.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/Grid.js +126 -0
- package/lib/esm/pointcloud/model/Grid.js.map +1 -0
- package/lib/esm/pointcloud/model/GridIndex.d.ts +67 -0
- package/lib/esm/pointcloud/model/GridIndex.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/GridIndex.js +90 -0
- package/lib/esm/pointcloud/model/GridIndex.js.map +1 -0
- package/lib/esm/pointcloud/model/PointAttribute.d.ts +209 -0
- package/lib/esm/pointcloud/model/PointAttribute.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/PointAttribute.js +371 -0
- package/lib/esm/pointcloud/model/PointAttribute.js.map +1 -0
- package/lib/esm/pointcloud/model/PointCloudReader.d.ts +157 -0
- package/lib/esm/pointcloud/model/PointCloudReader.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/PointCloudReader.js +186 -0
- package/lib/esm/pointcloud/model/PointCloudReader.js.map +1 -0
- package/lib/esm/pointcloud/model/PointData.d.ts +18 -0
- package/lib/esm/pointcloud/model/PointData.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/PointData.js +21 -0
- package/lib/esm/pointcloud/model/PointData.js.map +1 -0
- package/lib/esm/pointcloud/model/PointDataRaw.d.ts +35 -0
- package/lib/esm/pointcloud/model/PointDataRaw.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/PointDataRaw.js +66 -0
- package/lib/esm/pointcloud/model/PointDataRaw.js.map +1 -0
- package/lib/esm/pointcloud/model/ReadRequest.d.ts +176 -0
- package/lib/esm/pointcloud/model/ReadRequest.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/ReadRequest.js +236 -0
- package/lib/esm/pointcloud/model/ReadRequest.js.map +1 -0
- package/lib/esm/pointcloud/model/StandardAttributes.d.ts +41 -0
- package/lib/esm/pointcloud/model/StandardAttributes.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/StandardAttributes.js +44 -0
- package/lib/esm/pointcloud/model/StandardAttributes.js.map +1 -0
- package/lib/esm/pointcloud/model/TileIndex.d.ts +48 -0
- package/lib/esm/pointcloud/model/TileIndex.d.ts.map +1 -0
- package/lib/esm/pointcloud/model/TileIndex.js +44 -0
- package/lib/esm/pointcloud/model/TileIndex.js.map +1 -0
- package/lib/esm/pointcloud/render/AViewRequest.d.ts +39 -0
- package/lib/esm/pointcloud/render/AViewRequest.d.ts.map +1 -0
- package/lib/esm/pointcloud/render/AViewRequest.js +21 -0
- package/lib/esm/pointcloud/render/AViewRequest.js.map +1 -0
- package/lib/esm/pointcloud/render/Block.d.ts +68 -0
- package/lib/esm/pointcloud/render/Block.d.ts.map +1 -0
- package/lib/esm/pointcloud/render/Block.js +116 -0
- package/lib/esm/pointcloud/render/Block.js.map +1 -0
- package/lib/esm/pointcloud/render/DataManager.d.ts +137 -0
- package/lib/esm/pointcloud/render/DataManager.d.ts.map +1 -0
- package/lib/esm/pointcloud/render/DataManager.js +339 -0
- package/lib/esm/pointcloud/render/DataManager.js.map +1 -0
- package/lib/esm/pointcloud/render/FrameData.d.ts +31 -0
- package/lib/esm/pointcloud/render/FrameData.d.ts.map +1 -0
- package/lib/esm/pointcloud/render/FrameData.js +36 -0
- package/lib/esm/pointcloud/render/FrameData.js.map +1 -0
- package/lib/esm/pointcloud/render/Level.d.ts +91 -0
- package/lib/esm/pointcloud/render/Level.d.ts.map +1 -0
- package/lib/esm/pointcloud/render/Level.js +116 -0
- package/lib/esm/pointcloud/render/Level.js.map +1 -0
- package/lib/esm/pointcloud/render/TileLoadSorter.d.ts +61 -0
- package/lib/esm/pointcloud/render/TileLoadSorter.d.ts.map +1 -0
- package/lib/esm/pointcloud/render/TileLoadSorter.js +96 -0
- package/lib/esm/pointcloud/render/TileLoadSorter.js.map +1 -0
- package/lib/esm/pointcloud/render/ViewTree.d.ts +114 -0
- package/lib/esm/pointcloud/render/ViewTree.d.ts.map +1 -0
- package/lib/esm/pointcloud/render/ViewTree.js +360 -0
- package/lib/esm/pointcloud/render/ViewTree.js.map +1 -0
- package/lib/esm/spatial/crs/CRSEngine.d.ts +56 -0
- package/lib/esm/spatial/crs/CRSEngine.d.ts.map +1 -0
- package/lib/esm/spatial/crs/CRSEngine.js +90 -0
- package/lib/esm/spatial/crs/CRSEngine.js.map +1 -0
- package/lib/esm/spatial/crs/CRSManager.d.ts +50 -0
- package/lib/esm/spatial/crs/CRSManager.d.ts.map +1 -0
- package/lib/esm/spatial/crs/CRSManager.js +106 -0
- package/lib/esm/spatial/crs/CRSManager.js.map +1 -0
- package/lib/esm/spatial/ecrs/Axis.d.ts +78 -0
- package/lib/esm/spatial/ecrs/Axis.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/Axis.js +90 -0
- package/lib/esm/spatial/ecrs/Axis.js.map +1 -0
- package/lib/esm/spatial/ecrs/CRS.d.ts +448 -0
- package/lib/esm/spatial/ecrs/CRS.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/CRS.js +927 -0
- package/lib/esm/spatial/ecrs/CRS.js.map +1 -0
- package/lib/esm/spatial/ecrs/CoordinateSystem.d.ts +143 -0
- package/lib/esm/spatial/ecrs/CoordinateSystem.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/CoordinateSystem.js +323 -0
- package/lib/esm/spatial/ecrs/CoordinateSystem.js.map +1 -0
- package/lib/esm/spatial/ecrs/DataFileUnit.d.ts +11 -0
- package/lib/esm/spatial/ecrs/DataFileUnit.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/DataFileUnit.js +101 -0
- package/lib/esm/spatial/ecrs/DataFileUnit.js.map +1 -0
- package/lib/esm/spatial/ecrs/Datum.d.ts +112 -0
- package/lib/esm/spatial/ecrs/Datum.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/Datum.js +163 -0
- package/lib/esm/spatial/ecrs/Datum.js.map +1 -0
- package/lib/esm/spatial/ecrs/Ellipsoid.d.ts +189 -0
- package/lib/esm/spatial/ecrs/Ellipsoid.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/Ellipsoid.js +333 -0
- package/lib/esm/spatial/ecrs/Ellipsoid.js.map +1 -0
- package/lib/esm/spatial/ecrs/OnlineEngine.d.ts +49 -0
- package/lib/esm/spatial/ecrs/OnlineEngine.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/OnlineEngine.js +99 -0
- package/lib/esm/spatial/ecrs/OnlineEngine.js.map +1 -0
- package/lib/esm/spatial/ecrs/OnlineRegistry.d.ts +38 -0
- package/lib/esm/spatial/ecrs/OnlineRegistry.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/OnlineRegistry.js +73 -0
- package/lib/esm/spatial/ecrs/OnlineRegistry.js.map +1 -0
- package/lib/esm/spatial/ecrs/Operation.d.ts +192 -0
- package/lib/esm/spatial/ecrs/Operation.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/Operation.js +342 -0
- package/lib/esm/spatial/ecrs/Operation.js.map +1 -0
- package/lib/esm/spatial/ecrs/OperationMethod.d.ts +72 -0
- package/lib/esm/spatial/ecrs/OperationMethod.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/OperationMethod.js +72 -0
- package/lib/esm/spatial/ecrs/OperationMethod.js.map +1 -0
- package/lib/esm/spatial/ecrs/ParameterValue.d.ts +50 -0
- package/lib/esm/spatial/ecrs/ParameterValue.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/ParameterValue.js +62 -0
- package/lib/esm/spatial/ecrs/ParameterValue.js.map +1 -0
- package/lib/esm/spatial/ecrs/ParameterValueList.d.ts +73 -0
- package/lib/esm/spatial/ecrs/ParameterValueList.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/ParameterValueList.js +117 -0
- package/lib/esm/spatial/ecrs/ParameterValueList.js.map +1 -0
- package/lib/esm/spatial/ecrs/PrimeMeridian.d.ts +79 -0
- package/lib/esm/spatial/ecrs/PrimeMeridian.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/PrimeMeridian.js +105 -0
- package/lib/esm/spatial/ecrs/PrimeMeridian.js.map +1 -0
- package/lib/esm/spatial/ecrs/Registry.d.ts +110 -0
- package/lib/esm/spatial/ecrs/Registry.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/Registry.js +204 -0
- package/lib/esm/spatial/ecrs/Registry.js.map +1 -0
- package/lib/esm/spatial/ecrs/Transform.d.ts +78 -0
- package/lib/esm/spatial/ecrs/Transform.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/Transform.js +393 -0
- package/lib/esm/spatial/ecrs/Transform.js.map +1 -0
- package/lib/esm/spatial/ecrs/Unit.d.ts +171 -0
- package/lib/esm/spatial/ecrs/Unit.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/Unit.js +333 -0
- package/lib/esm/spatial/ecrs/Unit.js.map +1 -0
- package/lib/esm/spatial/ecrs/VerticalModel.d.ts +70 -0
- package/lib/esm/spatial/ecrs/VerticalModel.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/VerticalModel.js +85 -0
- package/lib/esm/spatial/ecrs/VerticalModel.js.map +1 -0
- package/lib/esm/spatial/ecrs/WellKnownText.d.ts +154 -0
- package/lib/esm/spatial/ecrs/WellKnownText.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/WellKnownText.js +491 -0
- package/lib/esm/spatial/ecrs/WellKnownText.js.map +1 -0
- package/lib/esm/spatial/ecrs/WellKnownTextNode.d.ts +70 -0
- package/lib/esm/spatial/ecrs/WellKnownTextNode.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/WellKnownTextNode.js +125 -0
- package/lib/esm/spatial/ecrs/WellKnownTextNode.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.d.ts +102 -0
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.js +159 -0
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts +80 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.js +122 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts +48 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js +70 -0
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.d.ts +73 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.js +126 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.d.ts +121 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.js +176 -0
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.d.ts +74 -0
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.js +109 -0
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.d.ts +97 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.js +170 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.d.ts +124 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.js +205 -0
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.js.map +1 -0
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.d.ts +109 -0
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.js +180 -0
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.js.map +1 -0
- package/lib/esm/spatial/ecrs/transformation/PositionVector.d.ts +91 -0
- package/lib/esm/spatial/ecrs/transformation/PositionVector.d.ts.map +1 -0
- package/lib/esm/spatial/ecrs/transformation/PositionVector.js +127 -0
- package/lib/esm/spatial/ecrs/transformation/PositionVector.js.map +1 -0
- package/lib/esm/spatial/geom/Bounds.d.ts +34 -0
- package/lib/esm/spatial/geom/Bounds.d.ts.map +1 -0
- package/lib/esm/spatial/geom/Bounds.js +153 -0
- package/lib/esm/spatial/geom/Bounds.js.map +1 -0
- package/lib/esm/spatial/geom/Coordinate.d.ts +62 -0
- package/lib/esm/spatial/geom/Coordinate.d.ts.map +1 -0
- package/lib/esm/spatial/geom/Coordinate.js +183 -0
- package/lib/esm/spatial/geom/Coordinate.js.map +1 -0
- package/lib/esm/spatial/geom/Line.d.ts +226 -0
- package/lib/esm/spatial/geom/Line.d.ts.map +1 -0
- package/lib/esm/spatial/geom/Line.js +429 -0
- package/lib/esm/spatial/geom/Line.js.map +1 -0
- package/lib/esm/spatial/geom/Transform.d.ts +341 -0
- package/lib/esm/spatial/geom/Transform.d.ts.map +1 -0
- package/lib/esm/spatial/geom/Transform.js +745 -0
- package/lib/esm/spatial/geom/Transform.js.map +1 -0
- package/lib/esm/system/buffer/ABuffer.d.ts +52 -0
- package/lib/esm/system/buffer/ABuffer.d.ts.map +1 -0
- package/lib/esm/system/buffer/ABuffer.js +87 -0
- package/lib/esm/system/buffer/ABuffer.js.map +1 -0
- package/lib/esm/system/buffer/Float32Buffer.d.ts +47 -0
- package/lib/esm/system/buffer/Float32Buffer.d.ts.map +1 -0
- package/lib/esm/system/buffer/Float32Buffer.js +57 -0
- package/lib/esm/system/buffer/Float32Buffer.js.map +1 -0
- package/lib/esm/system/buffer/LittleEndian.d.ts +150 -0
- package/lib/esm/system/buffer/LittleEndian.d.ts.map +1 -0
- package/lib/esm/system/buffer/LittleEndian.js +300 -0
- package/lib/esm/system/buffer/LittleEndian.js.map +1 -0
- package/lib/esm/system/buffer/Uint16Buffer.d.ts +50 -0
- package/lib/esm/system/buffer/Uint16Buffer.d.ts.map +1 -0
- package/lib/esm/system/buffer/Uint16Buffer.js +62 -0
- package/lib/esm/system/buffer/Uint16Buffer.js.map +1 -0
- package/lib/esm/system/buffer/Uint8Buffer.d.ts +50 -0
- package/lib/esm/system/buffer/Uint8Buffer.d.ts.map +1 -0
- package/lib/esm/system/buffer/Uint8Buffer.js +62 -0
- package/lib/esm/system/buffer/Uint8Buffer.js.map +1 -0
- package/lib/esm/system/collection/AList.d.ts +31 -0
- package/lib/esm/system/collection/AList.d.ts.map +1 -0
- package/lib/esm/system/collection/AList.js +67 -0
- package/lib/esm/system/collection/AList.js.map +1 -0
- package/lib/esm/system/collection/IntMap.d.ts +19 -0
- package/lib/esm/system/collection/IntMap.d.ts.map +1 -0
- package/lib/esm/system/collection/IntMap.js +32 -0
- package/lib/esm/system/collection/IntMap.js.map +1 -0
- package/lib/esm/system/collection/StringMap.d.ts +27 -0
- package/lib/esm/system/collection/StringMap.d.ts.map +1 -0
- package/lib/esm/system/collection/StringMap.js +60 -0
- package/lib/esm/system/collection/StringMap.js.map +1 -0
- package/lib/esm/system/io/ABufferInStream.d.ts +30 -0
- package/lib/esm/system/io/ABufferInStream.d.ts.map +1 -0
- package/lib/esm/system/io/ABufferInStream.js +43 -0
- package/lib/esm/system/io/ABufferInStream.js.map +1 -0
- package/lib/esm/system/io/InStream.d.ts +24 -0
- package/lib/esm/system/io/InStream.d.ts.map +1 -0
- package/lib/esm/system/io/InStream.js +31 -0
- package/lib/esm/system/io/InStream.js.map +1 -0
- package/lib/esm/system/io/OutStream.d.ts +24 -0
- package/lib/esm/system/io/OutStream.d.ts.map +1 -0
- package/lib/esm/system/io/OutStream.js +30 -0
- package/lib/esm/system/io/OutStream.js.map +1 -0
- package/lib/esm/system/runtime/ALong.d.ts +330 -0
- package/lib/esm/system/runtime/ALong.d.ts.map +1 -0
- package/lib/esm/system/runtime/ALong.js +684 -0
- package/lib/esm/system/runtime/ALong.js.map +1 -0
- package/lib/esm/system/runtime/ASystem.d.ts +15 -0
- package/lib/esm/system/runtime/ASystem.d.ts.map +1 -0
- package/lib/esm/system/runtime/ASystem.js +28 -0
- package/lib/esm/system/runtime/ASystem.js.map +1 -0
- package/lib/esm/system/runtime/Downloader.d.ts +18 -0
- package/lib/esm/system/runtime/Downloader.d.ts.map +1 -0
- package/lib/esm/system/runtime/Downloader.js +35 -0
- package/lib/esm/system/runtime/Downloader.js.map +1 -0
- package/lib/esm/system/runtime/DownloaderNode.d.ts +19 -0
- package/lib/esm/system/runtime/DownloaderNode.d.ts.map +1 -0
- package/lib/esm/system/runtime/DownloaderNode.js +126 -0
- package/lib/esm/system/runtime/DownloaderNode.js.map +1 -0
- package/lib/esm/system/runtime/DownloaderXhr.d.ts +19 -0
- package/lib/esm/system/runtime/DownloaderXhr.d.ts.map +1 -0
- package/lib/esm/system/runtime/DownloaderXhr.js +128 -0
- package/lib/esm/system/runtime/DownloaderXhr.js.map +1 -0
- package/lib/esm/system/runtime/Message.d.ts +17 -0
- package/lib/esm/system/runtime/Message.d.ts.map +1 -0
- package/lib/esm/system/runtime/Message.js +36 -0
- package/lib/esm/system/runtime/Message.js.map +1 -0
- package/lib/esm/system/runtime/Numbers.d.ts +35 -0
- package/lib/esm/system/runtime/Numbers.d.ts.map +1 -0
- package/lib/esm/system/runtime/Numbers.js +84 -0
- package/lib/esm/system/runtime/Numbers.js.map +1 -0
- package/lib/esm/system/runtime/Strings.d.ts +50 -0
- package/lib/esm/system/runtime/Strings.d.ts.map +1 -0
- package/lib/esm/system/runtime/Strings.js +185 -0
- package/lib/esm/system/runtime/Strings.js.map +1 -0
- package/lib/esm/system/runtime/iComparator.d.ts +13 -0
- package/lib/esm/system/runtime/iComparator.d.ts.map +1 -0
- package/lib/esm/system/runtime/iComparator.js +9 -0
- package/lib/esm/system/runtime/iComparator.js.map +1 -0
- package/lib/esm/system/storage/CacheList.d.ts +40 -0
- package/lib/esm/system/storage/CacheList.d.ts.map +1 -0
- package/lib/esm/system/storage/CacheList.js +77 -0
- package/lib/esm/system/storage/CacheList.js.map +1 -0
- package/lib/esm/system/storage/CachedItem.d.ts +22 -0
- package/lib/esm/system/storage/CachedItem.d.ts.map +1 -0
- package/lib/esm/system/storage/CachedItem.js +22 -0
- package/lib/esm/system/storage/CachedItem.js.map +1 -0
- package/lib/esm/system/storage/ContentLoader.d.ts +65 -0
- package/lib/esm/system/storage/ContentLoader.d.ts.map +1 -0
- package/lib/esm/system/storage/ContentLoader.js +92 -0
- package/lib/esm/system/storage/ContentLoader.js.map +1 -0
- package/lib/esm/system/storage/FileContent.d.ts +20 -0
- package/lib/esm/system/storage/FileContent.d.ts.map +1 -0
- package/lib/esm/system/storage/FileContent.js +21 -0
- package/lib/esm/system/storage/FileContent.js.map +1 -0
- package/lib/esm/system/storage/FileRange.d.ts +21 -0
- package/lib/esm/system/storage/FileRange.d.ts.map +1 -0
- package/lib/esm/system/storage/FileRange.js +21 -0
- package/lib/esm/system/storage/FileRange.js.map +1 -0
- package/lib/esm/system/storage/FileStorage.d.ts +45 -0
- package/lib/esm/system/storage/FileStorage.d.ts.map +1 -0
- package/lib/esm/system/storage/FileStorage.js +59 -0
- package/lib/esm/system/storage/FileStorage.js.map +1 -0
- package/lib/esm/system/storage/NodeFS.d.ts +42 -0
- package/lib/esm/system/storage/NodeFS.d.ts.map +1 -0
- package/lib/esm/system/storage/NodeFS.js +76 -0
- package/lib/esm/system/storage/NodeFS.js.map +1 -0
- package/lib/esm/system/storage/PageCachedFile.d.ts +55 -0
- package/lib/esm/system/storage/PageCachedFile.d.ts.map +1 -0
- package/lib/esm/system/storage/PageCachedFile.js +162 -0
- package/lib/esm/system/storage/PageCachedFile.js.map +1 -0
- package/lib/esm/system/storage/UrlFS.d.ts +54 -0
- package/lib/esm/system/storage/UrlFS.d.ts.map +1 -0
- package/lib/esm/system/storage/UrlFS.js +111 -0
- package/lib/esm/system/storage/UrlFS.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module OrbitGT
|
|
7
|
+
*/
|
|
8
|
+
import { ABuffer } from "../buffer/ABuffer";
|
|
9
|
+
import { AList } from "../collection/AList";
|
|
10
|
+
import { StringMap } from "../collection/StringMap";
|
|
11
|
+
import { ALong } from "../runtime/ALong";
|
|
12
|
+
import { ASystem } from "../runtime/ASystem";
|
|
13
|
+
import { Message } from "../runtime/Message";
|
|
14
|
+
import { CacheList } from "./CacheList";
|
|
15
|
+
import { FileContent } from "./FileContent";
|
|
16
|
+
import { FileRange } from "./FileRange";
|
|
17
|
+
import { FileStorage } from "./FileStorage";
|
|
18
|
+
/**
|
|
19
|
+
* Class PageCachedFile defines a paged content cache of a single file.
|
|
20
|
+
*/
|
|
21
|
+
/** @internal */
|
|
22
|
+
export class PageCachedFile extends FileStorage {
|
|
23
|
+
/**
|
|
24
|
+
* Create a new cached file.
|
|
25
|
+
* @param fileStorage the underlying file storage.
|
|
26
|
+
* @param fileName the name of the file to cache.
|
|
27
|
+
* @param fileSize the length of the file to cache.
|
|
28
|
+
* @param pageSize the byte size of a cache page (common sizes are 32768, 65536, 131072 or 262144).
|
|
29
|
+
* @param maxPageCount the maximum number of pages to cache (the oldest pages are purged when the cache is full).
|
|
30
|
+
*/
|
|
31
|
+
constructor(fileStorage, fileName, fileSize, pageSize, maxPageCount) {
|
|
32
|
+
super();
|
|
33
|
+
this._fileStorage = fileStorage;
|
|
34
|
+
this._fileName = fileName;
|
|
35
|
+
this._fileSize = fileSize;
|
|
36
|
+
this._pageSize = pageSize;
|
|
37
|
+
this._pageCount = fileSize.subInt(1).divInt(this._pageSize).addInt(1).toInt();
|
|
38
|
+
this._contentCache = new CacheList(maxPageCount);
|
|
39
|
+
this._requestCount = 0;
|
|
40
|
+
this._requestSize = 0;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* FileStorage method.
|
|
44
|
+
*/
|
|
45
|
+
close() {
|
|
46
|
+
this._fileStorage.close(); // deep close
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* FileStorage method.
|
|
50
|
+
*/
|
|
51
|
+
async getFileLength(fileName) {
|
|
52
|
+
return this._fileSize;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* FileStorage method.
|
|
56
|
+
*/
|
|
57
|
+
async readFileParts(fileName, ranges) {
|
|
58
|
+
/* Define the set of pages we need to fulfill the request */
|
|
59
|
+
const pageMap = new StringMap();
|
|
60
|
+
/* Create a list of missing pages */
|
|
61
|
+
const missingPages = new AList();
|
|
62
|
+
const missingKeys = new AList();
|
|
63
|
+
for (let r = 0; r < ranges.size(); r++) {
|
|
64
|
+
/* Scan the needed pages of the next range */
|
|
65
|
+
const range = ranges.get(r);
|
|
66
|
+
const page0 = range.offset.divInt(this._pageSize).toInt();
|
|
67
|
+
const page1 = range.offset.addInt(range.size - 1).divInt(this._pageSize).toInt() + 1; // exclusive
|
|
68
|
+
for (let i = page0; i < page1; i++) {
|
|
69
|
+
/* Try to get the page from the cache */
|
|
70
|
+
const pageKey = (`${i}`);
|
|
71
|
+
const page = this._contentCache.findEntry(pageKey);
|
|
72
|
+
if (page == null) {
|
|
73
|
+
/* Do not request the same page twice */
|
|
74
|
+
if (missingKeys.contains(pageKey) == false) {
|
|
75
|
+
/* Add a request to read the missing page */
|
|
76
|
+
const pageOffset0 = ALong.fromInt(this._pageSize).mulInt(i);
|
|
77
|
+
const pageOffset1 = ALong.min(pageOffset0.addInt(this._pageSize), this._fileSize);
|
|
78
|
+
const pageSize = pageOffset1.sub(pageOffset0).toInt();
|
|
79
|
+
missingPages.add(new FileRange(pageOffset0, pageSize));
|
|
80
|
+
missingKeys.add(pageKey);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
/* Keep */
|
|
85
|
+
pageMap.set(pageKey, page);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/* Do we have to load missing pages? */
|
|
90
|
+
if (missingPages.size() > 0) {
|
|
91
|
+
/* Load all missing pages with one call to the storage */
|
|
92
|
+
Message.log(`Requesting ${missingPages.size()} missing cache pages for '${this._fileName}'`);
|
|
93
|
+
const loadedPages = await this._fileStorage.readFileParts(fileName, missingPages);
|
|
94
|
+
/* Add to the cache for reuse */
|
|
95
|
+
for (let i = 0; i < loadedPages.size(); i++) {
|
|
96
|
+
const pageKey = missingKeys.get(i);
|
|
97
|
+
const pageContent = loadedPages.get(i);
|
|
98
|
+
this._contentCache.addEntry(pageKey, pageContent.content);
|
|
99
|
+
pageMap.set(pageKey, pageContent.content);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/* Create the responses from the cached content */
|
|
103
|
+
const responseList = new AList();
|
|
104
|
+
for (let r = 0; r < ranges.size(); r++) {
|
|
105
|
+
/* Create the response for the next range */
|
|
106
|
+
const range = ranges.get(r);
|
|
107
|
+
const rangeExtent = range.offset.addInt(range.size);
|
|
108
|
+
const response = new ABuffer(range.size);
|
|
109
|
+
let responseOffset = 0;
|
|
110
|
+
this._requestCount++;
|
|
111
|
+
this._requestSize += range.size;
|
|
112
|
+
/* Scan the needed pages */
|
|
113
|
+
const page0 = range.offset.divInt(this._pageSize).toInt();
|
|
114
|
+
const page1 = range.offset.addInt(range.size - 1).divInt(this._pageSize).toInt() + 1; // exclusive
|
|
115
|
+
for (let i = page0; i < page1; i++) {
|
|
116
|
+
/* Get the next page from the cache */
|
|
117
|
+
const pageKey = (`${i}`);
|
|
118
|
+
const page = pageMap.get(pageKey);
|
|
119
|
+
ASystem.assertNot(page == null, `Missing cache page ${pageKey}`);
|
|
120
|
+
/* Get the extent of the page */
|
|
121
|
+
const pageOffset0 = ALong.fromInt(this._pageSize).mulInt(i);
|
|
122
|
+
const pageOffset1 = ALong.min(pageOffset0.addInt(this._pageSize), this._fileSize);
|
|
123
|
+
/* Copy the overlapping part of the page to the response */
|
|
124
|
+
const currentOffset = range.offset.addInt(responseOffset);
|
|
125
|
+
const copyOffset = currentOffset.sub(pageOffset0).toInt();
|
|
126
|
+
const copySize = ALong.min(pageOffset1, rangeExtent).sub(currentOffset).toInt();
|
|
127
|
+
ABuffer.arrayCopy(page, copyOffset, response, responseOffset, copySize);
|
|
128
|
+
responseOffset += copySize;
|
|
129
|
+
}
|
|
130
|
+
/* Add the response to the list */
|
|
131
|
+
ASystem.assertNot(responseOffset != range.size, `Expected ${range.size} response size, not ${responseOffset}`);
|
|
132
|
+
responseList.add(new FileContent(range.offset, response));
|
|
133
|
+
}
|
|
134
|
+
return responseList;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* FileStorage method.
|
|
138
|
+
*/
|
|
139
|
+
async readFilePart(fileName, offset, size) {
|
|
140
|
+
const ranges = new AList();
|
|
141
|
+
ranges.add(new FileRange(offset, size));
|
|
142
|
+
const reponses = await this.readFileParts(fileName, ranges);
|
|
143
|
+
const reponse = reponses.get(0);
|
|
144
|
+
return reponse.content;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* FileStorage method.
|
|
148
|
+
*/
|
|
149
|
+
printStatistics(clear) {
|
|
150
|
+
Message.log(`Page cache of file '${this._fileName}':`);
|
|
151
|
+
Message.log(`Request count is ${this._requestCount}`);
|
|
152
|
+
Message.log(`Request size is ${this._requestSize}`);
|
|
153
|
+
Message.log(`Cache hit count is ${this._contentCache.hitCount}`);
|
|
154
|
+
Message.log(`Cache miss count is ${this._contentCache.missCount}`);
|
|
155
|
+
if (clear)
|
|
156
|
+
this._contentCache.hitCount = 0;
|
|
157
|
+
if (clear)
|
|
158
|
+
this._contentCache.missCount = 0;
|
|
159
|
+
this._fileStorage.printStatistics(clear);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=PageCachedFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageCachedFile.js","sourceRoot":"","sources":["../../../../src/system/storage/PageCachedFile.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 OrbitGT\r\n */\r\n\r\n// package orbitgt.system.storage;\r\n\r\ntype int8 = number;\r\ntype int16 = number;\r\ntype int32 = number;\r\ntype float32 = number;\r\ntype float64 = number;\r\n\r\nimport { ABuffer } from \"../buffer/ABuffer\";\r\nimport { AList } from \"../collection/AList\";\r\nimport { StringMap } from \"../collection/StringMap\";\r\nimport { ALong } from \"../runtime/ALong\";\r\nimport { ASystem } from \"../runtime/ASystem\";\r\nimport { Message } from \"../runtime/Message\";\r\nimport { CacheList } from \"./CacheList\";\r\nimport { FileContent } from \"./FileContent\";\r\nimport { FileRange } from \"./FileRange\";\r\nimport { FileStorage } from \"./FileStorage\";\r\n\r\n/**\r\n * Class PageCachedFile defines a paged content cache of a single file.\r\n */\r\n/** @internal */\r\nexport class PageCachedFile extends FileStorage {\r\n\tprivate _fileStorage: FileStorage;\r\n\tprivate _fileName: string;\r\n\tprivate _fileSize: ALong;\r\n\tprivate _pageSize: int32;\r\n\tprivate _pageCount: int32;\r\n\r\n\tprivate _contentCache: CacheList<ABuffer>;\r\n\tprivate _requestCount: int32;\r\n\tprivate _requestSize: int32;\r\n\r\n\t/**\r\n\t * Create a new cached file.\r\n\t * @param fileStorage the underlying file storage.\r\n\t * @param fileName the name of the file to cache.\r\n\t * @param fileSize the length of the file to cache.\r\n\t * @param pageSize the byte size of a cache page (common sizes are 32768, 65536, 131072 or 262144).\r\n\t * @param maxPageCount the maximum number of pages to cache (the oldest pages are purged when the cache is full).\r\n\t */\r\n\tpublic constructor(fileStorage: FileStorage, fileName: string, fileSize: ALong, pageSize: int32, maxPageCount: int32) {\r\n\t\tsuper();\r\n\t\tthis._fileStorage = fileStorage;\r\n\t\tthis._fileName = fileName;\r\n\t\tthis._fileSize = fileSize;\r\n\t\tthis._pageSize = pageSize;\r\n\t\tthis._pageCount = fileSize.subInt(1).divInt(this._pageSize).addInt(1).toInt();\r\n\t\tthis._contentCache = new CacheList<ABuffer>(maxPageCount);\r\n\t\tthis._requestCount = 0;\r\n\t\tthis._requestSize = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * FileStorage method.\r\n\t */\r\n\tpublic override close(): void {\r\n\t\tthis._fileStorage.close(); // deep close\r\n\t}\r\n\r\n\t/**\r\n\t * FileStorage method.\r\n\t */\r\n\tpublic override async getFileLength(fileName: string): Promise<ALong> {\r\n\t\treturn this._fileSize;\r\n\t}\r\n\r\n\t/**\r\n\t * FileStorage method.\r\n\t */\r\n\tpublic override async readFileParts(fileName: string, ranges: AList<FileRange>): Promise<AList<FileContent>> {\r\n\t\t/* Define the set of pages we need to fulfill the request */\r\n\t\tconst pageMap: StringMap<ABuffer> = new StringMap<ABuffer>();\r\n\t\t/* Create a list of missing pages */\r\n\t\tconst missingPages: AList<FileRange> = new AList<FileRange>();\r\n\t\tconst missingKeys: AList<string> = new AList<string>();\r\n\t\tfor (let r: number = 0; r < ranges.size(); r++) {\r\n\t\t\t/* Scan the needed pages of the next range */\r\n\t\t\tconst range: FileRange = ranges.get(r);\r\n\t\t\tconst page0: int32 = range.offset.divInt(this._pageSize).toInt();\r\n\t\t\tconst page1: int32 = range.offset.addInt(range.size - 1).divInt(this._pageSize).toInt() + 1; // exclusive\r\n\t\t\tfor (let i: number = page0; i < page1; i++) {\r\n\t\t\t\t/* Try to get the page from the cache */\r\n\t\t\t\tconst pageKey: string = (`${i}`);\r\n\t\t\t\tconst page: ABuffer = this._contentCache.findEntry(pageKey);\r\n\t\t\t\tif (page == null) {\r\n\t\t\t\t\t/* Do not request the same page twice */\r\n\t\t\t\t\tif (missingKeys.contains(pageKey) == false) {\r\n\t\t\t\t\t\t/* Add a request to read the missing page */\r\n\t\t\t\t\t\tconst pageOffset0: ALong = ALong.fromInt(this._pageSize).mulInt(i);\r\n\t\t\t\t\t\tconst pageOffset1: ALong = ALong.min(pageOffset0.addInt(this._pageSize), this._fileSize);\r\n\t\t\t\t\t\tconst pageSize: int32 = pageOffset1.sub(pageOffset0).toInt();\r\n\t\t\t\t\t\tmissingPages.add(new FileRange(pageOffset0, pageSize));\r\n\t\t\t\t\t\tmissingKeys.add(pageKey);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t/* Keep */\r\n\t\t\t\t\tpageMap.set(pageKey, page);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t/* Do we have to load missing pages? */\r\n\t\tif (missingPages.size() > 0) {\r\n\t\t\t/* Load all missing pages with one call to the storage */\r\n\t\t\tMessage.log(`Requesting ${missingPages.size()} missing cache pages for '${this._fileName}'`);\r\n\t\t\tconst loadedPages: AList<FileContent> = await this._fileStorage.readFileParts(fileName, missingPages);\r\n\t\t\t/* Add to the cache for reuse */\r\n\t\t\tfor (let i: number = 0; i < loadedPages.size(); i++) {\r\n\t\t\t\tconst pageKey: string = missingKeys.get(i);\r\n\t\t\t\tconst pageContent: FileContent = loadedPages.get(i);\r\n\t\t\t\tthis._contentCache.addEntry(pageKey, pageContent.content);\r\n\t\t\t\tpageMap.set(pageKey, pageContent.content);\r\n\t\t\t}\r\n\t\t}\r\n\t\t/* Create the responses from the cached content */\r\n\t\tconst responseList: AList<FileContent> = new AList<FileContent>();\r\n\t\tfor (let r: number = 0; r < ranges.size(); r++) {\r\n\t\t\t/* Create the response for the next range */\r\n\t\t\tconst range: FileRange = ranges.get(r);\r\n\t\t\tconst rangeExtent: ALong = range.offset.addInt(range.size);\r\n\t\t\tconst response: ABuffer = new ABuffer(range.size);\r\n\t\t\tlet responseOffset: int32 = 0;\r\n\t\t\tthis._requestCount++;\r\n\t\t\tthis._requestSize += range.size;\r\n\t\t\t/* Scan the needed pages */\r\n\t\t\tconst page0: int32 = range.offset.divInt(this._pageSize).toInt();\r\n\t\t\tconst page1: int32 = range.offset.addInt(range.size - 1).divInt(this._pageSize).toInt() + 1; // exclusive\r\n\t\t\tfor (let i: number = page0; i < page1; i++) {\r\n\t\t\t\t/* Get the next page from the cache */\r\n\t\t\t\tconst pageKey: string = (`${i}`);\r\n\t\t\t\tconst page: ABuffer = pageMap.get(pageKey);\r\n\t\t\t\tASystem.assertNot(page == null, `Missing cache page ${pageKey}`);\r\n\t\t\t\t/* Get the extent of the page */\r\n\t\t\t\tconst pageOffset0: ALong = ALong.fromInt(this._pageSize).mulInt(i);\r\n\t\t\t\tconst pageOffset1: ALong = ALong.min(pageOffset0.addInt(this._pageSize), this._fileSize);\r\n\t\t\t\t/* Copy the overlapping part of the page to the response */\r\n\t\t\t\tconst currentOffset: ALong = range.offset.addInt(responseOffset);\r\n\t\t\t\tconst copyOffset: int32 = currentOffset.sub(pageOffset0).toInt();\r\n\t\t\t\tconst copySize: int32 = ALong.min(pageOffset1, rangeExtent).sub(currentOffset).toInt();\r\n\t\t\t\tABuffer.arrayCopy(page, copyOffset, response, responseOffset, copySize);\r\n\t\t\t\tresponseOffset += copySize;\r\n\t\t\t}\r\n\t\t\t/* Add the response to the list */\r\n\t\t\tASystem.assertNot(responseOffset != range.size, `Expected ${range.size} response size, not ${responseOffset}`);\r\n\t\t\tresponseList.add(new FileContent(range.offset, response));\r\n\t\t}\r\n\t\treturn responseList;\r\n\t}\r\n\r\n\t/**\r\n\t * FileStorage method.\r\n\t */\r\n\tpublic override async readFilePart(fileName: string, offset: ALong, size: int32): Promise<ABuffer> {\r\n\t\tconst ranges: AList<FileRange> = new AList<FileRange>();\r\n\t\tranges.add(new FileRange(offset, size));\r\n\t\tconst reponses: AList<FileContent> = await this.readFileParts(fileName, ranges);\r\n\t\tconst reponse: FileContent = reponses.get(0);\r\n\t\treturn reponse.content;\r\n\t}\r\n\r\n\t/**\r\n\t * FileStorage method.\r\n\t */\r\n\tpublic override printStatistics(clear: boolean): void {\r\n\t\tMessage.log(`Page cache of file '${this._fileName}':`);\r\n\t\tMessage.log(`Request count is ${this._requestCount}`);\r\n\t\tMessage.log(`Request size is ${this._requestSize}`);\r\n\t\tMessage.log(`Cache hit count is ${this._contentCache.hitCount}`);\r\n\t\tMessage.log(`Cache miss count is ${this._contentCache.missCount}`);\r\n\t\tif (clear) this._contentCache.hitCount = 0;\r\n\t\tif (clear) this._contentCache.missCount = 0;\r\n\t\tthis._fileStorage.printStatistics(clear);\r\n\t}\r\n}\r\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module OrbitGT
|
|
3
|
+
*/
|
|
4
|
+
declare type int32 = number;
|
|
5
|
+
import { ABuffer } from "../buffer/ABuffer";
|
|
6
|
+
import { AList } from "../collection/AList";
|
|
7
|
+
import { ALong } from "../runtime/ALong";
|
|
8
|
+
import { FileContent } from "./FileContent";
|
|
9
|
+
import { FileRange } from "./FileRange";
|
|
10
|
+
import { FileStorage } from "./FileStorage";
|
|
11
|
+
/**
|
|
12
|
+
* Class UrlFS provides access to file content using URLs.
|
|
13
|
+
*/
|
|
14
|
+
/** @internal */
|
|
15
|
+
export declare class UrlFS extends FileStorage {
|
|
16
|
+
private _downloader;
|
|
17
|
+
requestCount: number;
|
|
18
|
+
responseSize: number;
|
|
19
|
+
/**
|
|
20
|
+
* Create the URL to access a blob file in an Azure storage account.
|
|
21
|
+
* @param accountName the name of the Azure storage account.
|
|
22
|
+
* @param containerName the name of the container that stores the blob file.
|
|
23
|
+
* @param blobName the name of the blob (should start with a forward slash).
|
|
24
|
+
* @param sasToken the SAS (shared access signature) of the blob or container (the part after the '?' character of the URL).
|
|
25
|
+
* @return the URL.
|
|
26
|
+
*/
|
|
27
|
+
static getAzureBlobSasUrl(accountName: string, containerName: string, blobName: string, sasToken: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Create a new instance.
|
|
30
|
+
*/
|
|
31
|
+
constructor();
|
|
32
|
+
/**
|
|
33
|
+
* FileStorage method.
|
|
34
|
+
*/
|
|
35
|
+
close(): void;
|
|
36
|
+
/**
|
|
37
|
+
* FileStorage method.
|
|
38
|
+
*/
|
|
39
|
+
getFileLength(url: string): Promise<ALong>;
|
|
40
|
+
/**
|
|
41
|
+
* FileStorage method.
|
|
42
|
+
*/
|
|
43
|
+
readFilePart(url: string, offset: ALong, size: int32): Promise<ABuffer>;
|
|
44
|
+
/**
|
|
45
|
+
* FileStorage method.
|
|
46
|
+
*/
|
|
47
|
+
readFileParts(url: string, ranges: AList<FileRange>): Promise<AList<FileContent>>;
|
|
48
|
+
/**
|
|
49
|
+
* FileStorage method.
|
|
50
|
+
*/
|
|
51
|
+
printStatistics(clear: boolean): void;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=UrlFS.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlFS.d.ts","sourceRoot":"","sources":["../../../../src/system/storage/UrlFS.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,aAAK,KAAK,GAAG,MAAM,CAAC;AAIpB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,gBAAgB;AAChB,qBAAa,KAAM,SAAQ,WAAW;IAElC,OAAO,CAAC,WAAW,CAAa;IAGzB,YAAY,EAAE,MAAM,CAAC;IAErB,YAAY,EAAE,MAAM,CAAC;IAE5B;;;;;;;SAOK;WACS,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMxH;;SAEK;;IAQL;;SAEK;IACW,KAAK,IAAI,IAAI;IAG7B;;SAEK;IACiB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAQhE;;SAEK;IACiB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB7F;;SAEK;IACiB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAoBvG;;SAEK;IACW,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAOxD"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module OrbitGT
|
|
7
|
+
*/
|
|
8
|
+
import { AList } from "../collection/AList";
|
|
9
|
+
import { StringMap } from "../collection/StringMap";
|
|
10
|
+
import { ALong } from "../runtime/ALong";
|
|
11
|
+
import { ASystem } from "../runtime/ASystem";
|
|
12
|
+
import { Downloader } from "../runtime/Downloader";
|
|
13
|
+
import { FileContent } from "./FileContent";
|
|
14
|
+
import { FileStorage } from "./FileStorage";
|
|
15
|
+
/**
|
|
16
|
+
* Class UrlFS provides access to file content using URLs.
|
|
17
|
+
*/
|
|
18
|
+
/** @internal */
|
|
19
|
+
export class UrlFS extends FileStorage {
|
|
20
|
+
/**
|
|
21
|
+
* Create a new instance.
|
|
22
|
+
*/
|
|
23
|
+
constructor() {
|
|
24
|
+
super();
|
|
25
|
+
this._downloader = Downloader.INSTANCE;
|
|
26
|
+
this.requestCount = 0;
|
|
27
|
+
this.responseSize = 0;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create the URL to access a blob file in an Azure storage account.
|
|
31
|
+
* @param accountName the name of the Azure storage account.
|
|
32
|
+
* @param containerName the name of the container that stores the blob file.
|
|
33
|
+
* @param blobName the name of the blob (should start with a forward slash).
|
|
34
|
+
* @param sasToken the SAS (shared access signature) of the blob or container (the part after the '?' character of the URL).
|
|
35
|
+
* @return the URL.
|
|
36
|
+
*/
|
|
37
|
+
static getAzureBlobSasUrl(accountName, containerName, blobName, sasToken) {
|
|
38
|
+
let blobURL = `https://${accountName}.blob.core.windows.net/${containerName}${blobName}`;
|
|
39
|
+
if (sasToken != null)
|
|
40
|
+
blobURL += `?${sasToken}`;
|
|
41
|
+
return blobURL;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* FileStorage method.
|
|
45
|
+
*/
|
|
46
|
+
close() {
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* FileStorage method.
|
|
50
|
+
*/
|
|
51
|
+
async getFileLength(url) {
|
|
52
|
+
const requestHeaders = null;
|
|
53
|
+
const responseHeaders = new StringMap();
|
|
54
|
+
await this._downloader.downloadBytes("HEAD" /* method*/, url, requestHeaders, null /* postText*/, null /* postData*/, responseHeaders);
|
|
55
|
+
const fileLength = parseInt(responseHeaders.get("content-length"));
|
|
56
|
+
return ALong.fromDouble(fileLength);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* FileStorage method.
|
|
60
|
+
*/
|
|
61
|
+
async readFilePart(url, offset, size) {
|
|
62
|
+
const extent = offset.addInt(size - 1);
|
|
63
|
+
const range = `bytes=${offset.toString()}-${extent.toString()}`;
|
|
64
|
+
const requestHeaders = new StringMap();
|
|
65
|
+
requestHeaders.set("Range", range);
|
|
66
|
+
// requestHeaders.set("x-ms-range",range); // https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-the-range-header-for-file-service-operations
|
|
67
|
+
const responseHeaders = new StringMap();
|
|
68
|
+
const content = await this._downloader.downloadBytes("GET" /* method*/, url, requestHeaders, null /* postText*/, null /* postData*/, responseHeaders);
|
|
69
|
+
const contentLength = parseInt(responseHeaders.get("content-length"));
|
|
70
|
+
ASystem.assertNot(contentLength != size, `Expected ${size} bytes of content, not ${contentLength}`);
|
|
71
|
+
ASystem.assertNot(content.size() != size, `Expected content buffer size ${size}, not ${content}`);
|
|
72
|
+
this.requestCount++;
|
|
73
|
+
this.responseSize += size;
|
|
74
|
+
return content;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* FileStorage method.
|
|
78
|
+
*/
|
|
79
|
+
async readFileParts(url, ranges) {
|
|
80
|
+
/* Request all file parts in parallel */
|
|
81
|
+
const contentFetchers = [];
|
|
82
|
+
for (let i = 0; i < ranges.size(); i++) {
|
|
83
|
+
const range = ranges.get(i);
|
|
84
|
+
const contentFetcher = this.readFilePart(url, range.offset, range.size);
|
|
85
|
+
contentFetchers.push(contentFetcher);
|
|
86
|
+
}
|
|
87
|
+
/* Await all requests at once */
|
|
88
|
+
const contentResponses = await Promise.all(contentFetchers);
|
|
89
|
+
/* Create the result list */
|
|
90
|
+
const contentParts = new AList();
|
|
91
|
+
for (let i = 0; i < ranges.size(); i++) {
|
|
92
|
+
const range = ranges.get(i);
|
|
93
|
+
const contentResponse = contentResponses[i];
|
|
94
|
+
contentParts.add(new FileContent(range.offset, contentResponse));
|
|
95
|
+
}
|
|
96
|
+
return contentParts;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* FileStorage method.
|
|
100
|
+
*/
|
|
101
|
+
printStatistics(clear) {
|
|
102
|
+
console.log("File url access statistics:");
|
|
103
|
+
console.log(`Request count ${this.requestCount}`);
|
|
104
|
+
console.log(`Response size ${this.responseSize}`);
|
|
105
|
+
if (clear)
|
|
106
|
+
this.requestCount = 0;
|
|
107
|
+
if (clear)
|
|
108
|
+
this.responseSize = 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=UrlFS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlFS.js","sourceRoot":"","sources":["../../../../src/system/storage/UrlFS.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 OrbitGT\r\n */\r\n\r\ntype int8 = number;\r\ntype int16 = number;\r\ntype int32 = number;\r\ntype float32 = number;\r\ntype float64 = number;\r\n\r\nimport { ABuffer } from \"../buffer/ABuffer\";\r\nimport { AList } from \"../collection/AList\";\r\nimport { StringMap } from \"../collection/StringMap\";\r\nimport { ALong } from \"../runtime/ALong\";\r\nimport { ASystem } from \"../runtime/ASystem\";\r\nimport { Downloader } from \"../runtime/Downloader\";\r\nimport { FileContent } from \"./FileContent\";\r\nimport { FileRange } from \"./FileRange\";\r\nimport { FileStorage } from \"./FileStorage\";\r\n\r\n/**\r\n * Class UrlFS provides access to file content using URLs.\r\n */\r\n/** @internal */\r\nexport class UrlFS extends FileStorage {\r\n // the downloader to the file\r\n private _downloader: Downloader;\r\n\r\n // the number of requests that have been made to access the content of the file\r\n public requestCount: number;\r\n // the number of content bytes downloaded\r\n public responseSize: number;\r\n\r\n /**\r\n * Create the URL to access a blob file in an Azure storage account.\r\n * @param accountName the name of the Azure storage account.\r\n * @param containerName the name of the container that stores the blob file.\r\n * @param blobName the name of the blob (should start with a forward slash).\r\n * @param sasToken the SAS (shared access signature) of the blob or container (the part after the '?' character of the URL).\r\n * @return the URL.\r\n */\r\n public static getAzureBlobSasUrl(accountName: string, containerName: string, blobName: string, sasToken: string): string {\r\n let blobURL: string = `https://${accountName}.blob.core.windows.net/${containerName}${blobName}`;\r\n if (sasToken != null) blobURL += `?${sasToken}`;\r\n return blobURL;\r\n }\r\n\r\n /**\r\n * Create a new instance.\r\n */\r\n public constructor() {\r\n super();\r\n this._downloader = Downloader.INSTANCE;\r\n this.requestCount = 0;\r\n this.responseSize = 0;\r\n }\r\n\r\n /**\r\n * FileStorage method.\r\n */\r\n public override close(): void {\r\n }\r\n\r\n /**\r\n * FileStorage method.\r\n */\r\n public override async getFileLength(url: string): Promise<ALong> {\r\n const requestHeaders: StringMap<string> = null;\r\n const responseHeaders: StringMap<string> = new StringMap<string>();\r\n await this._downloader.downloadBytes(\"HEAD\"/* method*/, url, requestHeaders, null/* postText*/, null/* postData*/, responseHeaders);\r\n const fileLength: number = parseInt(responseHeaders.get(\"content-length\"));\r\n return ALong.fromDouble(fileLength);\r\n }\r\n\r\n /**\r\n * FileStorage method.\r\n */\r\n public override async readFilePart(url: string, offset: ALong, size: int32): Promise<ABuffer> {\r\n const extent: ALong = offset.addInt(size - 1);\r\n const range: string = `bytes=${offset.toString()}-${extent.toString()}`;\r\n const requestHeaders: StringMap<string> = new StringMap<string>();\r\n requestHeaders.set(\"Range\", range);\r\n // requestHeaders.set(\"x-ms-range\",range); // https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-the-range-header-for-file-service-operations\r\n const responseHeaders: StringMap<string> = new StringMap<string>();\r\n const content: ABuffer = await this._downloader.downloadBytes(\"GET\"/* method*/, url, requestHeaders, null/* postText*/, null/* postData*/, responseHeaders);\r\n const contentLength: number = parseInt(responseHeaders.get(\"content-length\"));\r\n ASystem.assertNot(contentLength != size, `Expected ${size} bytes of content, not ${contentLength}`);\r\n ASystem.assertNot(content.size() != size, `Expected content buffer size ${size}, not ${content}`);\r\n this.requestCount++;\r\n this.responseSize += size;\r\n return content;\r\n }\r\n\r\n /**\r\n * FileStorage method.\r\n */\r\n public override async readFileParts(url: string, ranges: AList<FileRange>): Promise<AList<FileContent>> {\r\n /* Request all file parts in parallel */\r\n const contentFetchers: Array<Promise<ABuffer>> = [];\r\n for (let i: number = 0; i < ranges.size(); i++) {\r\n const range: FileRange = ranges.get(i);\r\n const contentFetcher: Promise<ABuffer> = this.readFilePart(url, range.offset, range.size);\r\n contentFetchers.push(contentFetcher);\r\n }\r\n /* Await all requests at once */\r\n const contentResponses: Array<ABuffer> = await Promise.all(contentFetchers);\r\n /* Create the result list */\r\n const contentParts: AList<FileContent> = new AList<FileContent>();\r\n for (let i: number = 0; i < ranges.size(); i++) {\r\n const range: FileRange = ranges.get(i);\r\n const contentResponse: ABuffer = contentResponses[i];\r\n contentParts.add(new FileContent(range.offset, contentResponse));\r\n }\r\n return contentParts;\r\n }\r\n\r\n /**\r\n * FileStorage method.\r\n */\r\n public override printStatistics(clear: boolean): void {\r\n console.log(\"File url access statistics:\");\r\n console.log(`Request count ${this.requestCount}`);\r\n console.log(`Response size ${this.responseSize}`);\r\n if (clear) this.requestCount = 0;\r\n if (clear) this.responseSize = 0;\r\n }\r\n}\r\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@itwin/core-orbitgt",
|
|
3
|
+
"version": "3.0.0-dev.100",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "lib/cjs/core-orbitgt.js",
|
|
6
|
+
"module": "lib/esm/core-orbitgt.js",
|
|
7
|
+
"typings": "lib/cjs/core-orbitgt",
|
|
8
|
+
"imodeljsSharedLibrary": true,
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/imodeljs/imodeljs/tree/master/core/orbitgt"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"Point Cloud"
|
|
16
|
+
],
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "Bentley Systems, Inc.",
|
|
19
|
+
"url": "http://www.bentley.com"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@itwin/core-bentley": "3.0.0-dev.100",
|
|
23
|
+
"@itwin/build-tools": "3.0.0-dev.100",
|
|
24
|
+
"@itwin/eslint-plugin": "3.0.0-dev.100",
|
|
25
|
+
"@types/chai": "^4.1.4",
|
|
26
|
+
"@types/mocha": "^8.2.2",
|
|
27
|
+
"@types/node": "14.14.31",
|
|
28
|
+
"chai": "^4.1.2",
|
|
29
|
+
"cpx": "^1.5.0",
|
|
30
|
+
"debug": "^2.6.9",
|
|
31
|
+
"eslint": "^7.11.0",
|
|
32
|
+
"mocha": "^8.3.2",
|
|
33
|
+
"nyc": "^15.1.0",
|
|
34
|
+
"rimraf": "^3.0.2",
|
|
35
|
+
"semver": "^5.5.0",
|
|
36
|
+
"typescript": "~4.4.0"
|
|
37
|
+
},
|
|
38
|
+
"nyc": {
|
|
39
|
+
"extends": "./node_modules/@itwin/build-tools/.nycrc"
|
|
40
|
+
},
|
|
41
|
+
"eslintConfig": {
|
|
42
|
+
"plugins": [
|
|
43
|
+
"@itwin"
|
|
44
|
+
],
|
|
45
|
+
"extends": "plugin:@itwin/itwinjs-recommended"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "npm run -s build:cjs",
|
|
49
|
+
"build:ci": "npm run -s build && npm run -s build:esm",
|
|
50
|
+
"build:cjs": "tsc 1>&2 --outDir lib/cjs && npm run -s copy:test-assets",
|
|
51
|
+
"build:esm": "tsc 1>&2 --module ES2020 --outDir lib/esm",
|
|
52
|
+
"clean": "rimraf lib .rush/temp/package-deps*.json",
|
|
53
|
+
"copy:test-assets": "cpx \"./src/test/assets/**/*\" ./lib/cjs/test/assets",
|
|
54
|
+
"docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-orbitgt/file.json --tsIndexFile=./core-orbitgt.ts --onlyJson",
|
|
55
|
+
"extract-api": "betools extract-api --entry=core-orbitgt",
|
|
56
|
+
"lint": "",
|
|
57
|
+
"test": "mocha",
|
|
58
|
+
"cover": "nyc npm -s test"
|
|
59
|
+
}
|
|
60
|
+
}
|