@itwin/core-orbitgt 4.0.0-dev.8 → 4.0.0-dev.81
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 +41 -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/AttributeMask.js.map +1 -1
- 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/AttributeReader.js.map +1 -1
- 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/ContainerFilePart.js.map +1 -1
- 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/DirectoryReader.js.map +1 -1
- 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/DirectoryRecord.js.map +1 -1
- 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/EmbeddedAttributeReader.js.map +1 -1
- 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/FileAccess.js.map +1 -1
- 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/FileRecord.js.map +1 -1
- 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/GeometryRecord.js.map +1 -1
- 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/PointReader.js.map +1 -1
- 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/TileReadBuffer.js.map +1 -1
- 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/BlockIndex.js.map +1 -1
- 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/Grid.js.map +1 -1
- 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/GridIndex.js.map +1 -1
- 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/PointAttribute.js.map +1 -1
- 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/PointCloudReader.js.map +1 -1
- package/lib/cjs/pointcloud/model/PointData.d.ts +17 -17
- package/lib/cjs/pointcloud/model/PointData.js +24 -24
- package/lib/cjs/pointcloud/model/PointData.js.map +1 -1
- 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/model/TileIndex.js.map +1 -1
- 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/AViewRequest.js.map +1 -1
- package/lib/cjs/pointcloud/render/Block.d.ts +67 -67
- package/lib/cjs/pointcloud/render/Block.js +119 -119
- package/lib/cjs/pointcloud/render/Block.js.map +1 -1
- 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/FrameData.js.map +1 -1
- 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/Level.js.map +1 -1
- 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/CRSEngine.js.map +1 -1
- 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/Axis.js.map +1 -1
- 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/Ellipsoid.js.map +1 -1
- 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/OperationMethod.js.map +1 -1
- 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/ParameterValue.js.map +1 -1
- 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/ParameterValueList.js.map +1 -1
- 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/PrimeMeridian.js.map +1 -1
- 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/VerticalModel.js.map +1 -1
- 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/WellKnownTextNode.js.map +1 -1
- 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/Bounds.js.map +1 -1
- 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/Coordinate.js.map +1 -1
- 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/Line.js.map +1 -1
- 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/spatial/geom/Transform.js.map +1 -1
- 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/ABuffer.js.map +1 -1
- 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/LittleEndian.js.map +1 -1
- 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/AList.js.map +1 -1
- 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/IntMap.js.map +1 -1
- 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/collection/StringMap.js.map +1 -1
- 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/ABufferInStream.js.map +1 -1
- 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/InStream.js.map +1 -1
- 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/io/OutStream.js.map +1 -1
- 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/DownloaderNode.js.map +1 -1
- package/lib/cjs/system/runtime/DownloaderXhr.d.ts +18 -18
- package/lib/cjs/system/runtime/DownloaderXhr.js +131 -131
- package/lib/cjs/system/runtime/DownloaderXhr.js.map +1 -1
- 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/runtime/iComparator.js.map +1 -1
- 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/CacheList.js.map +1 -1
- 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/CachedItem.js.map +1 -1
- 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/FileContent.js.map +1 -1
- 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/FileRange.js.map +1 -1
- 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/FileStorage.js.map +1 -1
- 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/NodeFS.js.map +1 -1
- 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/PageCachedFile.js.map +1 -1
- 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/core-orbitgt.js.map +1 -1
- 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/AttributeMask.js.map +1 -1
- 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/AttributeReader.js.map +1 -1
- 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/ContainerFilePart.js.map +1 -1
- 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/DirectoryReader.js.map +1 -1
- 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/DirectoryRecord.js.map +1 -1
- 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/EmbeddedAttributeReader.js.map +1 -1
- 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/FileAccess.js.map +1 -1
- 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/FileRecord.js.map +1 -1
- 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/GeometryRecord.js.map +1 -1
- 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/PointReader.js.map +1 -1
- 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/TileReadBuffer.js.map +1 -1
- 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/BlockIndex.js.map +1 -1
- 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/Grid.js.map +1 -1
- 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/GridIndex.js.map +1 -1
- 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/PointAttribute.js.map +1 -1
- 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/PointCloudReader.js.map +1 -1
- package/lib/esm/pointcloud/model/PointData.d.ts +17 -17
- package/lib/esm/pointcloud/model/PointData.js +20 -20
- package/lib/esm/pointcloud/model/PointData.js.map +1 -1
- 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/model/TileIndex.js.map +1 -1
- 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/AViewRequest.js.map +1 -1
- package/lib/esm/pointcloud/render/Block.d.ts +67 -67
- package/lib/esm/pointcloud/render/Block.js +115 -115
- package/lib/esm/pointcloud/render/Block.js.map +1 -1
- 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/FrameData.js.map +1 -1
- 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/Level.js.map +1 -1
- 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/CRSEngine.js.map +1 -1
- 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/Axis.js.map +1 -1
- 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/Ellipsoid.js.map +1 -1
- 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/OperationMethod.js.map +1 -1
- 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/ParameterValue.js.map +1 -1
- 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/ParameterValueList.js.map +1 -1
- 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/PrimeMeridian.js.map +1 -1
- 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/VerticalModel.js.map +1 -1
- 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/WellKnownTextNode.js.map +1 -1
- 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/Bounds.js.map +1 -1
- 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/Coordinate.js.map +1 -1
- 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/Line.js.map +1 -1
- 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/spatial/geom/Transform.js.map +1 -1
- 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/ABuffer.js.map +1 -1
- 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/LittleEndian.js.map +1 -1
- 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/AList.js.map +1 -1
- 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/IntMap.js.map +1 -1
- 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/collection/StringMap.js.map +1 -1
- 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/ABufferInStream.js.map +1 -1
- 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/InStream.js.map +1 -1
- 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/io/OutStream.js.map +1 -1
- 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/DownloaderNode.js.map +1 -1
- package/lib/esm/system/runtime/DownloaderXhr.d.ts +18 -18
- package/lib/esm/system/runtime/DownloaderXhr.js +127 -127
- package/lib/esm/system/runtime/DownloaderXhr.js.map +1 -1
- 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/runtime/iComparator.js.map +1 -1
- 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/CacheList.js.map +1 -1
- 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/CachedItem.js.map +1 -1
- 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/FileContent.js.map +1 -1
- 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/FileRange.js.map +1 -1
- 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/FileStorage.js.map +1 -1
- 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/NodeFS.js.map +1 -1
- 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/PageCachedFile.js.map +1 -1
- 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 +10 -11
|
@@ -1,209 +1,209 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module OrbitGT
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.ObliqueStereographic = void 0;
|
|
11
|
-
const OperationMethod_1 = require("../OperationMethod");
|
|
12
|
-
/**
|
|
13
|
-
* Class ObliqueStereographic defines an Oblique Stereographic projection.
|
|
14
|
-
*
|
|
15
|
-
* The 'source' CRS is the geodetic CRS.
|
|
16
|
-
* The 'target' CRS is the projected CRS.
|
|
17
|
-
*
|
|
18
|
-
* Based on the following document:
|
|
19
|
-
*
|
|
20
|
-
* Coordinate Conversions and Transformations including Formulas
|
|
21
|
-
* Guidance Note Number 7, part 2
|
|
22
|
-
* Revised August 2006
|
|
23
|
-
* Available at: http://www.epsg.org/
|
|
24
|
-
*
|
|
25
|
-
* Formulas: see 1.4.7.1 'Oblique and Equatorial Stereographic cases'
|
|
26
|
-
*
|
|
27
|
-
* @version 1.0 December 2006
|
|
28
|
-
*/
|
|
29
|
-
/** @internal */
|
|
30
|
-
class ObliqueStereographic extends OperationMethod_1.OperationMethod {
|
|
31
|
-
/**
|
|
32
|
-
* Create a new projection.
|
|
33
|
-
* @param parameters the values of the parameters.
|
|
34
|
-
*/
|
|
35
|
-
constructor(parameters) {
|
|
36
|
-
super(ObliqueStereographic.METHOD_CODE, "Oblique Stereographic", parameters);
|
|
37
|
-
/* Store the parameters */
|
|
38
|
-
this._lat0 = (parameters != null) ? parameters.getValue(8801) : 0.0;
|
|
39
|
-
this._lon0 = (parameters != null) ? parameters.getValue(8802) : 0.0;
|
|
40
|
-
this._k0 = (parameters != null) ? parameters.getValue(8805) : 0.0;
|
|
41
|
-
this._fe = (parameters != null) ? parameters.getValue(8806) : 0.0;
|
|
42
|
-
this._fn = (parameters != null) ? parameters.getValue(8807) : 0.0;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Create a new projection.
|
|
46
|
-
* @param lat0 latitude of natural origin (radians).
|
|
47
|
-
* @param lon0 longitude of natural origin (radians).
|
|
48
|
-
* @param k0 scale factor at natural origin.
|
|
49
|
-
* @param fe false easting.
|
|
50
|
-
* @param fn false northing.
|
|
51
|
-
*/
|
|
52
|
-
static create(lat0, lon0, k0, fe, fn) {
|
|
53
|
-
const projection = new ObliqueStereographic(null);
|
|
54
|
-
projection._lat0 = lat0;
|
|
55
|
-
projection._lon0 = lon0;
|
|
56
|
-
projection._k0 = k0;
|
|
57
|
-
projection._fe = fe;
|
|
58
|
-
projection._fn = fn;
|
|
59
|
-
return projection;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get the power of a number.
|
|
63
|
-
*/
|
|
64
|
-
static pow(n, e) {
|
|
65
|
-
return Math.exp(e * Math.log(n));
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Calculate sinus.
|
|
69
|
-
*/
|
|
70
|
-
static sin(a) {
|
|
71
|
-
return Math.sin(a);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Calculate cosinus.
|
|
75
|
-
*/
|
|
76
|
-
static cos(a) {
|
|
77
|
-
return Math.cos(a);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Calculate tangent.
|
|
81
|
-
*/
|
|
82
|
-
static tan(a) {
|
|
83
|
-
return Math.tan(a);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Calculate arcsinus.
|
|
87
|
-
*/
|
|
88
|
-
static asin(v) {
|
|
89
|
-
return Math.asin(v);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Calculate arctangent.
|
|
93
|
-
*/
|
|
94
|
-
static atan(v) {
|
|
95
|
-
return Math.atan(v);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Calculate log.
|
|
99
|
-
*/
|
|
100
|
-
static log(v) {
|
|
101
|
-
return Math.log(v);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Calculate exp.
|
|
105
|
-
*/
|
|
106
|
-
static exp(v) {
|
|
107
|
-
return Math.exp(v);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Initialize the projection.
|
|
111
|
-
* @param ellipsoid the ellipsoid to use.
|
|
112
|
-
* @return this projection (for convenience).
|
|
113
|
-
*/
|
|
114
|
-
initializeProjection(ellipsoid) {
|
|
115
|
-
/* Get the ellipsoid parameters */
|
|
116
|
-
const a = ellipsoid.getA();
|
|
117
|
-
this._e = ellipsoid.getE();
|
|
118
|
-
/* Calculate conformat latitude (chi0) and longitude (lambda0) */
|
|
119
|
-
this._e2 = this._e * this._e;
|
|
120
|
-
const sinLat0 = ObliqueStereographic.sin(this._lat0);
|
|
121
|
-
const t0 = 1.0 - this._e2 * sinLat0 * sinLat0;
|
|
122
|
-
const rho0 = a * (1 - this._e2) / ObliqueStereographic.pow(t0, 1.5);
|
|
123
|
-
const nu0 = a / ObliqueStereographic.pow(t0, 0.5);
|
|
124
|
-
this._R = ObliqueStereographic.pow(rho0 * nu0, 0.5);
|
|
125
|
-
this._n = ObliqueStereographic.pow(1.0 + (this._e2 * ObliqueStereographic.pow(ObliqueStereographic.cos(this._lat0), 4)) / (1.0 - this._e2), 0.5);
|
|
126
|
-
const S1 = (1.0 + sinLat0) / (1.0 - sinLat0);
|
|
127
|
-
const S2 = (1.0 - this._e * sinLat0) / (1.0 + this._e * sinLat0);
|
|
128
|
-
const w1 = ObliqueStereographic.pow(S1 * ObliqueStereographic.pow(S2, this._e), this._n);
|
|
129
|
-
const sinChi0 = (w1 - 1.0) / (w1 + 1.0);
|
|
130
|
-
this._c = (this._n + sinLat0) * (1.0 - sinChi0) / ((this._n - sinLat0) * (1.0 + sinChi0));
|
|
131
|
-
const w2 = this._c * w1;
|
|
132
|
-
this._chi0 = ObliqueStereographic.asin((w2 - 1.0) / (w2 + 1.0));
|
|
133
|
-
this._lambda0 = this._lon0;
|
|
134
|
-
/* For reverse calculation */
|
|
135
|
-
this._g = 2.0 * this._R * this._k0 * ObliqueStereographic.tan(ObliqueStereographic.PI / 4.0 - this._chi0 / 2.0);
|
|
136
|
-
this._h = 4.0 * this._R * this._k0 * ObliqueStereographic.tan(this._chi0) + this._g;
|
|
137
|
-
/* Return the projection */
|
|
138
|
-
return this;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* OperationMethod method.
|
|
142
|
-
* @see OperationMethod#initialize
|
|
143
|
-
*/
|
|
144
|
-
initialize(operation) {
|
|
145
|
-
this.initializeProjection(operation.getSourceCRS().getEllipsoid());
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* OperationMethod interface method.
|
|
149
|
-
* @see OperationMethod#forward
|
|
150
|
-
*/
|
|
151
|
-
forward(sourceCRS, source, targetCRS, target) {
|
|
152
|
-
/* Get the parameters */
|
|
153
|
-
const lon = source.getX();
|
|
154
|
-
const lat = source.getY();
|
|
155
|
-
const sinLat = ObliqueStereographic.sin(lat);
|
|
156
|
-
/* Calculate conformal latitude and longitude */
|
|
157
|
-
const lambda = this._n * (lon - this._lambda0) + this._lambda0;
|
|
158
|
-
const Sa = (1.0 + sinLat) / (1.0 - sinLat);
|
|
159
|
-
const Sb = (1.0 - this._e * sinLat) / (1.0 + this._e * sinLat);
|
|
160
|
-
const w = this._c * ObliqueStereographic.pow(Sa * ObliqueStereographic.pow(Sb, this._e), this._n);
|
|
161
|
-
const chi = ObliqueStereographic.asin((w - 1.0) / (w + 1.0));
|
|
162
|
-
/* Calculate easting and northing */
|
|
163
|
-
const B = 1.0 + ObliqueStereographic.sin(chi) * ObliqueStereographic.sin(this._chi0) + ObliqueStereographic.cos(chi) * ObliqueStereographic.cos(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0);
|
|
164
|
-
const E = this._fe + 2.0 * this._R * this._k0 * ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(lambda - this._lambda0) / B;
|
|
165
|
-
const N = this._fn + 2.0 * this._R * this._k0 * (ObliqueStereographic.sin(chi) * ObliqueStereographic.cos(this._chi0) - ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0)) / B;
|
|
166
|
-
/* Save the position */
|
|
167
|
-
target.setX(E);
|
|
168
|
-
target.setY(N);
|
|
169
|
-
target.setZ(source.getZ()); // Keep the Z value
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* OperationMethod interface method.
|
|
173
|
-
* @see OperationMethod#reverse
|
|
174
|
-
*/
|
|
175
|
-
reverse(sourceCRS, source, targetCRS, target) {
|
|
176
|
-
/* Get the parameters */
|
|
177
|
-
const E = target.getX() - this._fe;
|
|
178
|
-
const N = target.getY() - this._fn;
|
|
179
|
-
/* Calculate conformal latitude and longitude */
|
|
180
|
-
const i = ObliqueStereographic.atan(E / (this._h + N));
|
|
181
|
-
const j = ObliqueStereographic.atan(E / (this._g - N)) - i;
|
|
182
|
-
const chi = this._chi0 + 2.0 * ObliqueStereographic.atan((N - E * ObliqueStereographic.tan(j / 2.0)) / (2.0 * this._R * this._k0));
|
|
183
|
-
const lambda = j + 2.0 * i + this._lambda0;
|
|
184
|
-
const lon = (lambda - this._lambda0) / this._n + this._lambda0;
|
|
185
|
-
/* Iterate to get isometric (psi) and geodetic (phi) latitude */
|
|
186
|
-
const sinChi = ObliqueStereographic.sin(chi);
|
|
187
|
-
const psi = 0.5 * ObliqueStereographic.log((1.0 + sinChi) / (this._c * (1.0 - sinChi))) / this._n;
|
|
188
|
-
let phiK = 2.0 * ObliqueStereographic.atan(ObliqueStereographic.exp(psi)) - ObliqueStereographic.PI / 2.0;
|
|
189
|
-
for (let k = 1; k < 8; k++) {
|
|
190
|
-
const esinPhi = this._e * ObliqueStereographic.sin(phiK);
|
|
191
|
-
const psiK = ObliqueStereographic.log(ObliqueStereographic.tan(phiK / 2.0 + ObliqueStereographic.PI / 4.0) * ObliqueStereographic.pow((1.0 - esinPhi) / (1.0 + esinPhi), this._e / 2.0));
|
|
192
|
-
const phiNextK = phiK - (psiK - psi) * ObliqueStereographic.cos(phiK) * (1.0 - esinPhi * esinPhi) / (1.0 - this._e2);
|
|
193
|
-
const change = Math.abs(phiNextK - phiK);
|
|
194
|
-
phiK = phiNextK;
|
|
195
|
-
if (change < 1.0e-12)
|
|
196
|
-
break; // normally after 4 iterations
|
|
197
|
-
}
|
|
198
|
-
/* Save the position */
|
|
199
|
-
source.setX(lon);
|
|
200
|
-
source.setY(phiK);
|
|
201
|
-
source.setZ(target.getZ()); // Keep the Z value
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
ObliqueStereographic
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module OrbitGT
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ObliqueStereographic = void 0;
|
|
11
|
+
const OperationMethod_1 = require("../OperationMethod");
|
|
12
|
+
/**
|
|
13
|
+
* Class ObliqueStereographic defines an Oblique Stereographic projection.
|
|
14
|
+
*
|
|
15
|
+
* The 'source' CRS is the geodetic CRS.
|
|
16
|
+
* The 'target' CRS is the projected CRS.
|
|
17
|
+
*
|
|
18
|
+
* Based on the following document:
|
|
19
|
+
*
|
|
20
|
+
* Coordinate Conversions and Transformations including Formulas
|
|
21
|
+
* Guidance Note Number 7, part 2
|
|
22
|
+
* Revised August 2006
|
|
23
|
+
* Available at: http://www.epsg.org/
|
|
24
|
+
*
|
|
25
|
+
* Formulas: see 1.4.7.1 'Oblique and Equatorial Stereographic cases'
|
|
26
|
+
*
|
|
27
|
+
* @version 1.0 December 2006
|
|
28
|
+
*/
|
|
29
|
+
/** @internal */
|
|
30
|
+
class ObliqueStereographic extends OperationMethod_1.OperationMethod {
|
|
31
|
+
/**
|
|
32
|
+
* Create a new projection.
|
|
33
|
+
* @param parameters the values of the parameters.
|
|
34
|
+
*/
|
|
35
|
+
constructor(parameters) {
|
|
36
|
+
super(ObliqueStereographic.METHOD_CODE, "Oblique Stereographic", parameters);
|
|
37
|
+
/* Store the parameters */
|
|
38
|
+
this._lat0 = (parameters != null) ? parameters.getValue(8801) : 0.0;
|
|
39
|
+
this._lon0 = (parameters != null) ? parameters.getValue(8802) : 0.0;
|
|
40
|
+
this._k0 = (parameters != null) ? parameters.getValue(8805) : 0.0;
|
|
41
|
+
this._fe = (parameters != null) ? parameters.getValue(8806) : 0.0;
|
|
42
|
+
this._fn = (parameters != null) ? parameters.getValue(8807) : 0.0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a new projection.
|
|
46
|
+
* @param lat0 latitude of natural origin (radians).
|
|
47
|
+
* @param lon0 longitude of natural origin (radians).
|
|
48
|
+
* @param k0 scale factor at natural origin.
|
|
49
|
+
* @param fe false easting.
|
|
50
|
+
* @param fn false northing.
|
|
51
|
+
*/
|
|
52
|
+
static create(lat0, lon0, k0, fe, fn) {
|
|
53
|
+
const projection = new ObliqueStereographic(null);
|
|
54
|
+
projection._lat0 = lat0;
|
|
55
|
+
projection._lon0 = lon0;
|
|
56
|
+
projection._k0 = k0;
|
|
57
|
+
projection._fe = fe;
|
|
58
|
+
projection._fn = fn;
|
|
59
|
+
return projection;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the power of a number.
|
|
63
|
+
*/
|
|
64
|
+
static pow(n, e) {
|
|
65
|
+
return Math.exp(e * Math.log(n));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Calculate sinus.
|
|
69
|
+
*/
|
|
70
|
+
static sin(a) {
|
|
71
|
+
return Math.sin(a);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Calculate cosinus.
|
|
75
|
+
*/
|
|
76
|
+
static cos(a) {
|
|
77
|
+
return Math.cos(a);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Calculate tangent.
|
|
81
|
+
*/
|
|
82
|
+
static tan(a) {
|
|
83
|
+
return Math.tan(a);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Calculate arcsinus.
|
|
87
|
+
*/
|
|
88
|
+
static asin(v) {
|
|
89
|
+
return Math.asin(v);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Calculate arctangent.
|
|
93
|
+
*/
|
|
94
|
+
static atan(v) {
|
|
95
|
+
return Math.atan(v);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Calculate log.
|
|
99
|
+
*/
|
|
100
|
+
static log(v) {
|
|
101
|
+
return Math.log(v);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Calculate exp.
|
|
105
|
+
*/
|
|
106
|
+
static exp(v) {
|
|
107
|
+
return Math.exp(v);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Initialize the projection.
|
|
111
|
+
* @param ellipsoid the ellipsoid to use.
|
|
112
|
+
* @return this projection (for convenience).
|
|
113
|
+
*/
|
|
114
|
+
initializeProjection(ellipsoid) {
|
|
115
|
+
/* Get the ellipsoid parameters */
|
|
116
|
+
const a = ellipsoid.getA();
|
|
117
|
+
this._e = ellipsoid.getE();
|
|
118
|
+
/* Calculate conformat latitude (chi0) and longitude (lambda0) */
|
|
119
|
+
this._e2 = this._e * this._e;
|
|
120
|
+
const sinLat0 = ObliqueStereographic.sin(this._lat0);
|
|
121
|
+
const t0 = 1.0 - this._e2 * sinLat0 * sinLat0;
|
|
122
|
+
const rho0 = a * (1 - this._e2) / ObliqueStereographic.pow(t0, 1.5);
|
|
123
|
+
const nu0 = a / ObliqueStereographic.pow(t0, 0.5);
|
|
124
|
+
this._R = ObliqueStereographic.pow(rho0 * nu0, 0.5);
|
|
125
|
+
this._n = ObliqueStereographic.pow(1.0 + (this._e2 * ObliqueStereographic.pow(ObliqueStereographic.cos(this._lat0), 4)) / (1.0 - this._e2), 0.5);
|
|
126
|
+
const S1 = (1.0 + sinLat0) / (1.0 - sinLat0);
|
|
127
|
+
const S2 = (1.0 - this._e * sinLat0) / (1.0 + this._e * sinLat0);
|
|
128
|
+
const w1 = ObliqueStereographic.pow(S1 * ObliqueStereographic.pow(S2, this._e), this._n);
|
|
129
|
+
const sinChi0 = (w1 - 1.0) / (w1 + 1.0);
|
|
130
|
+
this._c = (this._n + sinLat0) * (1.0 - sinChi0) / ((this._n - sinLat0) * (1.0 + sinChi0));
|
|
131
|
+
const w2 = this._c * w1;
|
|
132
|
+
this._chi0 = ObliqueStereographic.asin((w2 - 1.0) / (w2 + 1.0));
|
|
133
|
+
this._lambda0 = this._lon0;
|
|
134
|
+
/* For reverse calculation */
|
|
135
|
+
this._g = 2.0 * this._R * this._k0 * ObliqueStereographic.tan(ObliqueStereographic.PI / 4.0 - this._chi0 / 2.0);
|
|
136
|
+
this._h = 4.0 * this._R * this._k0 * ObliqueStereographic.tan(this._chi0) + this._g;
|
|
137
|
+
/* Return the projection */
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* OperationMethod method.
|
|
142
|
+
* @see OperationMethod#initialize
|
|
143
|
+
*/
|
|
144
|
+
initialize(operation) {
|
|
145
|
+
this.initializeProjection(operation.getSourceCRS().getEllipsoid());
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* OperationMethod interface method.
|
|
149
|
+
* @see OperationMethod#forward
|
|
150
|
+
*/
|
|
151
|
+
forward(sourceCRS, source, targetCRS, target) {
|
|
152
|
+
/* Get the parameters */
|
|
153
|
+
const lon = source.getX();
|
|
154
|
+
const lat = source.getY();
|
|
155
|
+
const sinLat = ObliqueStereographic.sin(lat);
|
|
156
|
+
/* Calculate conformal latitude and longitude */
|
|
157
|
+
const lambda = this._n * (lon - this._lambda0) + this._lambda0;
|
|
158
|
+
const Sa = (1.0 + sinLat) / (1.0 - sinLat);
|
|
159
|
+
const Sb = (1.0 - this._e * sinLat) / (1.0 + this._e * sinLat);
|
|
160
|
+
const w = this._c * ObliqueStereographic.pow(Sa * ObliqueStereographic.pow(Sb, this._e), this._n);
|
|
161
|
+
const chi = ObliqueStereographic.asin((w - 1.0) / (w + 1.0));
|
|
162
|
+
/* Calculate easting and northing */
|
|
163
|
+
const B = 1.0 + ObliqueStereographic.sin(chi) * ObliqueStereographic.sin(this._chi0) + ObliqueStereographic.cos(chi) * ObliqueStereographic.cos(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0);
|
|
164
|
+
const E = this._fe + 2.0 * this._R * this._k0 * ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(lambda - this._lambda0) / B;
|
|
165
|
+
const N = this._fn + 2.0 * this._R * this._k0 * (ObliqueStereographic.sin(chi) * ObliqueStereographic.cos(this._chi0) - ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0)) / B;
|
|
166
|
+
/* Save the position */
|
|
167
|
+
target.setX(E);
|
|
168
|
+
target.setY(N);
|
|
169
|
+
target.setZ(source.getZ()); // Keep the Z value
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* OperationMethod interface method.
|
|
173
|
+
* @see OperationMethod#reverse
|
|
174
|
+
*/
|
|
175
|
+
reverse(sourceCRS, source, targetCRS, target) {
|
|
176
|
+
/* Get the parameters */
|
|
177
|
+
const E = target.getX() - this._fe;
|
|
178
|
+
const N = target.getY() - this._fn;
|
|
179
|
+
/* Calculate conformal latitude and longitude */
|
|
180
|
+
const i = ObliqueStereographic.atan(E / (this._h + N));
|
|
181
|
+
const j = ObliqueStereographic.atan(E / (this._g - N)) - i;
|
|
182
|
+
const chi = this._chi0 + 2.0 * ObliqueStereographic.atan((N - E * ObliqueStereographic.tan(j / 2.0)) / (2.0 * this._R * this._k0));
|
|
183
|
+
const lambda = j + 2.0 * i + this._lambda0;
|
|
184
|
+
const lon = (lambda - this._lambda0) / this._n + this._lambda0;
|
|
185
|
+
/* Iterate to get isometric (psi) and geodetic (phi) latitude */
|
|
186
|
+
const sinChi = ObliqueStereographic.sin(chi);
|
|
187
|
+
const psi = 0.5 * ObliqueStereographic.log((1.0 + sinChi) / (this._c * (1.0 - sinChi))) / this._n;
|
|
188
|
+
let phiK = 2.0 * ObliqueStereographic.atan(ObliqueStereographic.exp(psi)) - ObliqueStereographic.PI / 2.0;
|
|
189
|
+
for (let k = 1; k < 8; k++) {
|
|
190
|
+
const esinPhi = this._e * ObliqueStereographic.sin(phiK);
|
|
191
|
+
const psiK = ObliqueStereographic.log(ObliqueStereographic.tan(phiK / 2.0 + ObliqueStereographic.PI / 4.0) * ObliqueStereographic.pow((1.0 - esinPhi) / (1.0 + esinPhi), this._e / 2.0));
|
|
192
|
+
const phiNextK = phiK - (psiK - psi) * ObliqueStereographic.cos(phiK) * (1.0 - esinPhi * esinPhi) / (1.0 - this._e2);
|
|
193
|
+
const change = Math.abs(phiNextK - phiK);
|
|
194
|
+
phiK = phiNextK;
|
|
195
|
+
if (change < 1.0e-12)
|
|
196
|
+
break; // normally after 4 iterations
|
|
197
|
+
}
|
|
198
|
+
/* Save the position */
|
|
199
|
+
source.setX(lon);
|
|
200
|
+
source.setY(phiK);
|
|
201
|
+
source.setZ(target.getZ()); // Keep the Z value
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/** The code of this method */
|
|
205
|
+
ObliqueStereographic.METHOD_CODE = 9809;
|
|
206
|
+
/** The value of PI */
|
|
207
|
+
ObliqueStereographic.PI = Math.PI;
|
|
208
|
+
exports.ObliqueStereographic = ObliqueStereographic;
|
|
209
209
|
//# sourceMappingURL=ObliqueStereographic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObliqueStereographic.js","sourceRoot":"","sources":["../../../../../src/spatial/ecrs/projection/ObliqueStereographic.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.spatial.ecrs.projection;\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 { Coordinate } from \"../../geom/Coordinate\";\r\nimport { CRS } from \"../CRS\";\r\nimport { Ellipsoid } from \"../Ellipsoid\";\r\nimport { Operation } from \"../Operation\";\r\nimport { OperationMethod } from \"../OperationMethod\";\r\nimport { ParameterValueList } from \"../ParameterValueList\";\r\n\r\n/**\r\n * Class ObliqueStereographic defines an Oblique Stereographic projection.\r\n *\r\n * The 'source' CRS is the geodetic CRS.\r\n * The 'target' CRS is the projected CRS.\r\n *\r\n * Based on the following document:\r\n *\r\n * Coordinate Conversions and Transformations including Formulas\r\n * Guidance Note Number 7, part 2\r\n * Revised August 2006\r\n * Available at: http://www.epsg.org/\r\n *\r\n * Formulas: see 1.4.7.1 'Oblique and Equatorial Stereographic cases'\r\n *\r\n * @version 1.0 December 2006\r\n */\r\n/** @internal */\r\nexport class ObliqueStereographic extends OperationMethod {\r\n /** The code of this method */\r\n public static readonly METHOD_CODE: int32 = 9809;\r\n\r\n /** The value of PI */\r\n private static readonly PI: float64 = Math.PI;\r\n\r\n /** Latitude of false origin */\r\n private _lat0: float64;\r\n /** Longitude of false origin */\r\n private _lon0: float64;\r\n /** Scale factor at natural origin */\r\n private _k0: float64;\r\n /** False easting */\r\n private _fe: float64;\r\n /** False northing */\r\n private _fn: float64;\r\n\r\n /** The parameters for the conformal sphere */\r\n private _e: float64;\r\n private _e2: float64;\r\n private _R: float64;\r\n private _n: float64;\r\n private _c: float64;\r\n private _chi0: float64;\r\n private _lambda0: float64;\r\n private _g: float64;\r\n private _h: float64;\r\n\r\n /**\r\n * Create a new projection.\r\n * @param parameters the values of the parameters.\r\n */\r\n public constructor(parameters: ParameterValueList) {\r\n super(ObliqueStereographic.METHOD_CODE, \"Oblique Stereographic\", parameters);\r\n /* Store the parameters */\r\n this._lat0 = (parameters != null) ? parameters.getValue(8801) : 0.0;\r\n this._lon0 = (parameters != null) ? parameters.getValue(8802) : 0.0;\r\n this._k0 = (parameters != null) ? parameters.getValue(8805) : 0.0;\r\n this._fe = (parameters != null) ? parameters.getValue(8806) : 0.0;\r\n this._fn = (parameters != null) ? parameters.getValue(8807) : 0.0;\r\n }\r\n\r\n /**\r\n * Create a new projection.\r\n * @param lat0 latitude of natural origin (radians).\r\n * @param lon0 longitude of natural origin (radians).\r\n * @param k0 scale factor at natural origin.\r\n * @param fe false easting.\r\n * @param fn false northing.\r\n */\r\n public static create(lat0: float64, lon0: float64, k0: float64, fe: float64, fn: float64): ObliqueStereographic {\r\n const projection: ObliqueStereographic = new ObliqueStereographic(null);\r\n projection._lat0 = lat0;\r\n projection._lon0 = lon0;\r\n projection._k0 = k0;\r\n projection._fe = fe;\r\n projection._fn = fn;\r\n return projection;\r\n }\r\n\r\n /**\r\n * Get the power of a number.\r\n */\r\n private static pow(n: float64, e: float64): float64 {\r\n return Math.exp(e * Math.log(n));\r\n }\r\n\r\n /**\r\n * Calculate sinus.\r\n */\r\n private static sin(a: float64): float64 {\r\n return Math.sin(a);\r\n }\r\n\r\n /**\r\n * Calculate cosinus.\r\n */\r\n private static cos(a: float64): float64 {\r\n return Math.cos(a);\r\n }\r\n\r\n /**\r\n * Calculate tangent.\r\n */\r\n private static tan(a: float64): float64 {\r\n return Math.tan(a);\r\n }\r\n\r\n /**\r\n * Calculate arcsinus.\r\n */\r\n private static asin(v: float64): float64 {\r\n return Math.asin(v);\r\n }\r\n\r\n /**\r\n * Calculate arctangent.\r\n */\r\n private static atan(v: float64): float64 {\r\n return Math.atan(v);\r\n }\r\n\r\n /**\r\n * Calculate log.\r\n */\r\n private static log(v: float64): float64 {\r\n return Math.log(v);\r\n }\r\n\r\n /**\r\n * Calculate exp.\r\n */\r\n private static exp(v: float64): float64 {\r\n return Math.exp(v);\r\n }\r\n\r\n /**\r\n * Initialize the projection.\r\n * @param ellipsoid the ellipsoid to use.\r\n * @return this projection (for convenience).\r\n */\r\n public initializeProjection(ellipsoid: Ellipsoid): ObliqueStereographic {\r\n /* Get the ellipsoid parameters */\r\n const a: float64 = ellipsoid.getA();\r\n this._e = ellipsoid.getE();\r\n /* Calculate conformat latitude (chi0) and longitude (lambda0) */\r\n this._e2 = this._e * this._e;\r\n const sinLat0: float64 = ObliqueStereographic.sin(this._lat0);\r\n const t0: float64 = 1.0 - this._e2 * sinLat0 * sinLat0;\r\n const rho0: float64 = a * (1 - this._e2) / ObliqueStereographic.pow(t0, 1.5);\r\n const nu0: float64 = a / ObliqueStereographic.pow(t0, 0.5);\r\n this._R = ObliqueStereographic.pow(rho0 * nu0, 0.5);\r\n this._n = ObliqueStereographic.pow(1.0 + (this._e2 * ObliqueStereographic.pow(ObliqueStereographic.cos(this._lat0), 4)) / (1.0 - this._e2), 0.5);\r\n const S1: float64 = (1.0 + sinLat0) / (1.0 - sinLat0);\r\n const S2: float64 = (1.0 - this._e * sinLat0) / (1.0 + this._e * sinLat0);\r\n const w1: float64 = ObliqueStereographic.pow(S1 * ObliqueStereographic.pow(S2, this._e), this._n);\r\n const sinChi0: float64 = (w1 - 1.0) / (w1 + 1.0);\r\n this._c = (this._n + sinLat0) * (1.0 - sinChi0) / ((this._n - sinLat0) * (1.0 + sinChi0));\r\n const w2: float64 = this._c * w1;\r\n this._chi0 = ObliqueStereographic.asin((w2 - 1.0) / (w2 + 1.0));\r\n this._lambda0 = this._lon0;\r\n /* For reverse calculation */\r\n this._g = 2.0 * this._R * this._k0 * ObliqueStereographic.tan(ObliqueStereographic.PI / 4.0 - this._chi0 / 2.0);\r\n this._h = 4.0 * this._R * this._k0 * ObliqueStereographic.tan(this._chi0) + this._g;\r\n /* Return the projection */\r\n return this;\r\n }\r\n\r\n /**\r\n * OperationMethod method.\r\n * @see OperationMethod#initialize\r\n */\r\n public override initialize(operation: Operation): void {\r\n this.initializeProjection(operation.getSourceCRS().getEllipsoid());\r\n }\r\n\r\n /**\r\n * OperationMethod interface method.\r\n * @see OperationMethod#forward\r\n */\r\n public forward(sourceCRS: CRS, source: Coordinate, targetCRS: CRS, target: Coordinate): void {\r\n /* Get the parameters */\r\n const lon: float64 = source.getX();\r\n const lat: float64 = source.getY();\r\n const sinLat: float64 = ObliqueStereographic.sin(lat);\r\n /* Calculate conformal latitude and longitude */\r\n const lambda: float64 = this._n * (lon - this._lambda0) + this._lambda0;\r\n const Sa: float64 = (1.0 + sinLat) / (1.0 - sinLat);\r\n const Sb: float64 = (1.0 - this._e * sinLat) / (1.0 + this._e * sinLat);\r\n const w: float64 = this._c * ObliqueStereographic.pow(Sa * ObliqueStereographic.pow(Sb, this._e), this._n);\r\n const chi: float64 = ObliqueStereographic.asin((w - 1.0) / (w + 1.0));\r\n /* Calculate easting and northing */\r\n const B: float64 = 1.0 + ObliqueStereographic.sin(chi) * ObliqueStereographic.sin(this._chi0) + ObliqueStereographic.cos(chi) * ObliqueStereographic.cos(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0);\r\n const E: float64 = this._fe + 2.0 * this._R * this._k0 * ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(lambda - this._lambda0) / B;\r\n const N: float64 = this._fn + 2.0 * this._R * this._k0 * (ObliqueStereographic.sin(chi) * ObliqueStereographic.cos(this._chi0) - ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0)) / B;\r\n /* Save the position */\r\n target.setX(E);\r\n target.setY(N);\r\n target.setZ(source.getZ()); // Keep the Z value\r\n }\r\n\r\n /**\r\n * OperationMethod interface method.\r\n * @see OperationMethod#reverse\r\n */\r\n public reverse(sourceCRS: CRS, source: Coordinate, targetCRS: CRS, target: Coordinate): void {\r\n /* Get the parameters */\r\n const E: float64 = target.getX() - this._fe;\r\n const N: float64 = target.getY() - this._fn;\r\n /* Calculate conformal latitude and longitude */\r\n const i: float64 = ObliqueStereographic.atan(E / (this._h + N));\r\n const j: float64 = ObliqueStereographic.atan(E / (this._g - N)) - i;\r\n const chi: float64 = this._chi0 + 2.0 * ObliqueStereographic.atan((N - E * ObliqueStereographic.tan(j / 2.0)) / (2.0 * this._R * this._k0));\r\n const lambda: float64 = j + 2.0 * i + this._lambda0;\r\n const lon: float64 = (lambda - this._lambda0) / this._n + this._lambda0;\r\n /* Iterate to get isometric (psi) and geodetic (phi) latitude */\r\n const sinChi: float64 = ObliqueStereographic.sin(chi);\r\n const psi: float64 = 0.5 * ObliqueStereographic.log((1.0 + sinChi) / (this._c * (1.0 - sinChi))) / this._n;\r\n let phiK: float64 = 2.0 * ObliqueStereographic.atan(ObliqueStereographic.exp(psi)) - ObliqueStereographic.PI / 2.0;\r\n for (let k: number = 1; k < 8; k++) {\r\n const esinPhi: float64 = this._e * ObliqueStereographic.sin(phiK);\r\n const psiK: float64 = ObliqueStereographic.log(ObliqueStereographic.tan(phiK / 2.0 + ObliqueStereographic.PI / 4.0) * ObliqueStereographic.pow((1.0 - esinPhi) / (1.0 + esinPhi), this._e / 2.0));\r\n const phiNextK: float64 = phiK - (psiK - psi) * ObliqueStereographic.cos(phiK) * (1.0 - esinPhi * esinPhi) / (1.0 - this._e2);\r\n const change: float64 = Math.abs(phiNextK - phiK);\r\n phiK = phiNextK;\r\n if (change < 1.0e-12) break; // normally after 4 iterations\r\n }\r\n /* Save the position */\r\n source.setX(lon);\r\n source.setY(phiK);\r\n source.setZ(target.getZ()); // Keep the Z value\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ObliqueStereographic.js","sourceRoot":"","sources":["../../../../../src/spatial/ecrs/projection/ObliqueStereographic.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module OrbitGT\n */\n\n// package orbitgt.spatial.ecrs.projection;\n\ntype int8 = number;\ntype int16 = number;\ntype int32 = number;\ntype float32 = number;\ntype float64 = number;\n\nimport { Coordinate } from \"../../geom/Coordinate\";\nimport { CRS } from \"../CRS\";\nimport { Ellipsoid } from \"../Ellipsoid\";\nimport { Operation } from \"../Operation\";\nimport { OperationMethod } from \"../OperationMethod\";\nimport { ParameterValueList } from \"../ParameterValueList\";\n\n/**\n * Class ObliqueStereographic defines an Oblique Stereographic projection.\n *\n * The 'source' CRS is the geodetic CRS.\n * The 'target' CRS is the projected CRS.\n *\n * Based on the following document:\n *\n * Coordinate Conversions and Transformations including Formulas\n * Guidance Note Number 7, part 2\n * Revised August 2006\n * Available at: http://www.epsg.org/\n *\n * Formulas: see 1.4.7.1 'Oblique and Equatorial Stereographic cases'\n *\n * @version 1.0 December 2006\n */\n/** @internal */\nexport class ObliqueStereographic extends OperationMethod {\n /** The code of this method */\n public static readonly METHOD_CODE: int32 = 9809;\n\n /** The value of PI */\n private static readonly PI: float64 = Math.PI;\n\n /** Latitude of false origin */\n private _lat0: float64;\n /** Longitude of false origin */\n private _lon0: float64;\n /** Scale factor at natural origin */\n private _k0: float64;\n /** False easting */\n private _fe: float64;\n /** False northing */\n private _fn: float64;\n\n /** The parameters for the conformal sphere */\n private _e: float64;\n private _e2: float64;\n private _R: float64;\n private _n: float64;\n private _c: float64;\n private _chi0: float64;\n private _lambda0: float64;\n private _g: float64;\n private _h: float64;\n\n /**\n * Create a new projection.\n * @param parameters the values of the parameters.\n */\n public constructor(parameters: ParameterValueList) {\n super(ObliqueStereographic.METHOD_CODE, \"Oblique Stereographic\", parameters);\n /* Store the parameters */\n this._lat0 = (parameters != null) ? parameters.getValue(8801) : 0.0;\n this._lon0 = (parameters != null) ? parameters.getValue(8802) : 0.0;\n this._k0 = (parameters != null) ? parameters.getValue(8805) : 0.0;\n this._fe = (parameters != null) ? parameters.getValue(8806) : 0.0;\n this._fn = (parameters != null) ? parameters.getValue(8807) : 0.0;\n }\n\n /**\n * Create a new projection.\n * @param lat0 latitude of natural origin (radians).\n * @param lon0 longitude of natural origin (radians).\n * @param k0 scale factor at natural origin.\n * @param fe false easting.\n * @param fn false northing.\n */\n public static create(lat0: float64, lon0: float64, k0: float64, fe: float64, fn: float64): ObliqueStereographic {\n const projection: ObliqueStereographic = new ObliqueStereographic(null);\n projection._lat0 = lat0;\n projection._lon0 = lon0;\n projection._k0 = k0;\n projection._fe = fe;\n projection._fn = fn;\n return projection;\n }\n\n /**\n * Get the power of a number.\n */\n private static pow(n: float64, e: float64): float64 {\n return Math.exp(e * Math.log(n));\n }\n\n /**\n * Calculate sinus.\n */\n private static sin(a: float64): float64 {\n return Math.sin(a);\n }\n\n /**\n * Calculate cosinus.\n */\n private static cos(a: float64): float64 {\n return Math.cos(a);\n }\n\n /**\n * Calculate tangent.\n */\n private static tan(a: float64): float64 {\n return Math.tan(a);\n }\n\n /**\n * Calculate arcsinus.\n */\n private static asin(v: float64): float64 {\n return Math.asin(v);\n }\n\n /**\n * Calculate arctangent.\n */\n private static atan(v: float64): float64 {\n return Math.atan(v);\n }\n\n /**\n * Calculate log.\n */\n private static log(v: float64): float64 {\n return Math.log(v);\n }\n\n /**\n * Calculate exp.\n */\n private static exp(v: float64): float64 {\n return Math.exp(v);\n }\n\n /**\n * Initialize the projection.\n * @param ellipsoid the ellipsoid to use.\n * @return this projection (for convenience).\n */\n public initializeProjection(ellipsoid: Ellipsoid): ObliqueStereographic {\n /* Get the ellipsoid parameters */\n const a: float64 = ellipsoid.getA();\n this._e = ellipsoid.getE();\n /* Calculate conformat latitude (chi0) and longitude (lambda0) */\n this._e2 = this._e * this._e;\n const sinLat0: float64 = ObliqueStereographic.sin(this._lat0);\n const t0: float64 = 1.0 - this._e2 * sinLat0 * sinLat0;\n const rho0: float64 = a * (1 - this._e2) / ObliqueStereographic.pow(t0, 1.5);\n const nu0: float64 = a / ObliqueStereographic.pow(t0, 0.5);\n this._R = ObliqueStereographic.pow(rho0 * nu0, 0.5);\n this._n = ObliqueStereographic.pow(1.0 + (this._e2 * ObliqueStereographic.pow(ObliqueStereographic.cos(this._lat0), 4)) / (1.0 - this._e2), 0.5);\n const S1: float64 = (1.0 + sinLat0) / (1.0 - sinLat0);\n const S2: float64 = (1.0 - this._e * sinLat0) / (1.0 + this._e * sinLat0);\n const w1: float64 = ObliqueStereographic.pow(S1 * ObliqueStereographic.pow(S2, this._e), this._n);\n const sinChi0: float64 = (w1 - 1.0) / (w1 + 1.0);\n this._c = (this._n + sinLat0) * (1.0 - sinChi0) / ((this._n - sinLat0) * (1.0 + sinChi0));\n const w2: float64 = this._c * w1;\n this._chi0 = ObliqueStereographic.asin((w2 - 1.0) / (w2 + 1.0));\n this._lambda0 = this._lon0;\n /* For reverse calculation */\n this._g = 2.0 * this._R * this._k0 * ObliqueStereographic.tan(ObliqueStereographic.PI / 4.0 - this._chi0 / 2.0);\n this._h = 4.0 * this._R * this._k0 * ObliqueStereographic.tan(this._chi0) + this._g;\n /* Return the projection */\n return this;\n }\n\n /**\n * OperationMethod method.\n * @see OperationMethod#initialize\n */\n public override initialize(operation: Operation): void {\n this.initializeProjection(operation.getSourceCRS().getEllipsoid());\n }\n\n /**\n * OperationMethod interface method.\n * @see OperationMethod#forward\n */\n public forward(sourceCRS: CRS, source: Coordinate, targetCRS: CRS, target: Coordinate): void {\n /* Get the parameters */\n const lon: float64 = source.getX();\n const lat: float64 = source.getY();\n const sinLat: float64 = ObliqueStereographic.sin(lat);\n /* Calculate conformal latitude and longitude */\n const lambda: float64 = this._n * (lon - this._lambda0) + this._lambda0;\n const Sa: float64 = (1.0 + sinLat) / (1.0 - sinLat);\n const Sb: float64 = (1.0 - this._e * sinLat) / (1.0 + this._e * sinLat);\n const w: float64 = this._c * ObliqueStereographic.pow(Sa * ObliqueStereographic.pow(Sb, this._e), this._n);\n const chi: float64 = ObliqueStereographic.asin((w - 1.0) / (w + 1.0));\n /* Calculate easting and northing */\n const B: float64 = 1.0 + ObliqueStereographic.sin(chi) * ObliqueStereographic.sin(this._chi0) + ObliqueStereographic.cos(chi) * ObliqueStereographic.cos(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0);\n const E: float64 = this._fe + 2.0 * this._R * this._k0 * ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(lambda - this._lambda0) / B;\n const N: float64 = this._fn + 2.0 * this._R * this._k0 * (ObliqueStereographic.sin(chi) * ObliqueStereographic.cos(this._chi0) - ObliqueStereographic.cos(chi) * ObliqueStereographic.sin(this._chi0) * ObliqueStereographic.cos(lambda - this._lambda0)) / B;\n /* Save the position */\n target.setX(E);\n target.setY(N);\n target.setZ(source.getZ()); // Keep the Z value\n }\n\n /**\n * OperationMethod interface method.\n * @see OperationMethod#reverse\n */\n public reverse(sourceCRS: CRS, source: Coordinate, targetCRS: CRS, target: Coordinate): void {\n /* Get the parameters */\n const E: float64 = target.getX() - this._fe;\n const N: float64 = target.getY() - this._fn;\n /* Calculate conformal latitude and longitude */\n const i: float64 = ObliqueStereographic.atan(E / (this._h + N));\n const j: float64 = ObliqueStereographic.atan(E / (this._g - N)) - i;\n const chi: float64 = this._chi0 + 2.0 * ObliqueStereographic.atan((N - E * ObliqueStereographic.tan(j / 2.0)) / (2.0 * this._R * this._k0));\n const lambda: float64 = j + 2.0 * i + this._lambda0;\n const lon: float64 = (lambda - this._lambda0) / this._n + this._lambda0;\n /* Iterate to get isometric (psi) and geodetic (phi) latitude */\n const sinChi: float64 = ObliqueStereographic.sin(chi);\n const psi: float64 = 0.5 * ObliqueStereographic.log((1.0 + sinChi) / (this._c * (1.0 - sinChi))) / this._n;\n let phiK: float64 = 2.0 * ObliqueStereographic.atan(ObliqueStereographic.exp(psi)) - ObliqueStereographic.PI / 2.0;\n for (let k: number = 1; k < 8; k++) {\n const esinPhi: float64 = this._e * ObliqueStereographic.sin(phiK);\n const psiK: float64 = ObliqueStereographic.log(ObliqueStereographic.tan(phiK / 2.0 + ObliqueStereographic.PI / 4.0) * ObliqueStereographic.pow((1.0 - esinPhi) / (1.0 + esinPhi), this._e / 2.0));\n const phiNextK: float64 = phiK - (psiK - psi) * ObliqueStereographic.cos(phiK) * (1.0 - esinPhi * esinPhi) / (1.0 - this._e2);\n const change: float64 = Math.abs(phiNextK - phiK);\n phiK = phiNextK;\n if (change < 1.0e-12) break; // normally after 4 iterations\n }\n /* Save the position */\n source.setX(lon);\n source.setY(phiK);\n source.setZ(target.getZ()); // Keep the Z value\n }\n}\n"]}
|