@itwin/core-orbitgt 4.0.0-dev.7 → 4.0.0-dev.70
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 +11 -1
- package/lib/cjs/core-orbitgt.d.ts +26 -26
- package/lib/cjs/core-orbitgt.js +62 -58
- package/lib/cjs/core-orbitgt.js.map +1 -1
- package/lib/cjs/pointcloud/format/opc/AttributeMask.d.ts +30 -30
- package/lib/cjs/pointcloud/format/opc/AttributeMask.js +47 -47
- package/lib/cjs/pointcloud/format/opc/AttributeReader.d.ts +63 -63
- package/lib/cjs/pointcloud/format/opc/AttributeReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/AttributeReader.js +24 -24
- package/lib/cjs/pointcloud/format/opc/BlockRecord.d.ts +54 -54
- package/lib/cjs/pointcloud/format/opc/BlockRecord.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/BlockRecord.js +84 -84
- package/lib/cjs/pointcloud/format/opc/BlockRecord.js.map +1 -1
- package/lib/cjs/pointcloud/format/opc/ContainerFile.d.ts +85 -85
- package/lib/cjs/pointcloud/format/opc/ContainerFile.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/ContainerFile.js +199 -199
- package/lib/cjs/pointcloud/format/opc/ContainerFile.js.map +1 -1
- package/lib/cjs/pointcloud/format/opc/ContainerFilePart.d.ts +55 -55
- package/lib/cjs/pointcloud/format/opc/ContainerFilePart.js +75 -75
- package/lib/cjs/pointcloud/format/opc/DirectoryReader.d.ts +75 -75
- package/lib/cjs/pointcloud/format/opc/DirectoryReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/DirectoryReader.js +169 -169
- package/lib/cjs/pointcloud/format/opc/DirectoryRecord.d.ts +59 -59
- package/lib/cjs/pointcloud/format/opc/DirectoryRecord.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/DirectoryRecord.js +89 -89
- package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.d.ts +106 -106
- package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.js +197 -197
- package/lib/cjs/pointcloud/format/opc/FileAccess.d.ts +39 -39
- package/lib/cjs/pointcloud/format/opc/FileAccess.js +48 -48
- package/lib/cjs/pointcloud/format/opc/FileReader.d.ts +118 -118
- package/lib/cjs/pointcloud/format/opc/FileReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/FileReader.js +248 -248
- package/lib/cjs/pointcloud/format/opc/FileReader.js.map +1 -1
- package/lib/cjs/pointcloud/format/opc/FileRecord.d.ts +89 -89
- package/lib/cjs/pointcloud/format/opc/FileRecord.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/FileRecord.js +125 -125
- package/lib/cjs/pointcloud/format/opc/GeometryReader.d.ts +79 -79
- package/lib/cjs/pointcloud/format/opc/GeometryReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/GeometryReader.js +163 -163
- package/lib/cjs/pointcloud/format/opc/GeometryReader.js.map +1 -1
- package/lib/cjs/pointcloud/format/opc/GeometryRecord.d.ts +53 -53
- package/lib/cjs/pointcloud/format/opc/GeometryRecord.js +107 -107
- package/lib/cjs/pointcloud/format/opc/OPCReader.d.ts +157 -157
- package/lib/cjs/pointcloud/format/opc/OPCReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/OPCReader.js +319 -319
- package/lib/cjs/pointcloud/format/opc/OPCReader.js.map +1 -1
- package/lib/cjs/pointcloud/format/opc/PointReader.d.ts +72 -72
- package/lib/cjs/pointcloud/format/opc/PointReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/PointReader.js +152 -152
- package/lib/cjs/pointcloud/format/opc/TileReadBuffer.d.ts +63 -63
- package/lib/cjs/pointcloud/format/opc/TileReadBuffer.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/TileReadBuffer.js +92 -92
- package/lib/cjs/pointcloud/format/opc/TileRecord.d.ts +88 -88
- package/lib/cjs/pointcloud/format/opc/TileRecord.d.ts.map +1 -1
- package/lib/cjs/pointcloud/format/opc/TileRecord.js +161 -161
- package/lib/cjs/pointcloud/format/opc/TileRecord.js.map +1 -1
- package/lib/cjs/pointcloud/model/AttributeTypes.d.ts +37 -37
- package/lib/cjs/pointcloud/model/AttributeTypes.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/AttributeTypes.js +64 -64
- package/lib/cjs/pointcloud/model/AttributeTypes.js.map +1 -1
- package/lib/cjs/pointcloud/model/AttributeValue.d.ts +247 -247
- package/lib/cjs/pointcloud/model/AttributeValue.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/AttributeValue.js +508 -508
- package/lib/cjs/pointcloud/model/AttributeValue.js.map +1 -1
- package/lib/cjs/pointcloud/model/BlockIndex.d.ts +49 -49
- package/lib/cjs/pointcloud/model/BlockIndex.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/BlockIndex.js +48 -48
- package/lib/cjs/pointcloud/model/CloudPoint.d.ts +210 -210
- package/lib/cjs/pointcloud/model/CloudPoint.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/CloudPoint.js +318 -318
- package/lib/cjs/pointcloud/model/CloudPoint.js.map +1 -1
- package/lib/cjs/pointcloud/model/Grid.d.ts +91 -91
- package/lib/cjs/pointcloud/model/Grid.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/Grid.js +129 -129
- package/lib/cjs/pointcloud/model/GridIndex.d.ts +66 -66
- package/lib/cjs/pointcloud/model/GridIndex.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/GridIndex.js +93 -93
- package/lib/cjs/pointcloud/model/PointAttribute.d.ts +208 -208
- package/lib/cjs/pointcloud/model/PointAttribute.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/PointAttribute.js +374 -374
- package/lib/cjs/pointcloud/model/PointCloudReader.d.ts +156 -156
- package/lib/cjs/pointcloud/model/PointCloudReader.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/PointCloudReader.js +189 -189
- package/lib/cjs/pointcloud/model/PointData.d.ts +17 -17
- package/lib/cjs/pointcloud/model/PointData.js +24 -24
- package/lib/cjs/pointcloud/model/PointDataRaw.d.ts +34 -34
- package/lib/cjs/pointcloud/model/PointDataRaw.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/PointDataRaw.js +69 -69
- package/lib/cjs/pointcloud/model/PointDataRaw.js.map +1 -1
- package/lib/cjs/pointcloud/model/ReadRequest.d.ts +175 -175
- package/lib/cjs/pointcloud/model/ReadRequest.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/ReadRequest.js +239 -239
- package/lib/cjs/pointcloud/model/ReadRequest.js.map +1 -1
- package/lib/cjs/pointcloud/model/StandardAttributes.d.ts +40 -40
- package/lib/cjs/pointcloud/model/StandardAttributes.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/StandardAttributes.js +47 -47
- package/lib/cjs/pointcloud/model/StandardAttributes.js.map +1 -1
- package/lib/cjs/pointcloud/model/TileIndex.d.ts +47 -47
- package/lib/cjs/pointcloud/model/TileIndex.d.ts.map +1 -1
- package/lib/cjs/pointcloud/model/TileIndex.js +47 -47
- package/lib/cjs/pointcloud/render/AViewRequest.d.ts +38 -38
- package/lib/cjs/pointcloud/render/AViewRequest.d.ts.map +1 -1
- package/lib/cjs/pointcloud/render/AViewRequest.js +24 -24
- package/lib/cjs/pointcloud/render/Block.d.ts +67 -67
- package/lib/cjs/pointcloud/render/Block.js +119 -119
- package/lib/cjs/pointcloud/render/DataManager.d.ts +136 -136
- package/lib/cjs/pointcloud/render/DataManager.d.ts.map +1 -1
- package/lib/cjs/pointcloud/render/DataManager.js +342 -342
- package/lib/cjs/pointcloud/render/DataManager.js.map +1 -1
- package/lib/cjs/pointcloud/render/FrameData.d.ts +30 -30
- package/lib/cjs/pointcloud/render/FrameData.js +39 -39
- package/lib/cjs/pointcloud/render/Level.d.ts +90 -90
- package/lib/cjs/pointcloud/render/Level.d.ts.map +1 -1
- package/lib/cjs/pointcloud/render/Level.js +119 -119
- package/lib/cjs/pointcloud/render/TileLoadSorter.d.ts +60 -60
- package/lib/cjs/pointcloud/render/TileLoadSorter.d.ts.map +1 -1
- package/lib/cjs/pointcloud/render/TileLoadSorter.js +99 -99
- package/lib/cjs/pointcloud/render/TileLoadSorter.js.map +1 -1
- package/lib/cjs/pointcloud/render/ViewTree.d.ts +113 -113
- package/lib/cjs/pointcloud/render/ViewTree.d.ts.map +1 -1
- package/lib/cjs/pointcloud/render/ViewTree.js +363 -363
- package/lib/cjs/pointcloud/render/ViewTree.js.map +1 -1
- package/lib/cjs/spatial/crs/CRSEngine.d.ts +55 -55
- package/lib/cjs/spatial/crs/CRSEngine.js +93 -93
- package/lib/cjs/spatial/crs/CRSManager.d.ts +49 -49
- package/lib/cjs/spatial/crs/CRSManager.js +109 -109
- package/lib/cjs/spatial/crs/CRSManager.js.map +1 -1
- package/lib/cjs/spatial/ecrs/Axis.d.ts +77 -77
- package/lib/cjs/spatial/ecrs/Axis.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/Axis.js +93 -93
- package/lib/cjs/spatial/ecrs/CRS.d.ts +447 -447
- package/lib/cjs/spatial/ecrs/CRS.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/CRS.js +930 -930
- package/lib/cjs/spatial/ecrs/CRS.js.map +1 -1
- package/lib/cjs/spatial/ecrs/CoordinateSystem.d.ts +142 -142
- package/lib/cjs/spatial/ecrs/CoordinateSystem.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/CoordinateSystem.js +326 -326
- package/lib/cjs/spatial/ecrs/CoordinateSystem.js.map +1 -1
- package/lib/cjs/spatial/ecrs/DataFileUnit.d.ts +10 -10
- package/lib/cjs/spatial/ecrs/DataFileUnit.js +104 -104
- package/lib/cjs/spatial/ecrs/DataFileUnit.js.map +1 -1
- package/lib/cjs/spatial/ecrs/Datum.d.ts +111 -111
- package/lib/cjs/spatial/ecrs/Datum.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/Datum.js +166 -166
- package/lib/cjs/spatial/ecrs/Datum.js.map +1 -1
- package/lib/cjs/spatial/ecrs/Ellipsoid.d.ts +188 -188
- package/lib/cjs/spatial/ecrs/Ellipsoid.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/Ellipsoid.js +336 -336
- package/lib/cjs/spatial/ecrs/OnlineEngine.d.ts +48 -48
- package/lib/cjs/spatial/ecrs/OnlineEngine.js +102 -102
- package/lib/cjs/spatial/ecrs/OnlineEngine.js.map +1 -1
- package/lib/cjs/spatial/ecrs/OnlineRegistry.d.ts +37 -37
- package/lib/cjs/spatial/ecrs/OnlineRegistry.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/OnlineRegistry.js +76 -76
- package/lib/cjs/spatial/ecrs/OnlineRegistry.js.map +1 -1
- package/lib/cjs/spatial/ecrs/Operation.d.ts +191 -191
- package/lib/cjs/spatial/ecrs/Operation.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/Operation.js +345 -345
- package/lib/cjs/spatial/ecrs/Operation.js.map +1 -1
- package/lib/cjs/spatial/ecrs/OperationMethod.d.ts +71 -71
- package/lib/cjs/spatial/ecrs/OperationMethod.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/OperationMethod.js +75 -75
- package/lib/cjs/spatial/ecrs/ParameterValue.d.ts +49 -49
- package/lib/cjs/spatial/ecrs/ParameterValue.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/ParameterValue.js +65 -65
- package/lib/cjs/spatial/ecrs/ParameterValueList.d.ts +72 -72
- package/lib/cjs/spatial/ecrs/ParameterValueList.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/ParameterValueList.js +120 -120
- package/lib/cjs/spatial/ecrs/PrimeMeridian.d.ts +78 -78
- package/lib/cjs/spatial/ecrs/PrimeMeridian.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/PrimeMeridian.js +108 -108
- package/lib/cjs/spatial/ecrs/Registry.d.ts +109 -109
- package/lib/cjs/spatial/ecrs/Registry.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/Registry.js +207 -207
- package/lib/cjs/spatial/ecrs/Registry.js.map +1 -1
- package/lib/cjs/spatial/ecrs/Transform.d.ts +77 -77
- package/lib/cjs/spatial/ecrs/Transform.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/Transform.js +396 -396
- package/lib/cjs/spatial/ecrs/Transform.js.map +1 -1
- package/lib/cjs/spatial/ecrs/Unit.d.ts +170 -170
- package/lib/cjs/spatial/ecrs/Unit.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/Unit.js +336 -336
- package/lib/cjs/spatial/ecrs/Unit.js.map +1 -1
- package/lib/cjs/spatial/ecrs/VerticalModel.d.ts +69 -69
- package/lib/cjs/spatial/ecrs/VerticalModel.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/VerticalModel.js +88 -88
- package/lib/cjs/spatial/ecrs/WellKnownText.d.ts +153 -153
- package/lib/cjs/spatial/ecrs/WellKnownText.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/WellKnownText.js +494 -494
- package/lib/cjs/spatial/ecrs/WellKnownText.js.map +1 -1
- package/lib/cjs/spatial/ecrs/WellKnownTextNode.d.ts +69 -69
- package/lib/cjs/spatial/ecrs/WellKnownTextNode.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/WellKnownTextNode.js +128 -128
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.d.ts +101 -101
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.js +162 -162
- package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts +79 -79
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.js +125 -125
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts +47 -47
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js +73 -73
- package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.d.ts +72 -72
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.js +129 -129
- package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.d.ts +120 -120
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.js +179 -179
- package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.d.ts +73 -73
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.js +112 -112
- package/lib/cjs/spatial/ecrs/projection/Mercator1SP.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.d.ts +96 -96
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.js +173 -173
- package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.d.ts +123 -123
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.js +208 -208
- package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.js.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.d.ts +108 -108
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.js +183 -183
- package/lib/cjs/spatial/ecrs/projection/TransverseMercator.js.map +1 -1
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.d.ts +90 -90
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.d.ts.map +1 -1
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.js +130 -130
- package/lib/cjs/spatial/ecrs/transformation/PositionVector.js.map +1 -1
- package/lib/cjs/spatial/geom/Bounds.d.ts +33 -33
- package/lib/cjs/spatial/geom/Bounds.d.ts.map +1 -1
- package/lib/cjs/spatial/geom/Bounds.js +156 -156
- package/lib/cjs/spatial/geom/Coordinate.d.ts +61 -61
- package/lib/cjs/spatial/geom/Coordinate.d.ts.map +1 -1
- package/lib/cjs/spatial/geom/Coordinate.js +186 -186
- package/lib/cjs/spatial/geom/Line.d.ts +225 -225
- package/lib/cjs/spatial/geom/Line.d.ts.map +1 -1
- package/lib/cjs/spatial/geom/Line.js +432 -432
- package/lib/cjs/spatial/geom/Transform.d.ts +340 -340
- package/lib/cjs/spatial/geom/Transform.d.ts.map +1 -1
- package/lib/cjs/spatial/geom/Transform.js +748 -748
- package/lib/cjs/system/buffer/ABuffer.d.ts +51 -51
- package/lib/cjs/system/buffer/ABuffer.d.ts.map +1 -1
- package/lib/cjs/system/buffer/ABuffer.js +90 -90
- package/lib/cjs/system/buffer/Float32Buffer.d.ts +46 -46
- package/lib/cjs/system/buffer/Float32Buffer.d.ts.map +1 -1
- package/lib/cjs/system/buffer/Float32Buffer.js +60 -60
- package/lib/cjs/system/buffer/Float32Buffer.js.map +1 -1
- package/lib/cjs/system/buffer/LittleEndian.d.ts +149 -149
- package/lib/cjs/system/buffer/LittleEndian.d.ts.map +1 -1
- package/lib/cjs/system/buffer/LittleEndian.js +303 -303
- package/lib/cjs/system/buffer/Uint16Buffer.d.ts +49 -49
- package/lib/cjs/system/buffer/Uint16Buffer.d.ts.map +1 -1
- package/lib/cjs/system/buffer/Uint16Buffer.js +65 -65
- package/lib/cjs/system/buffer/Uint16Buffer.js.map +1 -1
- package/lib/cjs/system/buffer/Uint8Buffer.d.ts +49 -49
- package/lib/cjs/system/buffer/Uint8Buffer.d.ts.map +1 -1
- package/lib/cjs/system/buffer/Uint8Buffer.js +65 -65
- package/lib/cjs/system/buffer/Uint8Buffer.js.map +1 -1
- package/lib/cjs/system/collection/AList.d.ts +30 -30
- package/lib/cjs/system/collection/AList.d.ts.map +1 -1
- package/lib/cjs/system/collection/AList.js +70 -70
- package/lib/cjs/system/collection/IntMap.d.ts +18 -18
- package/lib/cjs/system/collection/IntMap.d.ts.map +1 -1
- package/lib/cjs/system/collection/IntMap.js +35 -35
- package/lib/cjs/system/collection/StringMap.d.ts +26 -26
- package/lib/cjs/system/collection/StringMap.d.ts.map +1 -1
- package/lib/cjs/system/collection/StringMap.js +63 -63
- package/lib/cjs/system/io/ABufferInStream.d.ts +29 -29
- package/lib/cjs/system/io/ABufferInStream.d.ts.map +1 -1
- package/lib/cjs/system/io/ABufferInStream.js +46 -46
- package/lib/cjs/system/io/InStream.d.ts +23 -23
- package/lib/cjs/system/io/InStream.d.ts.map +1 -1
- package/lib/cjs/system/io/InStream.js +34 -34
- package/lib/cjs/system/io/OutStream.d.ts +23 -23
- package/lib/cjs/system/io/OutStream.d.ts.map +1 -1
- package/lib/cjs/system/io/OutStream.js +33 -33
- package/lib/cjs/system/runtime/ALong.d.ts +329 -329
- package/lib/cjs/system/runtime/ALong.d.ts.map +1 -1
- package/lib/cjs/system/runtime/ALong.js +687 -687
- package/lib/cjs/system/runtime/ALong.js.map +1 -1
- package/lib/cjs/system/runtime/ASystem.d.ts +14 -14
- package/lib/cjs/system/runtime/ASystem.js +31 -31
- package/lib/cjs/system/runtime/ASystem.js.map +1 -1
- package/lib/cjs/system/runtime/Downloader.d.ts +17 -17
- package/lib/cjs/system/runtime/Downloader.js +38 -38
- package/lib/cjs/system/runtime/Downloader.js.map +1 -1
- package/lib/cjs/system/runtime/DownloaderNode.d.ts +18 -18
- package/lib/cjs/system/runtime/DownloaderNode.js +129 -129
- package/lib/cjs/system/runtime/DownloaderXhr.d.ts +18 -18
- package/lib/cjs/system/runtime/DownloaderXhr.js +131 -131
- package/lib/cjs/system/runtime/Message.d.ts +16 -16
- package/lib/cjs/system/runtime/Message.js +39 -39
- package/lib/cjs/system/runtime/Message.js.map +1 -1
- package/lib/cjs/system/runtime/Numbers.d.ts +34 -34
- package/lib/cjs/system/runtime/Numbers.d.ts.map +1 -1
- package/lib/cjs/system/runtime/Numbers.js +87 -87
- package/lib/cjs/system/runtime/Numbers.js.map +1 -1
- package/lib/cjs/system/runtime/Strings.d.ts +49 -49
- package/lib/cjs/system/runtime/Strings.d.ts.map +1 -1
- package/lib/cjs/system/runtime/Strings.js +188 -188
- package/lib/cjs/system/runtime/Strings.js.map +1 -1
- package/lib/cjs/system/runtime/iComparator.d.ts +12 -12
- package/lib/cjs/system/runtime/iComparator.d.ts.map +1 -1
- package/lib/cjs/system/runtime/iComparator.js +9 -9
- package/lib/cjs/system/storage/CacheList.d.ts +39 -39
- package/lib/cjs/system/storage/CacheList.d.ts.map +1 -1
- package/lib/cjs/system/storage/CacheList.js +80 -80
- package/lib/cjs/system/storage/CachedItem.d.ts +21 -21
- package/lib/cjs/system/storage/CachedItem.d.ts.map +1 -1
- package/lib/cjs/system/storage/CachedItem.js +25 -25
- package/lib/cjs/system/storage/ContentLoader.d.ts +64 -64
- package/lib/cjs/system/storage/ContentLoader.d.ts.map +1 -1
- package/lib/cjs/system/storage/ContentLoader.js +95 -95
- package/lib/cjs/system/storage/ContentLoader.js.map +1 -1
- package/lib/cjs/system/storage/FileContent.d.ts +19 -19
- package/lib/cjs/system/storage/FileContent.js +24 -24
- package/lib/cjs/system/storage/FileRange.d.ts +20 -20
- package/lib/cjs/system/storage/FileRange.d.ts.map +1 -1
- package/lib/cjs/system/storage/FileRange.js +24 -24
- package/lib/cjs/system/storage/FileStorage.d.ts +44 -44
- package/lib/cjs/system/storage/FileStorage.d.ts.map +1 -1
- package/lib/cjs/system/storage/FileStorage.js +62 -62
- package/lib/cjs/system/storage/NodeFS.d.ts +41 -41
- package/lib/cjs/system/storage/NodeFS.d.ts.map +1 -1
- package/lib/cjs/system/storage/NodeFS.js +79 -79
- package/lib/cjs/system/storage/PageCachedFile.d.ts +54 -54
- package/lib/cjs/system/storage/PageCachedFile.d.ts.map +1 -1
- package/lib/cjs/system/storage/PageCachedFile.js +165 -165
- package/lib/cjs/system/storage/UrlFS.d.ts +53 -53
- package/lib/cjs/system/storage/UrlFS.d.ts.map +1 -1
- package/lib/cjs/system/storage/UrlFS.js +114 -114
- package/lib/cjs/system/storage/UrlFS.js.map +1 -1
- package/lib/esm/core-orbitgt.d.ts +26 -26
- package/lib/esm/core-orbitgt.js +31 -31
- package/lib/esm/pointcloud/format/opc/AttributeMask.d.ts +30 -30
- package/lib/esm/pointcloud/format/opc/AttributeMask.js +43 -43
- package/lib/esm/pointcloud/format/opc/AttributeReader.d.ts +63 -63
- package/lib/esm/pointcloud/format/opc/AttributeReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/AttributeReader.js +20 -20
- package/lib/esm/pointcloud/format/opc/BlockRecord.d.ts +54 -54
- package/lib/esm/pointcloud/format/opc/BlockRecord.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/BlockRecord.js +81 -80
- package/lib/esm/pointcloud/format/opc/BlockRecord.js.map +1 -1
- package/lib/esm/pointcloud/format/opc/ContainerFile.d.ts +85 -85
- package/lib/esm/pointcloud/format/opc/ContainerFile.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/ContainerFile.js +196 -195
- package/lib/esm/pointcloud/format/opc/ContainerFile.js.map +1 -1
- package/lib/esm/pointcloud/format/opc/ContainerFilePart.d.ts +55 -55
- package/lib/esm/pointcloud/format/opc/ContainerFilePart.js +71 -71
- package/lib/esm/pointcloud/format/opc/DirectoryReader.d.ts +75 -75
- package/lib/esm/pointcloud/format/opc/DirectoryReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/DirectoryReader.js +165 -165
- package/lib/esm/pointcloud/format/opc/DirectoryRecord.d.ts +59 -59
- package/lib/esm/pointcloud/format/opc/DirectoryRecord.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/DirectoryRecord.js +85 -85
- package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.d.ts +106 -106
- package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.js +193 -193
- package/lib/esm/pointcloud/format/opc/FileAccess.d.ts +39 -39
- package/lib/esm/pointcloud/format/opc/FileAccess.js +44 -44
- package/lib/esm/pointcloud/format/opc/FileReader.d.ts +118 -118
- package/lib/esm/pointcloud/format/opc/FileReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/FileReader.js +245 -244
- package/lib/esm/pointcloud/format/opc/FileReader.js.map +1 -1
- package/lib/esm/pointcloud/format/opc/FileRecord.d.ts +89 -89
- package/lib/esm/pointcloud/format/opc/FileRecord.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/FileRecord.js +121 -121
- package/lib/esm/pointcloud/format/opc/GeometryReader.d.ts +79 -79
- package/lib/esm/pointcloud/format/opc/GeometryReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/GeometryReader.js +160 -159
- package/lib/esm/pointcloud/format/opc/GeometryReader.js.map +1 -1
- package/lib/esm/pointcloud/format/opc/GeometryRecord.d.ts +53 -53
- package/lib/esm/pointcloud/format/opc/GeometryRecord.js +103 -103
- package/lib/esm/pointcloud/format/opc/OPCReader.d.ts +157 -157
- package/lib/esm/pointcloud/format/opc/OPCReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/OPCReader.js +315 -315
- package/lib/esm/pointcloud/format/opc/OPCReader.js.map +1 -1
- package/lib/esm/pointcloud/format/opc/PointReader.d.ts +72 -72
- package/lib/esm/pointcloud/format/opc/PointReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/PointReader.js +148 -148
- package/lib/esm/pointcloud/format/opc/TileReadBuffer.d.ts +63 -63
- package/lib/esm/pointcloud/format/opc/TileReadBuffer.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/TileReadBuffer.js +88 -88
- package/lib/esm/pointcloud/format/opc/TileRecord.d.ts +88 -88
- package/lib/esm/pointcloud/format/opc/TileRecord.d.ts.map +1 -1
- package/lib/esm/pointcloud/format/opc/TileRecord.js +158 -157
- package/lib/esm/pointcloud/format/opc/TileRecord.js.map +1 -1
- package/lib/esm/pointcloud/model/AttributeTypes.d.ts +37 -37
- package/lib/esm/pointcloud/model/AttributeTypes.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/AttributeTypes.js +61 -60
- package/lib/esm/pointcloud/model/AttributeTypes.js.map +1 -1
- package/lib/esm/pointcloud/model/AttributeValue.d.ts +247 -247
- package/lib/esm/pointcloud/model/AttributeValue.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/AttributeValue.js +505 -504
- package/lib/esm/pointcloud/model/AttributeValue.js.map +1 -1
- package/lib/esm/pointcloud/model/BlockIndex.d.ts +49 -49
- package/lib/esm/pointcloud/model/BlockIndex.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/BlockIndex.js +44 -44
- package/lib/esm/pointcloud/model/CloudPoint.d.ts +210 -210
- package/lib/esm/pointcloud/model/CloudPoint.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/CloudPoint.js +315 -314
- package/lib/esm/pointcloud/model/CloudPoint.js.map +1 -1
- package/lib/esm/pointcloud/model/Grid.d.ts +91 -91
- package/lib/esm/pointcloud/model/Grid.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/Grid.js +125 -125
- package/lib/esm/pointcloud/model/GridIndex.d.ts +66 -66
- package/lib/esm/pointcloud/model/GridIndex.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/GridIndex.js +89 -89
- package/lib/esm/pointcloud/model/PointAttribute.d.ts +208 -208
- package/lib/esm/pointcloud/model/PointAttribute.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/PointAttribute.js +370 -370
- package/lib/esm/pointcloud/model/PointCloudReader.d.ts +156 -156
- package/lib/esm/pointcloud/model/PointCloudReader.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/PointCloudReader.js +185 -185
- package/lib/esm/pointcloud/model/PointData.d.ts +17 -17
- package/lib/esm/pointcloud/model/PointData.js +20 -20
- package/lib/esm/pointcloud/model/PointDataRaw.d.ts +34 -34
- package/lib/esm/pointcloud/model/PointDataRaw.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/PointDataRaw.js +66 -65
- package/lib/esm/pointcloud/model/PointDataRaw.js.map +1 -1
- package/lib/esm/pointcloud/model/ReadRequest.d.ts +175 -175
- package/lib/esm/pointcloud/model/ReadRequest.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/ReadRequest.js +236 -235
- package/lib/esm/pointcloud/model/ReadRequest.js.map +1 -1
- package/lib/esm/pointcloud/model/StandardAttributes.d.ts +40 -40
- package/lib/esm/pointcloud/model/StandardAttributes.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/StandardAttributes.js +44 -43
- package/lib/esm/pointcloud/model/StandardAttributes.js.map +1 -1
- package/lib/esm/pointcloud/model/TileIndex.d.ts +47 -47
- package/lib/esm/pointcloud/model/TileIndex.d.ts.map +1 -1
- package/lib/esm/pointcloud/model/TileIndex.js +43 -43
- package/lib/esm/pointcloud/render/AViewRequest.d.ts +38 -38
- package/lib/esm/pointcloud/render/AViewRequest.d.ts.map +1 -1
- package/lib/esm/pointcloud/render/AViewRequest.js +20 -20
- package/lib/esm/pointcloud/render/Block.d.ts +67 -67
- package/lib/esm/pointcloud/render/Block.js +115 -115
- package/lib/esm/pointcloud/render/DataManager.d.ts +136 -136
- package/lib/esm/pointcloud/render/DataManager.d.ts.map +1 -1
- package/lib/esm/pointcloud/render/DataManager.js +339 -338
- package/lib/esm/pointcloud/render/DataManager.js.map +1 -1
- package/lib/esm/pointcloud/render/FrameData.d.ts +30 -30
- package/lib/esm/pointcloud/render/FrameData.js +35 -35
- package/lib/esm/pointcloud/render/Level.d.ts +90 -90
- package/lib/esm/pointcloud/render/Level.d.ts.map +1 -1
- package/lib/esm/pointcloud/render/Level.js +115 -115
- package/lib/esm/pointcloud/render/TileLoadSorter.d.ts +60 -60
- package/lib/esm/pointcloud/render/TileLoadSorter.d.ts.map +1 -1
- package/lib/esm/pointcloud/render/TileLoadSorter.js +96 -95
- package/lib/esm/pointcloud/render/TileLoadSorter.js.map +1 -1
- package/lib/esm/pointcloud/render/ViewTree.d.ts +113 -113
- package/lib/esm/pointcloud/render/ViewTree.d.ts.map +1 -1
- package/lib/esm/pointcloud/render/ViewTree.js +360 -359
- package/lib/esm/pointcloud/render/ViewTree.js.map +1 -1
- package/lib/esm/spatial/crs/CRSEngine.d.ts +55 -55
- package/lib/esm/spatial/crs/CRSEngine.js +89 -89
- package/lib/esm/spatial/crs/CRSManager.d.ts +49 -49
- package/lib/esm/spatial/crs/CRSManager.js +106 -105
- package/lib/esm/spatial/crs/CRSManager.js.map +1 -1
- package/lib/esm/spatial/ecrs/Axis.d.ts +77 -77
- package/lib/esm/spatial/ecrs/Axis.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/Axis.js +89 -89
- package/lib/esm/spatial/ecrs/CRS.d.ts +447 -447
- package/lib/esm/spatial/ecrs/CRS.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/CRS.js +927 -926
- package/lib/esm/spatial/ecrs/CRS.js.map +1 -1
- package/lib/esm/spatial/ecrs/CoordinateSystem.d.ts +142 -142
- package/lib/esm/spatial/ecrs/CoordinateSystem.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/CoordinateSystem.js +323 -322
- package/lib/esm/spatial/ecrs/CoordinateSystem.js.map +1 -1
- package/lib/esm/spatial/ecrs/DataFileUnit.d.ts +10 -10
- package/lib/esm/spatial/ecrs/DataFileUnit.js +101 -100
- package/lib/esm/spatial/ecrs/DataFileUnit.js.map +1 -1
- package/lib/esm/spatial/ecrs/Datum.d.ts +111 -111
- package/lib/esm/spatial/ecrs/Datum.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/Datum.js +163 -162
- package/lib/esm/spatial/ecrs/Datum.js.map +1 -1
- package/lib/esm/spatial/ecrs/Ellipsoid.d.ts +188 -188
- package/lib/esm/spatial/ecrs/Ellipsoid.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/Ellipsoid.js +332 -332
- package/lib/esm/spatial/ecrs/OnlineEngine.d.ts +48 -48
- package/lib/esm/spatial/ecrs/OnlineEngine.js +98 -98
- package/lib/esm/spatial/ecrs/OnlineEngine.js.map +1 -1
- package/lib/esm/spatial/ecrs/OnlineRegistry.d.ts +37 -37
- package/lib/esm/spatial/ecrs/OnlineRegistry.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/OnlineRegistry.js +73 -72
- package/lib/esm/spatial/ecrs/OnlineRegistry.js.map +1 -1
- package/lib/esm/spatial/ecrs/Operation.d.ts +191 -191
- package/lib/esm/spatial/ecrs/Operation.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/Operation.js +342 -341
- package/lib/esm/spatial/ecrs/Operation.js.map +1 -1
- package/lib/esm/spatial/ecrs/OperationMethod.d.ts +71 -71
- package/lib/esm/spatial/ecrs/OperationMethod.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/OperationMethod.js +71 -71
- package/lib/esm/spatial/ecrs/ParameterValue.d.ts +49 -49
- package/lib/esm/spatial/ecrs/ParameterValue.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/ParameterValue.js +61 -61
- package/lib/esm/spatial/ecrs/ParameterValueList.d.ts +72 -72
- package/lib/esm/spatial/ecrs/ParameterValueList.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/ParameterValueList.js +116 -116
- package/lib/esm/spatial/ecrs/PrimeMeridian.d.ts +78 -78
- package/lib/esm/spatial/ecrs/PrimeMeridian.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/PrimeMeridian.js +104 -104
- package/lib/esm/spatial/ecrs/Registry.d.ts +109 -109
- package/lib/esm/spatial/ecrs/Registry.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/Registry.js +204 -203
- package/lib/esm/spatial/ecrs/Registry.js.map +1 -1
- package/lib/esm/spatial/ecrs/Transform.d.ts +77 -77
- package/lib/esm/spatial/ecrs/Transform.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/Transform.js +393 -392
- package/lib/esm/spatial/ecrs/Transform.js.map +1 -1
- package/lib/esm/spatial/ecrs/Unit.d.ts +170 -170
- package/lib/esm/spatial/ecrs/Unit.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/Unit.js +333 -332
- package/lib/esm/spatial/ecrs/Unit.js.map +1 -1
- package/lib/esm/spatial/ecrs/VerticalModel.d.ts +69 -69
- package/lib/esm/spatial/ecrs/VerticalModel.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/VerticalModel.js +84 -84
- package/lib/esm/spatial/ecrs/WellKnownText.d.ts +153 -153
- package/lib/esm/spatial/ecrs/WellKnownText.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/WellKnownText.js +491 -490
- package/lib/esm/spatial/ecrs/WellKnownText.js.map +1 -1
- package/lib/esm/spatial/ecrs/WellKnownTextNode.d.ts +69 -69
- package/lib/esm/spatial/ecrs/WellKnownTextNode.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/WellKnownTextNode.js +124 -124
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.d.ts +101 -101
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.js +159 -158
- package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts +79 -79
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.js +122 -121
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts +47 -47
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js +70 -69
- package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.d.ts +72 -72
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.js +126 -125
- package/lib/esm/spatial/ecrs/projection/LambertConical1SP.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.d.ts +120 -120
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.js +176 -175
- package/lib/esm/spatial/ecrs/projection/LambertConical2SP.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.d.ts +73 -73
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.js +109 -108
- package/lib/esm/spatial/ecrs/projection/Mercator1SP.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.d.ts +96 -96
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.js +170 -169
- package/lib/esm/spatial/ecrs/projection/ObliqueMercator.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.d.ts +123 -123
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.js +205 -204
- package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.js.map +1 -1
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.d.ts +108 -108
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.js +180 -179
- package/lib/esm/spatial/ecrs/projection/TransverseMercator.js.map +1 -1
- package/lib/esm/spatial/ecrs/transformation/PositionVector.d.ts +90 -90
- package/lib/esm/spatial/ecrs/transformation/PositionVector.d.ts.map +1 -1
- package/lib/esm/spatial/ecrs/transformation/PositionVector.js +127 -126
- package/lib/esm/spatial/ecrs/transformation/PositionVector.js.map +1 -1
- package/lib/esm/spatial/geom/Bounds.d.ts +33 -33
- package/lib/esm/spatial/geom/Bounds.d.ts.map +1 -1
- package/lib/esm/spatial/geom/Bounds.js +152 -152
- package/lib/esm/spatial/geom/Coordinate.d.ts +61 -61
- package/lib/esm/spatial/geom/Coordinate.d.ts.map +1 -1
- package/lib/esm/spatial/geom/Coordinate.js +182 -182
- package/lib/esm/spatial/geom/Line.d.ts +225 -225
- package/lib/esm/spatial/geom/Line.d.ts.map +1 -1
- package/lib/esm/spatial/geom/Line.js +428 -428
- package/lib/esm/spatial/geom/Transform.d.ts +340 -340
- package/lib/esm/spatial/geom/Transform.d.ts.map +1 -1
- package/lib/esm/spatial/geom/Transform.js +744 -744
- package/lib/esm/system/buffer/ABuffer.d.ts +51 -51
- package/lib/esm/system/buffer/ABuffer.d.ts.map +1 -1
- package/lib/esm/system/buffer/ABuffer.js +86 -86
- package/lib/esm/system/buffer/Float32Buffer.d.ts +46 -46
- package/lib/esm/system/buffer/Float32Buffer.d.ts.map +1 -1
- package/lib/esm/system/buffer/Float32Buffer.js +57 -56
- package/lib/esm/system/buffer/Float32Buffer.js.map +1 -1
- package/lib/esm/system/buffer/LittleEndian.d.ts +149 -149
- package/lib/esm/system/buffer/LittleEndian.d.ts.map +1 -1
- package/lib/esm/system/buffer/LittleEndian.js +299 -299
- package/lib/esm/system/buffer/Uint16Buffer.d.ts +49 -49
- package/lib/esm/system/buffer/Uint16Buffer.d.ts.map +1 -1
- package/lib/esm/system/buffer/Uint16Buffer.js +62 -61
- package/lib/esm/system/buffer/Uint16Buffer.js.map +1 -1
- package/lib/esm/system/buffer/Uint8Buffer.d.ts +49 -49
- package/lib/esm/system/buffer/Uint8Buffer.d.ts.map +1 -1
- package/lib/esm/system/buffer/Uint8Buffer.js +62 -61
- package/lib/esm/system/buffer/Uint8Buffer.js.map +1 -1
- package/lib/esm/system/collection/AList.d.ts +30 -30
- package/lib/esm/system/collection/AList.d.ts.map +1 -1
- package/lib/esm/system/collection/AList.js +66 -66
- package/lib/esm/system/collection/IntMap.d.ts +18 -18
- package/lib/esm/system/collection/IntMap.d.ts.map +1 -1
- package/lib/esm/system/collection/IntMap.js +31 -31
- package/lib/esm/system/collection/StringMap.d.ts +26 -26
- package/lib/esm/system/collection/StringMap.d.ts.map +1 -1
- package/lib/esm/system/collection/StringMap.js +59 -59
- package/lib/esm/system/io/ABufferInStream.d.ts +29 -29
- package/lib/esm/system/io/ABufferInStream.d.ts.map +1 -1
- package/lib/esm/system/io/ABufferInStream.js +42 -42
- package/lib/esm/system/io/InStream.d.ts +23 -23
- package/lib/esm/system/io/InStream.d.ts.map +1 -1
- package/lib/esm/system/io/InStream.js +30 -30
- package/lib/esm/system/io/OutStream.d.ts +23 -23
- package/lib/esm/system/io/OutStream.d.ts.map +1 -1
- package/lib/esm/system/io/OutStream.js +29 -29
- package/lib/esm/system/runtime/ALong.d.ts +329 -329
- package/lib/esm/system/runtime/ALong.d.ts.map +1 -1
- package/lib/esm/system/runtime/ALong.js +684 -683
- package/lib/esm/system/runtime/ALong.js.map +1 -1
- package/lib/esm/system/runtime/ASystem.d.ts +14 -14
- package/lib/esm/system/runtime/ASystem.js +28 -27
- package/lib/esm/system/runtime/ASystem.js.map +1 -1
- package/lib/esm/system/runtime/Downloader.d.ts +17 -17
- package/lib/esm/system/runtime/Downloader.js +35 -34
- package/lib/esm/system/runtime/Downloader.js.map +1 -1
- package/lib/esm/system/runtime/DownloaderNode.d.ts +18 -18
- package/lib/esm/system/runtime/DownloaderNode.js +125 -125
- package/lib/esm/system/runtime/DownloaderXhr.d.ts +18 -18
- package/lib/esm/system/runtime/DownloaderXhr.js +127 -127
- package/lib/esm/system/runtime/Message.d.ts +16 -16
- package/lib/esm/system/runtime/Message.js +36 -35
- package/lib/esm/system/runtime/Message.js.map +1 -1
- package/lib/esm/system/runtime/Numbers.d.ts +34 -34
- package/lib/esm/system/runtime/Numbers.d.ts.map +1 -1
- package/lib/esm/system/runtime/Numbers.js +84 -83
- package/lib/esm/system/runtime/Numbers.js.map +1 -1
- package/lib/esm/system/runtime/Strings.d.ts +49 -49
- package/lib/esm/system/runtime/Strings.d.ts.map +1 -1
- package/lib/esm/system/runtime/Strings.js +185 -184
- package/lib/esm/system/runtime/Strings.js.map +1 -1
- package/lib/esm/system/runtime/iComparator.d.ts +12 -12
- package/lib/esm/system/runtime/iComparator.d.ts.map +1 -1
- package/lib/esm/system/runtime/iComparator.js +8 -8
- package/lib/esm/system/storage/CacheList.d.ts +39 -39
- package/lib/esm/system/storage/CacheList.d.ts.map +1 -1
- package/lib/esm/system/storage/CacheList.js +76 -76
- package/lib/esm/system/storage/CachedItem.d.ts +21 -21
- package/lib/esm/system/storage/CachedItem.d.ts.map +1 -1
- package/lib/esm/system/storage/CachedItem.js +21 -21
- package/lib/esm/system/storage/ContentLoader.d.ts +64 -64
- package/lib/esm/system/storage/ContentLoader.d.ts.map +1 -1
- package/lib/esm/system/storage/ContentLoader.js +92 -91
- package/lib/esm/system/storage/ContentLoader.js.map +1 -1
- package/lib/esm/system/storage/FileContent.d.ts +19 -19
- package/lib/esm/system/storage/FileContent.js +20 -20
- package/lib/esm/system/storage/FileRange.d.ts +20 -20
- package/lib/esm/system/storage/FileRange.d.ts.map +1 -1
- package/lib/esm/system/storage/FileRange.js +20 -20
- package/lib/esm/system/storage/FileStorage.d.ts +44 -44
- package/lib/esm/system/storage/FileStorage.d.ts.map +1 -1
- package/lib/esm/system/storage/FileStorage.js +58 -58
- package/lib/esm/system/storage/NodeFS.d.ts +41 -41
- package/lib/esm/system/storage/NodeFS.d.ts.map +1 -1
- package/lib/esm/system/storage/NodeFS.js +75 -75
- package/lib/esm/system/storage/PageCachedFile.d.ts +54 -54
- package/lib/esm/system/storage/PageCachedFile.d.ts.map +1 -1
- package/lib/esm/system/storage/PageCachedFile.js +161 -161
- package/lib/esm/system/storage/UrlFS.d.ts +53 -53
- package/lib/esm/system/storage/UrlFS.d.ts.map +1 -1
- package/lib/esm/system/storage/UrlFS.js +110 -110
- package/lib/esm/system/storage/UrlFS.js.map +1 -1
- package/package.json +9 -9
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module OrbitGT
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { AList } from "../../../system/collection/AList";
|
|
6
|
-
import { ALong } from "../../../system/runtime/ALong";
|
|
7
|
-
import { FileStorage } from "../../../system/storage/FileStorage";
|
|
8
|
-
import { ContainerFilePart } from "./ContainerFilePart";
|
|
9
|
-
/**
|
|
10
|
-
* Class ContainerFile defines a single file that contains multiple internal parts.
|
|
11
|
-
*
|
|
12
|
-
* @version 1.0 January 2014
|
|
13
|
-
*/
|
|
14
|
-
/** @internal */
|
|
15
|
-
export declare class ContainerFile {
|
|
16
|
-
/** The name of this module */
|
|
17
|
-
private static readonly MODULE;
|
|
18
|
-
/** The name of the file */
|
|
19
|
-
private _fileName;
|
|
20
|
-
/** The length of the file */
|
|
21
|
-
private _fileLength;
|
|
22
|
-
/** The format */
|
|
23
|
-
private _format;
|
|
24
|
-
/** The parts in the file */
|
|
25
|
-
private _parts;
|
|
26
|
-
/**
|
|
27
|
-
* Create a new container file.
|
|
28
|
-
* @param fileName the name of the file.
|
|
29
|
-
* @param fileLength the length of the file.
|
|
30
|
-
* @param format the format.
|
|
31
|
-
* @param parts the parts in the file.
|
|
32
|
-
*/
|
|
33
|
-
constructor(fileName: string, fileLength: ALong, format: string, parts: AList<ContainerFilePart>);
|
|
34
|
-
/**
|
|
35
|
-
* Close the container file.
|
|
36
|
-
* @param closeFileAccess close all file access?
|
|
37
|
-
*/
|
|
38
|
-
close(closeFileAccess: boolean): void;
|
|
39
|
-
/**
|
|
40
|
-
* Get the name of the file.
|
|
41
|
-
* @return the name of the file.
|
|
42
|
-
*/
|
|
43
|
-
getFileName(): string;
|
|
44
|
-
/**
|
|
45
|
-
* Get the length of the file.
|
|
46
|
-
* @return the length of the file.
|
|
47
|
-
*/
|
|
48
|
-
getFileLength(): ALong;
|
|
49
|
-
/**
|
|
50
|
-
* Get the format.
|
|
51
|
-
* @return the format.
|
|
52
|
-
*/
|
|
53
|
-
getFormat(): string;
|
|
54
|
-
/**
|
|
55
|
-
* Get the number of parts.
|
|
56
|
-
* @return the number of parts.
|
|
57
|
-
*/
|
|
58
|
-
getPartCount(): int32;
|
|
59
|
-
/**
|
|
60
|
-
* Get the list of parts.
|
|
61
|
-
* @return the list of parts.
|
|
62
|
-
*/
|
|
63
|
-
getParts(): AList<ContainerFilePart>;
|
|
64
|
-
/**
|
|
65
|
-
* Get a part.
|
|
66
|
-
* @param name the name of the part.
|
|
67
|
-
* @return the part (null if not found).
|
|
68
|
-
*/
|
|
69
|
-
getPart(name: string): ContainerFilePart;
|
|
70
|
-
/**
|
|
71
|
-
* Check if the magic marker is found.
|
|
72
|
-
* @param input the input stream.
|
|
73
|
-
* @param format the 4-character identifier of the format.
|
|
74
|
-
* @return true if found, false if not.
|
|
75
|
-
*/
|
|
76
|
-
private static checkMarker;
|
|
77
|
-
/**
|
|
78
|
-
* Read the parts of a container file.
|
|
79
|
-
* @param containerFileName the name of the container file.
|
|
80
|
-
* @param format the 4-character identifier of the format.
|
|
81
|
-
* @return the container file.
|
|
82
|
-
*/
|
|
83
|
-
static read(fileStorage: FileStorage, containerFileName: string, format: string): Promise<ContainerFile>;
|
|
84
|
-
}
|
|
85
|
-
export {};
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module OrbitGT
|
|
3
|
+
*/
|
|
4
|
+
type int32 = number;
|
|
5
|
+
import { AList } from "../../../system/collection/AList";
|
|
6
|
+
import { ALong } from "../../../system/runtime/ALong";
|
|
7
|
+
import { FileStorage } from "../../../system/storage/FileStorage";
|
|
8
|
+
import { ContainerFilePart } from "./ContainerFilePart";
|
|
9
|
+
/**
|
|
10
|
+
* Class ContainerFile defines a single file that contains multiple internal parts.
|
|
11
|
+
*
|
|
12
|
+
* @version 1.0 January 2014
|
|
13
|
+
*/
|
|
14
|
+
/** @internal */
|
|
15
|
+
export declare class ContainerFile {
|
|
16
|
+
/** The name of this module */
|
|
17
|
+
private static readonly MODULE;
|
|
18
|
+
/** The name of the file */
|
|
19
|
+
private _fileName;
|
|
20
|
+
/** The length of the file */
|
|
21
|
+
private _fileLength;
|
|
22
|
+
/** The format */
|
|
23
|
+
private _format;
|
|
24
|
+
/** The parts in the file */
|
|
25
|
+
private _parts;
|
|
26
|
+
/**
|
|
27
|
+
* Create a new container file.
|
|
28
|
+
* @param fileName the name of the file.
|
|
29
|
+
* @param fileLength the length of the file.
|
|
30
|
+
* @param format the format.
|
|
31
|
+
* @param parts the parts in the file.
|
|
32
|
+
*/
|
|
33
|
+
constructor(fileName: string, fileLength: ALong, format: string, parts: AList<ContainerFilePart>);
|
|
34
|
+
/**
|
|
35
|
+
* Close the container file.
|
|
36
|
+
* @param closeFileAccess close all file access?
|
|
37
|
+
*/
|
|
38
|
+
close(closeFileAccess: boolean): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get the name of the file.
|
|
41
|
+
* @return the name of the file.
|
|
42
|
+
*/
|
|
43
|
+
getFileName(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Get the length of the file.
|
|
46
|
+
* @return the length of the file.
|
|
47
|
+
*/
|
|
48
|
+
getFileLength(): ALong;
|
|
49
|
+
/**
|
|
50
|
+
* Get the format.
|
|
51
|
+
* @return the format.
|
|
52
|
+
*/
|
|
53
|
+
getFormat(): string;
|
|
54
|
+
/**
|
|
55
|
+
* Get the number of parts.
|
|
56
|
+
* @return the number of parts.
|
|
57
|
+
*/
|
|
58
|
+
getPartCount(): int32;
|
|
59
|
+
/**
|
|
60
|
+
* Get the list of parts.
|
|
61
|
+
* @return the list of parts.
|
|
62
|
+
*/
|
|
63
|
+
getParts(): AList<ContainerFilePart>;
|
|
64
|
+
/**
|
|
65
|
+
* Get a part.
|
|
66
|
+
* @param name the name of the part.
|
|
67
|
+
* @return the part (null if not found).
|
|
68
|
+
*/
|
|
69
|
+
getPart(name: string): ContainerFilePart;
|
|
70
|
+
/**
|
|
71
|
+
* Check if the magic marker is found.
|
|
72
|
+
* @param input the input stream.
|
|
73
|
+
* @param format the 4-character identifier of the format.
|
|
74
|
+
* @return true if found, false if not.
|
|
75
|
+
*/
|
|
76
|
+
private static checkMarker;
|
|
77
|
+
/**
|
|
78
|
+
* Read the parts of a container file.
|
|
79
|
+
* @param containerFileName the name of the container file.
|
|
80
|
+
* @param format the 4-character identifier of the format.
|
|
81
|
+
* @return the container file.
|
|
82
|
+
*/
|
|
83
|
+
static read(fileStorage: FileStorage, containerFileName: string, format: string): Promise<ContainerFile>;
|
|
84
|
+
}
|
|
85
|
+
export {};
|
|
86
86
|
//# sourceMappingURL=ContainerFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerFile.d.ts","sourceRoot":"","sources":["../../../../../src/pointcloud/format/opc/ContainerFile.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH,
|
|
1
|
+
{"version":3,"file":"ContainerFile.d.ts","sourceRoot":"","sources":["../../../../../src/pointcloud/format/opc/ContainerFile.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH,KAAK,KAAK,GAAG,MAAM,CAAC;AAOpB,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAGzD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAItD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;GAIG;AACH,gBAAgB;AAChB,qBAAa,aAAa;IACtB,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAEzD,2BAA2B;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,6BAA6B;IAC7B,OAAO,CAAC,WAAW,CAAQ;IAC3B,iBAAiB;IACjB,OAAO,CAAC,OAAO,CAAS;IACxB,4BAA4B;IAC5B,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;;OAMG;gBACgB,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAOvG;;;OAGG;IACI,KAAK,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI;IAK5C;;;OAGG;IACI,WAAW,IAAI,MAAM;IAI5B;;;OAGG;IACI,aAAa,IAAI,KAAK;IAI7B;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;;OAGG;IACI,YAAY,IAAI,KAAK;IAI5B;;;OAGG;IACI,QAAQ,IAAI,KAAK,CAAC,iBAAiB,CAAC;IAI3C;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;IAW/C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAY1B;;;;;OAKG;WACiB,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAmExH"}
|
|
@@ -1,196 +1,197 @@
|
|
|
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 { LittleEndian } from "../../../system/buffer/LittleEndian";
|
|
9
|
-
import { AList } from "../../../system/collection/AList";
|
|
10
|
-
import { ABufferInStream } from "../../../system/io/ABufferInStream";
|
|
11
|
-
import { ALong } from "../../../system/runtime/ALong";
|
|
12
|
-
import { ASystem } from "../../../system/runtime/ASystem";
|
|
13
|
-
import { Message } from "../../../system/runtime/Message";
|
|
14
|
-
import { Strings } from "../../../system/runtime/Strings";
|
|
15
|
-
import { ContainerFilePart } from "./ContainerFilePart";
|
|
16
|
-
import { FileAccess } from "./FileAccess";
|
|
17
|
-
/**
|
|
18
|
-
* Class ContainerFile defines a single file that contains multiple internal parts.
|
|
19
|
-
*
|
|
20
|
-
* @version 1.0 January 2014
|
|
21
|
-
*/
|
|
22
|
-
/** @internal */
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Create a new container file.
|
|
26
|
-
* @param fileName the name of the file.
|
|
27
|
-
* @param fileLength the length of the file.
|
|
28
|
-
* @param format the format.
|
|
29
|
-
* @param parts the parts in the file.
|
|
30
|
-
*/
|
|
31
|
-
constructor(fileName, fileLength, format, parts) {
|
|
32
|
-
this._fileName = fileName;
|
|
33
|
-
this._fileLength = fileLength;
|
|
34
|
-
this._format = format;
|
|
35
|
-
this._parts = parts;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Close the container file.
|
|
39
|
-
* @param closeFileAccess close all file access?
|
|
40
|
-
*/
|
|
41
|
-
close(closeFileAccess) {
|
|
42
|
-
if (closeFileAccess)
|
|
43
|
-
for (let i = 0; i < this._parts.size(); i++)
|
|
44
|
-
this._parts.get(i).getFileAccess().close();
|
|
45
|
-
this._parts.clear();
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Get the name of the file.
|
|
49
|
-
* @return the name of the file.
|
|
50
|
-
*/
|
|
51
|
-
getFileName() {
|
|
52
|
-
return this._fileName;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Get the length of the file.
|
|
56
|
-
* @return the length of the file.
|
|
57
|
-
*/
|
|
58
|
-
getFileLength() {
|
|
59
|
-
return this._fileLength;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get the format.
|
|
63
|
-
* @return the format.
|
|
64
|
-
*/
|
|
65
|
-
getFormat() {
|
|
66
|
-
return this._format;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Get the number of parts.
|
|
70
|
-
* @return the number of parts.
|
|
71
|
-
*/
|
|
72
|
-
getPartCount() {
|
|
73
|
-
return this._parts.size();
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get the list of parts.
|
|
77
|
-
* @return the list of parts.
|
|
78
|
-
*/
|
|
79
|
-
getParts() {
|
|
80
|
-
return this._parts;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Get a part.
|
|
84
|
-
* @param name the name of the part.
|
|
85
|
-
* @return the part (null if not found).
|
|
86
|
-
*/
|
|
87
|
-
getPart(name) {
|
|
88
|
-
/* Check all parts */
|
|
89
|
-
for (let i = 0; i < this._parts.size(); i++) {
|
|
90
|
-
/* Check the next part */
|
|
91
|
-
let part = this._parts.get(i);
|
|
92
|
-
if (Strings.equals(part.getName(), name))
|
|
93
|
-
return part;
|
|
94
|
-
}
|
|
95
|
-
/* Not found */
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Check if the magic marker is found.
|
|
100
|
-
* @param input the input stream.
|
|
101
|
-
* @param format the 4-character identifier of the format.
|
|
102
|
-
* @return true if found, false if not.
|
|
103
|
-
*/
|
|
104
|
-
static checkMarker(input, format) {
|
|
105
|
-
let m0 = LittleEndian.readStreamByte(input);
|
|
106
|
-
let m1 = LittleEndian.readStreamByte(input);
|
|
107
|
-
let m2 = LittleEndian.readStreamByte(input);
|
|
108
|
-
let m3 = LittleEndian.readStreamByte(input);
|
|
109
|
-
if (m0 != Strings.getCharAt(format, 0))
|
|
110
|
-
return false;
|
|
111
|
-
if (m1 != Strings.getCharAt(format, 1))
|
|
112
|
-
return false;
|
|
113
|
-
if (m2 != Strings.getCharAt(format, 2))
|
|
114
|
-
return false;
|
|
115
|
-
if (m3 != Strings.getCharAt(format, 3))
|
|
116
|
-
return false;
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Read the parts of a container file.
|
|
121
|
-
* @param containerFileName the name of the container file.
|
|
122
|
-
* @param format the 4-character identifier of the format.
|
|
123
|
-
* @return the container file.
|
|
124
|
-
*/
|
|
125
|
-
static async read(fileStorage, containerFileName, format) {
|
|
126
|
-
/* Existing file? */
|
|
127
|
-
Message.print(ContainerFile.MODULE, "Reading container file '" + containerFileName + "'");
|
|
128
|
-
let fileLength = await fileStorage.getFileLength(containerFileName);
|
|
129
|
-
if (fileLength.isNegative()) {
|
|
130
|
-
/* Abort */
|
|
131
|
-
Message.printWarning(ContainerFile.MODULE, "File not found");
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
/* Too short? */
|
|
135
|
-
if (fileLength.subInt(16).isNegative()) {
|
|
136
|
-
/* Fail */
|
|
137
|
-
ASystem.assert0(false, "Invalid container file '" + containerFileName + "' (too short)");
|
|
138
|
-
}
|
|
139
|
-
/* Read the file header */
|
|
140
|
-
let headerSize = 60 * 1024;
|
|
141
|
-
if (fileLength.subInt(headerSize).isNegative())
|
|
142
|
-
headerSize = fileLength.toInt();
|
|
143
|
-
let header = await fileStorage.readFilePart(containerFileName, ALong.ZERO, headerSize);
|
|
144
|
-
let headerInput = new ABufferInStream(header, 0, header.size());
|
|
145
|
-
/* Check the marker */
|
|
146
|
-
if (ContainerFile.checkMarker(headerInput, format) == false) {
|
|
147
|
-
/* Fail */
|
|
148
|
-
headerInput.close();
|
|
149
|
-
ASystem.assert0(false, "Invalid container file '" + containerFileName + "' (header marker)");
|
|
150
|
-
}
|
|
151
|
-
/* Check the version */
|
|
152
|
-
let version = LittleEndian.readStreamByte(headerInput);
|
|
153
|
-
if (version != 2) {
|
|
154
|
-
/* Fail */
|
|
155
|
-
headerInput.close();
|
|
156
|
-
ASystem.assert0(false, "Invalid container file '" + containerFileName + "' (version " + version + ")");
|
|
157
|
-
}
|
|
158
|
-
/* Reserved */
|
|
159
|
-
let r1 = LittleEndian.readStreamByte(headerInput);
|
|
160
|
-
let r2 = LittleEndian.readStreamByte(headerInput);
|
|
161
|
-
let r3 = LittleEndian.readStreamByte(headerInput);
|
|
162
|
-
/* Get the file count */
|
|
163
|
-
let fileCount = LittleEndian.readStreamInt(headerInput);
|
|
164
|
-
if (fileCount < 0) {
|
|
165
|
-
/* Fail */
|
|
166
|
-
headerInput.close();
|
|
167
|
-
ASystem.assert0(false, ContainerFile.MODULE + " : Invalid container file '" + containerFileName + "' (file count " + fileCount + ")");
|
|
168
|
-
}
|
|
169
|
-
/* Define the file access */
|
|
170
|
-
let fileAccess = new FileAccess(fileStorage, containerFileName, fileLength);
|
|
171
|
-
/* Read the parts */
|
|
172
|
-
let maxExtent = ALong.ZERO;
|
|
173
|
-
let parts = new AList();
|
|
174
|
-
for (let i = 0; i < fileCount; i++) {
|
|
175
|
-
/* Read the next file */
|
|
176
|
-
let partOffset = LittleEndian.readStreamLong(headerInput);
|
|
177
|
-
let partLength = LittleEndian.readStreamLong(headerInput);
|
|
178
|
-
let partName = LittleEndian.readStreamString(headerInput);
|
|
179
|
-
/* Add the part */
|
|
180
|
-
parts.add(new ContainerFilePart(partName, fileAccess, partOffset, partLength));
|
|
181
|
-
Message.print(ContainerFile.MODULE, "Found part '" + partName + "' offset " + partOffset.toDouble() + " size " + partLength.toDouble());
|
|
182
|
-
/* Update the maximum extent */
|
|
183
|
-
let partExtent = partOffset.add(partLength);
|
|
184
|
-
maxExtent = ALong.max(maxExtent, partExtent);
|
|
185
|
-
}
|
|
186
|
-
/* Done */
|
|
187
|
-
headerInput.close();
|
|
188
|
-
/* Return the container */
|
|
189
|
-
Message.print(ContainerFile.MODULE, "Found " + parts.size() + " parts, header size " + headerInput.getPosition());
|
|
190
|
-
Message.print(ContainerFile.MODULE, "File size is " + fileLength.toDouble() + ", max part extent is " + maxExtent.toDouble());
|
|
191
|
-
return new ContainerFile(containerFileName, fileLength, format, parts);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
/** The name of this module */
|
|
195
|
-
ContainerFile.MODULE = "ContainerFile";
|
|
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 { LittleEndian } from "../../../system/buffer/LittleEndian";
|
|
9
|
+
import { AList } from "../../../system/collection/AList";
|
|
10
|
+
import { ABufferInStream } from "../../../system/io/ABufferInStream";
|
|
11
|
+
import { ALong } from "../../../system/runtime/ALong";
|
|
12
|
+
import { ASystem } from "../../../system/runtime/ASystem";
|
|
13
|
+
import { Message } from "../../../system/runtime/Message";
|
|
14
|
+
import { Strings } from "../../../system/runtime/Strings";
|
|
15
|
+
import { ContainerFilePart } from "./ContainerFilePart";
|
|
16
|
+
import { FileAccess } from "./FileAccess";
|
|
17
|
+
/**
|
|
18
|
+
* Class ContainerFile defines a single file that contains multiple internal parts.
|
|
19
|
+
*
|
|
20
|
+
* @version 1.0 January 2014
|
|
21
|
+
*/
|
|
22
|
+
/** @internal */
|
|
23
|
+
class ContainerFile {
|
|
24
|
+
/**
|
|
25
|
+
* Create a new container file.
|
|
26
|
+
* @param fileName the name of the file.
|
|
27
|
+
* @param fileLength the length of the file.
|
|
28
|
+
* @param format the format.
|
|
29
|
+
* @param parts the parts in the file.
|
|
30
|
+
*/
|
|
31
|
+
constructor(fileName, fileLength, format, parts) {
|
|
32
|
+
this._fileName = fileName;
|
|
33
|
+
this._fileLength = fileLength;
|
|
34
|
+
this._format = format;
|
|
35
|
+
this._parts = parts;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Close the container file.
|
|
39
|
+
* @param closeFileAccess close all file access?
|
|
40
|
+
*/
|
|
41
|
+
close(closeFileAccess) {
|
|
42
|
+
if (closeFileAccess)
|
|
43
|
+
for (let i = 0; i < this._parts.size(); i++)
|
|
44
|
+
this._parts.get(i).getFileAccess().close();
|
|
45
|
+
this._parts.clear();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the name of the file.
|
|
49
|
+
* @return the name of the file.
|
|
50
|
+
*/
|
|
51
|
+
getFileName() {
|
|
52
|
+
return this._fileName;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get the length of the file.
|
|
56
|
+
* @return the length of the file.
|
|
57
|
+
*/
|
|
58
|
+
getFileLength() {
|
|
59
|
+
return this._fileLength;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the format.
|
|
63
|
+
* @return the format.
|
|
64
|
+
*/
|
|
65
|
+
getFormat() {
|
|
66
|
+
return this._format;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the number of parts.
|
|
70
|
+
* @return the number of parts.
|
|
71
|
+
*/
|
|
72
|
+
getPartCount() {
|
|
73
|
+
return this._parts.size();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get the list of parts.
|
|
77
|
+
* @return the list of parts.
|
|
78
|
+
*/
|
|
79
|
+
getParts() {
|
|
80
|
+
return this._parts;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get a part.
|
|
84
|
+
* @param name the name of the part.
|
|
85
|
+
* @return the part (null if not found).
|
|
86
|
+
*/
|
|
87
|
+
getPart(name) {
|
|
88
|
+
/* Check all parts */
|
|
89
|
+
for (let i = 0; i < this._parts.size(); i++) {
|
|
90
|
+
/* Check the next part */
|
|
91
|
+
let part = this._parts.get(i);
|
|
92
|
+
if (Strings.equals(part.getName(), name))
|
|
93
|
+
return part;
|
|
94
|
+
}
|
|
95
|
+
/* Not found */
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Check if the magic marker is found.
|
|
100
|
+
* @param input the input stream.
|
|
101
|
+
* @param format the 4-character identifier of the format.
|
|
102
|
+
* @return true if found, false if not.
|
|
103
|
+
*/
|
|
104
|
+
static checkMarker(input, format) {
|
|
105
|
+
let m0 = LittleEndian.readStreamByte(input);
|
|
106
|
+
let m1 = LittleEndian.readStreamByte(input);
|
|
107
|
+
let m2 = LittleEndian.readStreamByte(input);
|
|
108
|
+
let m3 = LittleEndian.readStreamByte(input);
|
|
109
|
+
if (m0 != Strings.getCharAt(format, 0))
|
|
110
|
+
return false;
|
|
111
|
+
if (m1 != Strings.getCharAt(format, 1))
|
|
112
|
+
return false;
|
|
113
|
+
if (m2 != Strings.getCharAt(format, 2))
|
|
114
|
+
return false;
|
|
115
|
+
if (m3 != Strings.getCharAt(format, 3))
|
|
116
|
+
return false;
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Read the parts of a container file.
|
|
121
|
+
* @param containerFileName the name of the container file.
|
|
122
|
+
* @param format the 4-character identifier of the format.
|
|
123
|
+
* @return the container file.
|
|
124
|
+
*/
|
|
125
|
+
static async read(fileStorage, containerFileName, format) {
|
|
126
|
+
/* Existing file? */
|
|
127
|
+
Message.print(ContainerFile.MODULE, "Reading container file '" + containerFileName + "'");
|
|
128
|
+
let fileLength = await fileStorage.getFileLength(containerFileName);
|
|
129
|
+
if (fileLength.isNegative()) {
|
|
130
|
+
/* Abort */
|
|
131
|
+
Message.printWarning(ContainerFile.MODULE, "File not found");
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
/* Too short? */
|
|
135
|
+
if (fileLength.subInt(16).isNegative()) {
|
|
136
|
+
/* Fail */
|
|
137
|
+
ASystem.assert0(false, "Invalid container file '" + containerFileName + "' (too short)");
|
|
138
|
+
}
|
|
139
|
+
/* Read the file header */
|
|
140
|
+
let headerSize = 60 * 1024;
|
|
141
|
+
if (fileLength.subInt(headerSize).isNegative())
|
|
142
|
+
headerSize = fileLength.toInt();
|
|
143
|
+
let header = await fileStorage.readFilePart(containerFileName, ALong.ZERO, headerSize);
|
|
144
|
+
let headerInput = new ABufferInStream(header, 0, header.size());
|
|
145
|
+
/* Check the marker */
|
|
146
|
+
if (ContainerFile.checkMarker(headerInput, format) == false) {
|
|
147
|
+
/* Fail */
|
|
148
|
+
headerInput.close();
|
|
149
|
+
ASystem.assert0(false, "Invalid container file '" + containerFileName + "' (header marker)");
|
|
150
|
+
}
|
|
151
|
+
/* Check the version */
|
|
152
|
+
let version = LittleEndian.readStreamByte(headerInput);
|
|
153
|
+
if (version != 2) {
|
|
154
|
+
/* Fail */
|
|
155
|
+
headerInput.close();
|
|
156
|
+
ASystem.assert0(false, "Invalid container file '" + containerFileName + "' (version " + version + ")");
|
|
157
|
+
}
|
|
158
|
+
/* Reserved */
|
|
159
|
+
let r1 = LittleEndian.readStreamByte(headerInput);
|
|
160
|
+
let r2 = LittleEndian.readStreamByte(headerInput);
|
|
161
|
+
let r3 = LittleEndian.readStreamByte(headerInput);
|
|
162
|
+
/* Get the file count */
|
|
163
|
+
let fileCount = LittleEndian.readStreamInt(headerInput);
|
|
164
|
+
if (fileCount < 0) {
|
|
165
|
+
/* Fail */
|
|
166
|
+
headerInput.close();
|
|
167
|
+
ASystem.assert0(false, ContainerFile.MODULE + " : Invalid container file '" + containerFileName + "' (file count " + fileCount + ")");
|
|
168
|
+
}
|
|
169
|
+
/* Define the file access */
|
|
170
|
+
let fileAccess = new FileAccess(fileStorage, containerFileName, fileLength);
|
|
171
|
+
/* Read the parts */
|
|
172
|
+
let maxExtent = ALong.ZERO;
|
|
173
|
+
let parts = new AList();
|
|
174
|
+
for (let i = 0; i < fileCount; i++) {
|
|
175
|
+
/* Read the next file */
|
|
176
|
+
let partOffset = LittleEndian.readStreamLong(headerInput);
|
|
177
|
+
let partLength = LittleEndian.readStreamLong(headerInput);
|
|
178
|
+
let partName = LittleEndian.readStreamString(headerInput);
|
|
179
|
+
/* Add the part */
|
|
180
|
+
parts.add(new ContainerFilePart(partName, fileAccess, partOffset, partLength));
|
|
181
|
+
Message.print(ContainerFile.MODULE, "Found part '" + partName + "' offset " + partOffset.toDouble() + " size " + partLength.toDouble());
|
|
182
|
+
/* Update the maximum extent */
|
|
183
|
+
let partExtent = partOffset.add(partLength);
|
|
184
|
+
maxExtent = ALong.max(maxExtent, partExtent);
|
|
185
|
+
}
|
|
186
|
+
/* Done */
|
|
187
|
+
headerInput.close();
|
|
188
|
+
/* Return the container */
|
|
189
|
+
Message.print(ContainerFile.MODULE, "Found " + parts.size() + " parts, header size " + headerInput.getPosition());
|
|
190
|
+
Message.print(ContainerFile.MODULE, "File size is " + fileLength.toDouble() + ", max part extent is " + maxExtent.toDouble());
|
|
191
|
+
return new ContainerFile(containerFileName, fileLength, format, parts);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/** The name of this module */
|
|
195
|
+
ContainerFile.MODULE = "ContainerFile";
|
|
196
|
+
export { ContainerFile };
|
|
196
197
|
//# sourceMappingURL=ContainerFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerFile.js","sourceRoot":"","sources":["../../../../../src/pointcloud/format/opc/ContainerFile.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.pointcloud.format.opc;\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\n\r\nimport { ABuffer } from \"../../../system/buffer/ABuffer\";\r\nimport { LittleEndian } from \"../../../system/buffer/LittleEndian\";\r\nimport { AList } from \"../../../system/collection/AList\";\r\nimport { ABufferInStream } from \"../../../system/io/ABufferInStream\";\r\nimport { InStream } from \"../../../system/io/InStream\";\r\nimport { ALong } from \"../../../system/runtime/ALong\";\r\nimport { ASystem } from \"../../../system/runtime/ASystem\";\r\nimport { Message } from \"../../../system/runtime/Message\";\r\nimport { Strings } from \"../../../system/runtime/Strings\";\r\nimport { FileStorage } from \"../../../system/storage/FileStorage\";\r\nimport { ContainerFilePart } from \"./ContainerFilePart\";\r\nimport { FileAccess } from \"./FileAccess\";\r\n\r\n/**\r\n * Class ContainerFile defines a single file that contains multiple internal parts.\r\n *\r\n * @version 1.0 January 2014\r\n */\r\n/** @internal */\r\nexport class ContainerFile {\r\n /** The name of this module */\r\n private static readonly MODULE: string = \"ContainerFile\";\r\n\r\n /** The name of the file */\r\n private _fileName: string;\r\n /** The length of the file */\r\n private _fileLength: ALong;\r\n /** The format */\r\n private _format: string;\r\n /** The parts in the file */\r\n private _parts: AList<ContainerFilePart>;\r\n\r\n /**\r\n * Create a new container file.\r\n * @param fileName the name of the file.\r\n * @param fileLength the length of the file.\r\n * @param format the format.\r\n * @param parts the parts in the file.\r\n */\r\n public constructor(fileName: string, fileLength: ALong, format: string, parts: AList<ContainerFilePart>) {\r\n this._fileName = fileName;\r\n this._fileLength = fileLength;\r\n this._format = format;\r\n this._parts = parts;\r\n }\r\n\r\n /**\r\n * Close the container file.\r\n * @param closeFileAccess close all file access?\r\n */\r\n public close(closeFileAccess: boolean): void {\r\n if (closeFileAccess) for (let i: number = 0; i < this._parts.size(); i++) this._parts.get(i).getFileAccess().close();\r\n this._parts.clear();\r\n }\r\n\r\n /**\r\n * Get the name of the file.\r\n * @return the name of the file.\r\n */\r\n public getFileName(): string {\r\n return this._fileName;\r\n }\r\n\r\n /**\r\n * Get the length of the file.\r\n * @return the length of the file.\r\n */\r\n public getFileLength(): ALong {\r\n return this._fileLength;\r\n }\r\n\r\n /**\r\n * Get the format.\r\n * @return the format.\r\n */\r\n public getFormat(): string {\r\n return this._format;\r\n }\r\n\r\n /**\r\n * Get the number of parts.\r\n * @return the number of parts.\r\n */\r\n public getPartCount(): int32 {\r\n return this._parts.size();\r\n }\r\n\r\n /**\r\n * Get the list of parts.\r\n * @return the list of parts.\r\n */\r\n public getParts(): AList<ContainerFilePart> {\r\n return this._parts;\r\n }\r\n\r\n /**\r\n * Get a part.\r\n * @param name the name of the part.\r\n * @return the part (null if not found).\r\n */\r\n public getPart(name: string): ContainerFilePart {\r\n /* Check all parts */\r\n for (let i: number = 0; i < this._parts.size(); i++) {\r\n /* Check the next part */\r\n let part: ContainerFilePart = this._parts.get(i);\r\n if (Strings.equals(part.getName(), name)) return part;\r\n }\r\n /* Not found */\r\n return null;\r\n }\r\n\r\n /**\r\n * Check if the magic marker is found.\r\n * @param input the input stream.\r\n * @param format the 4-character identifier of the format.\r\n * @return true if found, false if not.\r\n */\r\n private static checkMarker(input: InStream, format: string): boolean {\r\n let m0: int32 = LittleEndian.readStreamByte(input);\r\n let m1: int32 = LittleEndian.readStreamByte(input);\r\n let m2: int32 = LittleEndian.readStreamByte(input);\r\n let m3: int32 = LittleEndian.readStreamByte(input);\r\n if (m0 != Strings.getCharAt(format, 0)) return false;\r\n if (m1 != Strings.getCharAt(format, 1)) return false;\r\n if (m2 != Strings.getCharAt(format, 2)) return false;\r\n if (m3 != Strings.getCharAt(format, 3)) return false;\r\n return true;\r\n }\r\n\r\n /**\r\n * Read the parts of a container file.\r\n * @param containerFileName the name of the container file.\r\n * @param format the 4-character identifier of the format.\r\n * @return the container file.\r\n */\r\n public static async read(fileStorage: FileStorage, containerFileName: string, format: string): Promise<ContainerFile> {\r\n /* Existing file? */\r\n Message.print(ContainerFile.MODULE, \"Reading container file '\" + containerFileName + \"'\");\r\n let fileLength: ALong = await fileStorage.getFileLength(containerFileName);\r\n if (fileLength.isNegative()) {\r\n /* Abort */\r\n Message.printWarning(ContainerFile.MODULE, \"File not found\");\r\n return null;\r\n }\r\n /* Too short? */\r\n if (fileLength.subInt(16).isNegative()) {\r\n /* Fail */\r\n ASystem.assert0(false, \"Invalid container file '\" + containerFileName + \"' (too short)\");\r\n }\r\n /* Read the file header */\r\n let headerSize: int32 = 60 * 1024;\r\n if (fileLength.subInt(headerSize).isNegative()) headerSize = fileLength.toInt();\r\n let header: ABuffer = await fileStorage.readFilePart(containerFileName, ALong.ZERO, headerSize);\r\n let headerInput: ABufferInStream = new ABufferInStream(header, 0, header.size());\r\n /* Check the marker */\r\n if (ContainerFile.checkMarker(headerInput, format) == false) {\r\n /* Fail */\r\n headerInput.close();\r\n ASystem.assert0(false, \"Invalid container file '\" + containerFileName + \"' (header marker)\");\r\n }\r\n /* Check the version */\r\n let version: int32 = LittleEndian.readStreamByte(headerInput);\r\n if (version != 2) {\r\n /* Fail */\r\n headerInput.close();\r\n ASystem.assert0(false, \"Invalid container file '\" + containerFileName + \"' (version \" + version + \")\");\r\n }\r\n /* Reserved */\r\n let r1: int32 = LittleEndian.readStreamByte(headerInput);\r\n let r2: int32 = LittleEndian.readStreamByte(headerInput);\r\n let r3: int32 = LittleEndian.readStreamByte(headerInput);\r\n /* Get the file count */\r\n let fileCount: int32 = LittleEndian.readStreamInt(headerInput);\r\n if (fileCount < 0) {\r\n /* Fail */\r\n headerInput.close();\r\n ASystem.assert0(false, ContainerFile.MODULE + \" : Invalid container file '\" + containerFileName + \"' (file count \" + fileCount + \")\");\r\n }\r\n /* Define the file access */\r\n let fileAccess: FileAccess = new FileAccess(fileStorage, containerFileName, fileLength);\r\n /* Read the parts */\r\n let maxExtent: ALong = ALong.ZERO;\r\n let parts: AList<ContainerFilePart> = new AList<ContainerFilePart>();\r\n for (let i: number = 0; i < fileCount; i++) {\r\n /* Read the next file */\r\n let partOffset: ALong = LittleEndian.readStreamLong(headerInput);\r\n let partLength: ALong = LittleEndian.readStreamLong(headerInput);\r\n let partName: string = LittleEndian.readStreamString(headerInput);\r\n /* Add the part */\r\n parts.add(new ContainerFilePart(partName, fileAccess, partOffset, partLength));\r\n Message.print(ContainerFile.MODULE, \"Found part '\" + partName + \"' offset \" + partOffset.toDouble() + \" size \" + partLength.toDouble());\r\n /* Update the maximum extent */\r\n let partExtent: ALong = partOffset.add(partLength);\r\n maxExtent = ALong.max(maxExtent, partExtent);\r\n }\r\n /* Done */\r\n headerInput.close();\r\n /* Return the container */\r\n Message.print(ContainerFile.MODULE, \"Found \" + parts.size() + \" parts, header size \" + headerInput.getPosition());\r\n Message.print(ContainerFile.MODULE, \"File size is \" + fileLength.toDouble() + \", max part extent is \" + maxExtent.toDouble());\r\n return new ContainerFile(containerFileName, fileLength, format, parts);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ContainerFile.js","sourceRoot":"","sources":["../../../../../src/pointcloud/format/opc/ContainerFile.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAYH,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;GAIG;AACH,gBAAgB;AAChB,MAAa,aAAa;IAatB;;;;;;OAMG;IACH,YAAmB,QAAgB,EAAE,UAAiB,EAAE,MAAc,EAAE,KAA+B;QACnG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,eAAwB;QACjC,IAAI,eAAe;YAAE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC;QACrH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,aAAa;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,QAAQ;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,IAAY;QACvB,qBAAqB;QACrB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;YACjD,yBAAyB;YACzB,IAAI,IAAI,GAAsB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;SACzD;QACD,eAAe;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,WAAW,CAAC,KAAe,EAAE,MAAc;QACtD,IAAI,EAAE,GAAU,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,EAAE,GAAU,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,EAAE,GAAU,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,EAAE,GAAU,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAwB,EAAE,iBAAyB,EAAE,MAAc;QACxF,oBAAoB;QACpB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,0BAA0B,GAAG,iBAAiB,GAAG,GAAG,CAAC,CAAC;QAC1F,IAAI,UAAU,GAAU,MAAM,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC3E,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE;YACzB,WAAW;YACX,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;SACf;QACD,gBAAgB;QAChB,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE;YACpC,UAAU;YACV,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,iBAAiB,GAAG,eAAe,CAAC,CAAC;SAC5F;QACD,0BAA0B;QAC1B,IAAI,UAAU,GAAU,EAAE,GAAG,IAAI,CAAC;QAClC,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE;YAAE,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;QAChF,IAAI,MAAM,GAAY,MAAM,WAAW,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAChG,IAAI,WAAW,GAAoB,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,sBAAsB;QACtB,IAAI,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE;YACzD,UAAU;YACV,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,iBAAiB,GAAG,mBAAmB,CAAC,CAAC;SAChG;QACD,uBAAuB;QACvB,IAAI,OAAO,GAAU,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,OAAO,IAAI,CAAC,EAAE;YACd,UAAU;YACV,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,iBAAiB,GAAG,aAAa,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;SAC1G;QACD,cAAc;QACd,IAAI,EAAE,GAAU,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,EAAE,GAAU,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,EAAE,GAAU,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,wBAAwB;QACxB,IAAI,SAAS,GAAU,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,SAAS,GAAG,CAAC,EAAE;YACf,UAAU;YACV,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,6BAA6B,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;SACzI;QACD,4BAA4B;QAC5B,IAAI,UAAU,GAAe,IAAI,UAAU,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;QACxF,oBAAoB;QACpB,IAAI,SAAS,GAAU,KAAK,CAAC,IAAI,CAAC;QAClC,IAAI,KAAK,GAA6B,IAAI,KAAK,EAAqB,CAAC;QACrE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YACxC,wBAAwB;YACxB,IAAI,UAAU,GAAU,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,UAAU,GAAU,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,QAAQ,GAAW,YAAY,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAClE,kBAAkB;YAClB,KAAK,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxI,+BAA+B;YAC/B,IAAI,UAAU,GAAU,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnD,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SAChD;QACD,UAAU;QACV,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,0BAA0B;QAC1B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,sBAAsB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAClH,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,uBAAuB,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9H,OAAO,IAAI,aAAa,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;;AArLD,8BAA8B;AACN,oBAAM,GAAW,eAAe,CAAC;SAFhD,aAAa","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.pointcloud.format.opc;\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\n\r\nimport { ABuffer } from \"../../../system/buffer/ABuffer\";\r\nimport { LittleEndian } from \"../../../system/buffer/LittleEndian\";\r\nimport { AList } from \"../../../system/collection/AList\";\r\nimport { ABufferInStream } from \"../../../system/io/ABufferInStream\";\r\nimport { InStream } from \"../../../system/io/InStream\";\r\nimport { ALong } from \"../../../system/runtime/ALong\";\r\nimport { ASystem } from \"../../../system/runtime/ASystem\";\r\nimport { Message } from \"../../../system/runtime/Message\";\r\nimport { Strings } from \"../../../system/runtime/Strings\";\r\nimport { FileStorage } from \"../../../system/storage/FileStorage\";\r\nimport { ContainerFilePart } from \"./ContainerFilePart\";\r\nimport { FileAccess } from \"./FileAccess\";\r\n\r\n/**\r\n * Class ContainerFile defines a single file that contains multiple internal parts.\r\n *\r\n * @version 1.0 January 2014\r\n */\r\n/** @internal */\r\nexport class ContainerFile {\r\n /** The name of this module */\r\n private static readonly MODULE: string = \"ContainerFile\";\r\n\r\n /** The name of the file */\r\n private _fileName: string;\r\n /** The length of the file */\r\n private _fileLength: ALong;\r\n /** The format */\r\n private _format: string;\r\n /** The parts in the file */\r\n private _parts: AList<ContainerFilePart>;\r\n\r\n /**\r\n * Create a new container file.\r\n * @param fileName the name of the file.\r\n * @param fileLength the length of the file.\r\n * @param format the format.\r\n * @param parts the parts in the file.\r\n */\r\n public constructor(fileName: string, fileLength: ALong, format: string, parts: AList<ContainerFilePart>) {\r\n this._fileName = fileName;\r\n this._fileLength = fileLength;\r\n this._format = format;\r\n this._parts = parts;\r\n }\r\n\r\n /**\r\n * Close the container file.\r\n * @param closeFileAccess close all file access?\r\n */\r\n public close(closeFileAccess: boolean): void {\r\n if (closeFileAccess) for (let i: number = 0; i < this._parts.size(); i++) this._parts.get(i).getFileAccess().close();\r\n this._parts.clear();\r\n }\r\n\r\n /**\r\n * Get the name of the file.\r\n * @return the name of the file.\r\n */\r\n public getFileName(): string {\r\n return this._fileName;\r\n }\r\n\r\n /**\r\n * Get the length of the file.\r\n * @return the length of the file.\r\n */\r\n public getFileLength(): ALong {\r\n return this._fileLength;\r\n }\r\n\r\n /**\r\n * Get the format.\r\n * @return the format.\r\n */\r\n public getFormat(): string {\r\n return this._format;\r\n }\r\n\r\n /**\r\n * Get the number of parts.\r\n * @return the number of parts.\r\n */\r\n public getPartCount(): int32 {\r\n return this._parts.size();\r\n }\r\n\r\n /**\r\n * Get the list of parts.\r\n * @return the list of parts.\r\n */\r\n public getParts(): AList<ContainerFilePart> {\r\n return this._parts;\r\n }\r\n\r\n /**\r\n * Get a part.\r\n * @param name the name of the part.\r\n * @return the part (null if not found).\r\n */\r\n public getPart(name: string): ContainerFilePart {\r\n /* Check all parts */\r\n for (let i: number = 0; i < this._parts.size(); i++) {\r\n /* Check the next part */\r\n let part: ContainerFilePart = this._parts.get(i);\r\n if (Strings.equals(part.getName(), name)) return part;\r\n }\r\n /* Not found */\r\n return null;\r\n }\r\n\r\n /**\r\n * Check if the magic marker is found.\r\n * @param input the input stream.\r\n * @param format the 4-character identifier of the format.\r\n * @return true if found, false if not.\r\n */\r\n private static checkMarker(input: InStream, format: string): boolean {\r\n let m0: int32 = LittleEndian.readStreamByte(input);\r\n let m1: int32 = LittleEndian.readStreamByte(input);\r\n let m2: int32 = LittleEndian.readStreamByte(input);\r\n let m3: int32 = LittleEndian.readStreamByte(input);\r\n if (m0 != Strings.getCharAt(format, 0)) return false;\r\n if (m1 != Strings.getCharAt(format, 1)) return false;\r\n if (m2 != Strings.getCharAt(format, 2)) return false;\r\n if (m3 != Strings.getCharAt(format, 3)) return false;\r\n return true;\r\n }\r\n\r\n /**\r\n * Read the parts of a container file.\r\n * @param containerFileName the name of the container file.\r\n * @param format the 4-character identifier of the format.\r\n * @return the container file.\r\n */\r\n public static async read(fileStorage: FileStorage, containerFileName: string, format: string): Promise<ContainerFile> {\r\n /* Existing file? */\r\n Message.print(ContainerFile.MODULE, \"Reading container file '\" + containerFileName + \"'\");\r\n let fileLength: ALong = await fileStorage.getFileLength(containerFileName);\r\n if (fileLength.isNegative()) {\r\n /* Abort */\r\n Message.printWarning(ContainerFile.MODULE, \"File not found\");\r\n return null;\r\n }\r\n /* Too short? */\r\n if (fileLength.subInt(16).isNegative()) {\r\n /* Fail */\r\n ASystem.assert0(false, \"Invalid container file '\" + containerFileName + \"' (too short)\");\r\n }\r\n /* Read the file header */\r\n let headerSize: int32 = 60 * 1024;\r\n if (fileLength.subInt(headerSize).isNegative()) headerSize = fileLength.toInt();\r\n let header: ABuffer = await fileStorage.readFilePart(containerFileName, ALong.ZERO, headerSize);\r\n let headerInput: ABufferInStream = new ABufferInStream(header, 0, header.size());\r\n /* Check the marker */\r\n if (ContainerFile.checkMarker(headerInput, format) == false) {\r\n /* Fail */\r\n headerInput.close();\r\n ASystem.assert0(false, \"Invalid container file '\" + containerFileName + \"' (header marker)\");\r\n }\r\n /* Check the version */\r\n let version: int32 = LittleEndian.readStreamByte(headerInput);\r\n if (version != 2) {\r\n /* Fail */\r\n headerInput.close();\r\n ASystem.assert0(false, \"Invalid container file '\" + containerFileName + \"' (version \" + version + \")\");\r\n }\r\n /* Reserved */\r\n let r1: int32 = LittleEndian.readStreamByte(headerInput);\r\n let r2: int32 = LittleEndian.readStreamByte(headerInput);\r\n let r3: int32 = LittleEndian.readStreamByte(headerInput);\r\n /* Get the file count */\r\n let fileCount: int32 = LittleEndian.readStreamInt(headerInput);\r\n if (fileCount < 0) {\r\n /* Fail */\r\n headerInput.close();\r\n ASystem.assert0(false, ContainerFile.MODULE + \" : Invalid container file '\" + containerFileName + \"' (file count \" + fileCount + \")\");\r\n }\r\n /* Define the file access */\r\n let fileAccess: FileAccess = new FileAccess(fileStorage, containerFileName, fileLength);\r\n /* Read the parts */\r\n let maxExtent: ALong = ALong.ZERO;\r\n let parts: AList<ContainerFilePart> = new AList<ContainerFilePart>();\r\n for (let i: number = 0; i < fileCount; i++) {\r\n /* Read the next file */\r\n let partOffset: ALong = LittleEndian.readStreamLong(headerInput);\r\n let partLength: ALong = LittleEndian.readStreamLong(headerInput);\r\n let partName: string = LittleEndian.readStreamString(headerInput);\r\n /* Add the part */\r\n parts.add(new ContainerFilePart(partName, fileAccess, partOffset, partLength));\r\n Message.print(ContainerFile.MODULE, \"Found part '\" + partName + \"' offset \" + partOffset.toDouble() + \" size \" + partLength.toDouble());\r\n /* Update the maximum extent */\r\n let partExtent: ALong = partOffset.add(partLength);\r\n maxExtent = ALong.max(maxExtent, partExtent);\r\n }\r\n /* Done */\r\n headerInput.close();\r\n /* Return the container */\r\n Message.print(ContainerFile.MODULE, \"Found \" + parts.size() + \" parts, header size \" + headerInput.getPosition());\r\n Message.print(ContainerFile.MODULE, \"File size is \" + fileLength.toDouble() + \", max part extent is \" + maxExtent.toDouble());\r\n return new ContainerFile(containerFileName, fileLength, format, parts);\r\n }\r\n}\r\n"]}
|