@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.
Files changed (782) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/lib/cjs/core-orbitgt.d.ts +26 -26
  3. package/lib/cjs/core-orbitgt.js +62 -58
  4. package/lib/cjs/core-orbitgt.js.map +1 -1
  5. package/lib/cjs/pointcloud/format/opc/AttributeMask.d.ts +30 -30
  6. package/lib/cjs/pointcloud/format/opc/AttributeMask.js +47 -47
  7. package/lib/cjs/pointcloud/format/opc/AttributeMask.js.map +1 -1
  8. package/lib/cjs/pointcloud/format/opc/AttributeReader.d.ts +63 -63
  9. package/lib/cjs/pointcloud/format/opc/AttributeReader.d.ts.map +1 -1
  10. package/lib/cjs/pointcloud/format/opc/AttributeReader.js +24 -24
  11. package/lib/cjs/pointcloud/format/opc/AttributeReader.js.map +1 -1
  12. package/lib/cjs/pointcloud/format/opc/BlockRecord.d.ts +54 -54
  13. package/lib/cjs/pointcloud/format/opc/BlockRecord.d.ts.map +1 -1
  14. package/lib/cjs/pointcloud/format/opc/BlockRecord.js +84 -84
  15. package/lib/cjs/pointcloud/format/opc/BlockRecord.js.map +1 -1
  16. package/lib/cjs/pointcloud/format/opc/ContainerFile.d.ts +85 -85
  17. package/lib/cjs/pointcloud/format/opc/ContainerFile.d.ts.map +1 -1
  18. package/lib/cjs/pointcloud/format/opc/ContainerFile.js +199 -199
  19. package/lib/cjs/pointcloud/format/opc/ContainerFile.js.map +1 -1
  20. package/lib/cjs/pointcloud/format/opc/ContainerFilePart.d.ts +55 -55
  21. package/lib/cjs/pointcloud/format/opc/ContainerFilePart.js +75 -75
  22. package/lib/cjs/pointcloud/format/opc/ContainerFilePart.js.map +1 -1
  23. package/lib/cjs/pointcloud/format/opc/DirectoryReader.d.ts +75 -75
  24. package/lib/cjs/pointcloud/format/opc/DirectoryReader.d.ts.map +1 -1
  25. package/lib/cjs/pointcloud/format/opc/DirectoryReader.js +169 -169
  26. package/lib/cjs/pointcloud/format/opc/DirectoryReader.js.map +1 -1
  27. package/lib/cjs/pointcloud/format/opc/DirectoryRecord.d.ts +59 -59
  28. package/lib/cjs/pointcloud/format/opc/DirectoryRecord.d.ts.map +1 -1
  29. package/lib/cjs/pointcloud/format/opc/DirectoryRecord.js +89 -89
  30. package/lib/cjs/pointcloud/format/opc/DirectoryRecord.js.map +1 -1
  31. package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.d.ts +106 -106
  32. package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.d.ts.map +1 -1
  33. package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.js +197 -197
  34. package/lib/cjs/pointcloud/format/opc/EmbeddedAttributeReader.js.map +1 -1
  35. package/lib/cjs/pointcloud/format/opc/FileAccess.d.ts +39 -39
  36. package/lib/cjs/pointcloud/format/opc/FileAccess.js +48 -48
  37. package/lib/cjs/pointcloud/format/opc/FileAccess.js.map +1 -1
  38. package/lib/cjs/pointcloud/format/opc/FileReader.d.ts +118 -118
  39. package/lib/cjs/pointcloud/format/opc/FileReader.d.ts.map +1 -1
  40. package/lib/cjs/pointcloud/format/opc/FileReader.js +248 -248
  41. package/lib/cjs/pointcloud/format/opc/FileReader.js.map +1 -1
  42. package/lib/cjs/pointcloud/format/opc/FileRecord.d.ts +89 -89
  43. package/lib/cjs/pointcloud/format/opc/FileRecord.d.ts.map +1 -1
  44. package/lib/cjs/pointcloud/format/opc/FileRecord.js +125 -125
  45. package/lib/cjs/pointcloud/format/opc/FileRecord.js.map +1 -1
  46. package/lib/cjs/pointcloud/format/opc/GeometryReader.d.ts +79 -79
  47. package/lib/cjs/pointcloud/format/opc/GeometryReader.d.ts.map +1 -1
  48. package/lib/cjs/pointcloud/format/opc/GeometryReader.js +163 -163
  49. package/lib/cjs/pointcloud/format/opc/GeometryReader.js.map +1 -1
  50. package/lib/cjs/pointcloud/format/opc/GeometryRecord.d.ts +53 -53
  51. package/lib/cjs/pointcloud/format/opc/GeometryRecord.js +107 -107
  52. package/lib/cjs/pointcloud/format/opc/GeometryRecord.js.map +1 -1
  53. package/lib/cjs/pointcloud/format/opc/OPCReader.d.ts +157 -157
  54. package/lib/cjs/pointcloud/format/opc/OPCReader.d.ts.map +1 -1
  55. package/lib/cjs/pointcloud/format/opc/OPCReader.js +319 -319
  56. package/lib/cjs/pointcloud/format/opc/OPCReader.js.map +1 -1
  57. package/lib/cjs/pointcloud/format/opc/PointReader.d.ts +72 -72
  58. package/lib/cjs/pointcloud/format/opc/PointReader.d.ts.map +1 -1
  59. package/lib/cjs/pointcloud/format/opc/PointReader.js +152 -152
  60. package/lib/cjs/pointcloud/format/opc/PointReader.js.map +1 -1
  61. package/lib/cjs/pointcloud/format/opc/TileReadBuffer.d.ts +63 -63
  62. package/lib/cjs/pointcloud/format/opc/TileReadBuffer.d.ts.map +1 -1
  63. package/lib/cjs/pointcloud/format/opc/TileReadBuffer.js +92 -92
  64. package/lib/cjs/pointcloud/format/opc/TileReadBuffer.js.map +1 -1
  65. package/lib/cjs/pointcloud/format/opc/TileRecord.d.ts +88 -88
  66. package/lib/cjs/pointcloud/format/opc/TileRecord.d.ts.map +1 -1
  67. package/lib/cjs/pointcloud/format/opc/TileRecord.js +161 -161
  68. package/lib/cjs/pointcloud/format/opc/TileRecord.js.map +1 -1
  69. package/lib/cjs/pointcloud/model/AttributeTypes.d.ts +37 -37
  70. package/lib/cjs/pointcloud/model/AttributeTypes.d.ts.map +1 -1
  71. package/lib/cjs/pointcloud/model/AttributeTypes.js +64 -64
  72. package/lib/cjs/pointcloud/model/AttributeTypes.js.map +1 -1
  73. package/lib/cjs/pointcloud/model/AttributeValue.d.ts +247 -247
  74. package/lib/cjs/pointcloud/model/AttributeValue.d.ts.map +1 -1
  75. package/lib/cjs/pointcloud/model/AttributeValue.js +508 -508
  76. package/lib/cjs/pointcloud/model/AttributeValue.js.map +1 -1
  77. package/lib/cjs/pointcloud/model/BlockIndex.d.ts +49 -49
  78. package/lib/cjs/pointcloud/model/BlockIndex.d.ts.map +1 -1
  79. package/lib/cjs/pointcloud/model/BlockIndex.js +48 -48
  80. package/lib/cjs/pointcloud/model/BlockIndex.js.map +1 -1
  81. package/lib/cjs/pointcloud/model/CloudPoint.d.ts +210 -210
  82. package/lib/cjs/pointcloud/model/CloudPoint.d.ts.map +1 -1
  83. package/lib/cjs/pointcloud/model/CloudPoint.js +318 -318
  84. package/lib/cjs/pointcloud/model/CloudPoint.js.map +1 -1
  85. package/lib/cjs/pointcloud/model/Grid.d.ts +91 -91
  86. package/lib/cjs/pointcloud/model/Grid.d.ts.map +1 -1
  87. package/lib/cjs/pointcloud/model/Grid.js +129 -129
  88. package/lib/cjs/pointcloud/model/Grid.js.map +1 -1
  89. package/lib/cjs/pointcloud/model/GridIndex.d.ts +66 -66
  90. package/lib/cjs/pointcloud/model/GridIndex.d.ts.map +1 -1
  91. package/lib/cjs/pointcloud/model/GridIndex.js +93 -93
  92. package/lib/cjs/pointcloud/model/GridIndex.js.map +1 -1
  93. package/lib/cjs/pointcloud/model/PointAttribute.d.ts +208 -208
  94. package/lib/cjs/pointcloud/model/PointAttribute.d.ts.map +1 -1
  95. package/lib/cjs/pointcloud/model/PointAttribute.js +374 -374
  96. package/lib/cjs/pointcloud/model/PointAttribute.js.map +1 -1
  97. package/lib/cjs/pointcloud/model/PointCloudReader.d.ts +156 -156
  98. package/lib/cjs/pointcloud/model/PointCloudReader.d.ts.map +1 -1
  99. package/lib/cjs/pointcloud/model/PointCloudReader.js +189 -189
  100. package/lib/cjs/pointcloud/model/PointCloudReader.js.map +1 -1
  101. package/lib/cjs/pointcloud/model/PointData.d.ts +17 -17
  102. package/lib/cjs/pointcloud/model/PointData.js +24 -24
  103. package/lib/cjs/pointcloud/model/PointData.js.map +1 -1
  104. package/lib/cjs/pointcloud/model/PointDataRaw.d.ts +34 -34
  105. package/lib/cjs/pointcloud/model/PointDataRaw.d.ts.map +1 -1
  106. package/lib/cjs/pointcloud/model/PointDataRaw.js +69 -69
  107. package/lib/cjs/pointcloud/model/PointDataRaw.js.map +1 -1
  108. package/lib/cjs/pointcloud/model/ReadRequest.d.ts +175 -175
  109. package/lib/cjs/pointcloud/model/ReadRequest.d.ts.map +1 -1
  110. package/lib/cjs/pointcloud/model/ReadRequest.js +239 -239
  111. package/lib/cjs/pointcloud/model/ReadRequest.js.map +1 -1
  112. package/lib/cjs/pointcloud/model/StandardAttributes.d.ts +40 -40
  113. package/lib/cjs/pointcloud/model/StandardAttributes.d.ts.map +1 -1
  114. package/lib/cjs/pointcloud/model/StandardAttributes.js +47 -47
  115. package/lib/cjs/pointcloud/model/StandardAttributes.js.map +1 -1
  116. package/lib/cjs/pointcloud/model/TileIndex.d.ts +47 -47
  117. package/lib/cjs/pointcloud/model/TileIndex.d.ts.map +1 -1
  118. package/lib/cjs/pointcloud/model/TileIndex.js +47 -47
  119. package/lib/cjs/pointcloud/model/TileIndex.js.map +1 -1
  120. package/lib/cjs/pointcloud/render/AViewRequest.d.ts +38 -38
  121. package/lib/cjs/pointcloud/render/AViewRequest.d.ts.map +1 -1
  122. package/lib/cjs/pointcloud/render/AViewRequest.js +24 -24
  123. package/lib/cjs/pointcloud/render/AViewRequest.js.map +1 -1
  124. package/lib/cjs/pointcloud/render/Block.d.ts +67 -67
  125. package/lib/cjs/pointcloud/render/Block.js +119 -119
  126. package/lib/cjs/pointcloud/render/Block.js.map +1 -1
  127. package/lib/cjs/pointcloud/render/DataManager.d.ts +136 -136
  128. package/lib/cjs/pointcloud/render/DataManager.d.ts.map +1 -1
  129. package/lib/cjs/pointcloud/render/DataManager.js +342 -342
  130. package/lib/cjs/pointcloud/render/DataManager.js.map +1 -1
  131. package/lib/cjs/pointcloud/render/FrameData.d.ts +30 -30
  132. package/lib/cjs/pointcloud/render/FrameData.js +39 -39
  133. package/lib/cjs/pointcloud/render/FrameData.js.map +1 -1
  134. package/lib/cjs/pointcloud/render/Level.d.ts +90 -90
  135. package/lib/cjs/pointcloud/render/Level.d.ts.map +1 -1
  136. package/lib/cjs/pointcloud/render/Level.js +119 -119
  137. package/lib/cjs/pointcloud/render/Level.js.map +1 -1
  138. package/lib/cjs/pointcloud/render/TileLoadSorter.d.ts +60 -60
  139. package/lib/cjs/pointcloud/render/TileLoadSorter.d.ts.map +1 -1
  140. package/lib/cjs/pointcloud/render/TileLoadSorter.js +99 -99
  141. package/lib/cjs/pointcloud/render/TileLoadSorter.js.map +1 -1
  142. package/lib/cjs/pointcloud/render/ViewTree.d.ts +113 -113
  143. package/lib/cjs/pointcloud/render/ViewTree.d.ts.map +1 -1
  144. package/lib/cjs/pointcloud/render/ViewTree.js +363 -363
  145. package/lib/cjs/pointcloud/render/ViewTree.js.map +1 -1
  146. package/lib/cjs/spatial/crs/CRSEngine.d.ts +55 -55
  147. package/lib/cjs/spatial/crs/CRSEngine.js +93 -93
  148. package/lib/cjs/spatial/crs/CRSEngine.js.map +1 -1
  149. package/lib/cjs/spatial/crs/CRSManager.d.ts +49 -49
  150. package/lib/cjs/spatial/crs/CRSManager.js +109 -109
  151. package/lib/cjs/spatial/crs/CRSManager.js.map +1 -1
  152. package/lib/cjs/spatial/ecrs/Axis.d.ts +77 -77
  153. package/lib/cjs/spatial/ecrs/Axis.d.ts.map +1 -1
  154. package/lib/cjs/spatial/ecrs/Axis.js +93 -93
  155. package/lib/cjs/spatial/ecrs/Axis.js.map +1 -1
  156. package/lib/cjs/spatial/ecrs/CRS.d.ts +447 -447
  157. package/lib/cjs/spatial/ecrs/CRS.d.ts.map +1 -1
  158. package/lib/cjs/spatial/ecrs/CRS.js +930 -930
  159. package/lib/cjs/spatial/ecrs/CRS.js.map +1 -1
  160. package/lib/cjs/spatial/ecrs/CoordinateSystem.d.ts +142 -142
  161. package/lib/cjs/spatial/ecrs/CoordinateSystem.d.ts.map +1 -1
  162. package/lib/cjs/spatial/ecrs/CoordinateSystem.js +326 -326
  163. package/lib/cjs/spatial/ecrs/CoordinateSystem.js.map +1 -1
  164. package/lib/cjs/spatial/ecrs/DataFileUnit.d.ts +10 -10
  165. package/lib/cjs/spatial/ecrs/DataFileUnit.js +104 -104
  166. package/lib/cjs/spatial/ecrs/DataFileUnit.js.map +1 -1
  167. package/lib/cjs/spatial/ecrs/Datum.d.ts +111 -111
  168. package/lib/cjs/spatial/ecrs/Datum.d.ts.map +1 -1
  169. package/lib/cjs/spatial/ecrs/Datum.js +166 -166
  170. package/lib/cjs/spatial/ecrs/Datum.js.map +1 -1
  171. package/lib/cjs/spatial/ecrs/Ellipsoid.d.ts +188 -188
  172. package/lib/cjs/spatial/ecrs/Ellipsoid.d.ts.map +1 -1
  173. package/lib/cjs/spatial/ecrs/Ellipsoid.js +336 -336
  174. package/lib/cjs/spatial/ecrs/Ellipsoid.js.map +1 -1
  175. package/lib/cjs/spatial/ecrs/OnlineEngine.d.ts +48 -48
  176. package/lib/cjs/spatial/ecrs/OnlineEngine.js +102 -102
  177. package/lib/cjs/spatial/ecrs/OnlineEngine.js.map +1 -1
  178. package/lib/cjs/spatial/ecrs/OnlineRegistry.d.ts +37 -37
  179. package/lib/cjs/spatial/ecrs/OnlineRegistry.d.ts.map +1 -1
  180. package/lib/cjs/spatial/ecrs/OnlineRegistry.js +76 -76
  181. package/lib/cjs/spatial/ecrs/OnlineRegistry.js.map +1 -1
  182. package/lib/cjs/spatial/ecrs/Operation.d.ts +191 -191
  183. package/lib/cjs/spatial/ecrs/Operation.d.ts.map +1 -1
  184. package/lib/cjs/spatial/ecrs/Operation.js +345 -345
  185. package/lib/cjs/spatial/ecrs/Operation.js.map +1 -1
  186. package/lib/cjs/spatial/ecrs/OperationMethod.d.ts +71 -71
  187. package/lib/cjs/spatial/ecrs/OperationMethod.d.ts.map +1 -1
  188. package/lib/cjs/spatial/ecrs/OperationMethod.js +75 -75
  189. package/lib/cjs/spatial/ecrs/OperationMethod.js.map +1 -1
  190. package/lib/cjs/spatial/ecrs/ParameterValue.d.ts +49 -49
  191. package/lib/cjs/spatial/ecrs/ParameterValue.d.ts.map +1 -1
  192. package/lib/cjs/spatial/ecrs/ParameterValue.js +65 -65
  193. package/lib/cjs/spatial/ecrs/ParameterValue.js.map +1 -1
  194. package/lib/cjs/spatial/ecrs/ParameterValueList.d.ts +72 -72
  195. package/lib/cjs/spatial/ecrs/ParameterValueList.d.ts.map +1 -1
  196. package/lib/cjs/spatial/ecrs/ParameterValueList.js +120 -120
  197. package/lib/cjs/spatial/ecrs/ParameterValueList.js.map +1 -1
  198. package/lib/cjs/spatial/ecrs/PrimeMeridian.d.ts +78 -78
  199. package/lib/cjs/spatial/ecrs/PrimeMeridian.d.ts.map +1 -1
  200. package/lib/cjs/spatial/ecrs/PrimeMeridian.js +108 -108
  201. package/lib/cjs/spatial/ecrs/PrimeMeridian.js.map +1 -1
  202. package/lib/cjs/spatial/ecrs/Registry.d.ts +109 -109
  203. package/lib/cjs/spatial/ecrs/Registry.d.ts.map +1 -1
  204. package/lib/cjs/spatial/ecrs/Registry.js +207 -207
  205. package/lib/cjs/spatial/ecrs/Registry.js.map +1 -1
  206. package/lib/cjs/spatial/ecrs/Transform.d.ts +77 -77
  207. package/lib/cjs/spatial/ecrs/Transform.d.ts.map +1 -1
  208. package/lib/cjs/spatial/ecrs/Transform.js +396 -396
  209. package/lib/cjs/spatial/ecrs/Transform.js.map +1 -1
  210. package/lib/cjs/spatial/ecrs/Unit.d.ts +170 -170
  211. package/lib/cjs/spatial/ecrs/Unit.d.ts.map +1 -1
  212. package/lib/cjs/spatial/ecrs/Unit.js +336 -336
  213. package/lib/cjs/spatial/ecrs/Unit.js.map +1 -1
  214. package/lib/cjs/spatial/ecrs/VerticalModel.d.ts +69 -69
  215. package/lib/cjs/spatial/ecrs/VerticalModel.d.ts.map +1 -1
  216. package/lib/cjs/spatial/ecrs/VerticalModel.js +88 -88
  217. package/lib/cjs/spatial/ecrs/VerticalModel.js.map +1 -1
  218. package/lib/cjs/spatial/ecrs/WellKnownText.d.ts +153 -153
  219. package/lib/cjs/spatial/ecrs/WellKnownText.d.ts.map +1 -1
  220. package/lib/cjs/spatial/ecrs/WellKnownText.js +494 -494
  221. package/lib/cjs/spatial/ecrs/WellKnownText.js.map +1 -1
  222. package/lib/cjs/spatial/ecrs/WellKnownTextNode.d.ts +69 -69
  223. package/lib/cjs/spatial/ecrs/WellKnownTextNode.d.ts.map +1 -1
  224. package/lib/cjs/spatial/ecrs/WellKnownTextNode.js +128 -128
  225. package/lib/cjs/spatial/ecrs/WellKnownTextNode.js.map +1 -1
  226. package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.d.ts +101 -101
  227. package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.d.ts.map +1 -1
  228. package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.js +162 -162
  229. package/lib/cjs/spatial/ecrs/projection/HotineObliqueMercator.js.map +1 -1
  230. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts +79 -79
  231. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts.map +1 -1
  232. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.js +125 -125
  233. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConic.js.map +1 -1
  234. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts +47 -47
  235. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts.map +1 -1
  236. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js +73 -73
  237. package/lib/cjs/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js.map +1 -1
  238. package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.d.ts +72 -72
  239. package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.d.ts.map +1 -1
  240. package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.js +129 -129
  241. package/lib/cjs/spatial/ecrs/projection/LambertConical1SP.js.map +1 -1
  242. package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.d.ts +120 -120
  243. package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.d.ts.map +1 -1
  244. package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.js +179 -179
  245. package/lib/cjs/spatial/ecrs/projection/LambertConical2SP.js.map +1 -1
  246. package/lib/cjs/spatial/ecrs/projection/Mercator1SP.d.ts +73 -73
  247. package/lib/cjs/spatial/ecrs/projection/Mercator1SP.d.ts.map +1 -1
  248. package/lib/cjs/spatial/ecrs/projection/Mercator1SP.js +112 -112
  249. package/lib/cjs/spatial/ecrs/projection/Mercator1SP.js.map +1 -1
  250. package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.d.ts +96 -96
  251. package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.d.ts.map +1 -1
  252. package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.js +173 -173
  253. package/lib/cjs/spatial/ecrs/projection/ObliqueMercator.js.map +1 -1
  254. package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.d.ts +123 -123
  255. package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.d.ts.map +1 -1
  256. package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.js +208 -208
  257. package/lib/cjs/spatial/ecrs/projection/ObliqueStereographic.js.map +1 -1
  258. package/lib/cjs/spatial/ecrs/projection/TransverseMercator.d.ts +108 -108
  259. package/lib/cjs/spatial/ecrs/projection/TransverseMercator.d.ts.map +1 -1
  260. package/lib/cjs/spatial/ecrs/projection/TransverseMercator.js +183 -183
  261. package/lib/cjs/spatial/ecrs/projection/TransverseMercator.js.map +1 -1
  262. package/lib/cjs/spatial/ecrs/transformation/PositionVector.d.ts +90 -90
  263. package/lib/cjs/spatial/ecrs/transformation/PositionVector.d.ts.map +1 -1
  264. package/lib/cjs/spatial/ecrs/transformation/PositionVector.js +130 -130
  265. package/lib/cjs/spatial/ecrs/transformation/PositionVector.js.map +1 -1
  266. package/lib/cjs/spatial/geom/Bounds.d.ts +33 -33
  267. package/lib/cjs/spatial/geom/Bounds.d.ts.map +1 -1
  268. package/lib/cjs/spatial/geom/Bounds.js +156 -156
  269. package/lib/cjs/spatial/geom/Bounds.js.map +1 -1
  270. package/lib/cjs/spatial/geom/Coordinate.d.ts +61 -61
  271. package/lib/cjs/spatial/geom/Coordinate.d.ts.map +1 -1
  272. package/lib/cjs/spatial/geom/Coordinate.js +186 -186
  273. package/lib/cjs/spatial/geom/Coordinate.js.map +1 -1
  274. package/lib/cjs/spatial/geom/Line.d.ts +225 -225
  275. package/lib/cjs/spatial/geom/Line.d.ts.map +1 -1
  276. package/lib/cjs/spatial/geom/Line.js +432 -432
  277. package/lib/cjs/spatial/geom/Line.js.map +1 -1
  278. package/lib/cjs/spatial/geom/Transform.d.ts +340 -340
  279. package/lib/cjs/spatial/geom/Transform.d.ts.map +1 -1
  280. package/lib/cjs/spatial/geom/Transform.js +748 -748
  281. package/lib/cjs/spatial/geom/Transform.js.map +1 -1
  282. package/lib/cjs/system/buffer/ABuffer.d.ts +51 -51
  283. package/lib/cjs/system/buffer/ABuffer.d.ts.map +1 -1
  284. package/lib/cjs/system/buffer/ABuffer.js +90 -90
  285. package/lib/cjs/system/buffer/ABuffer.js.map +1 -1
  286. package/lib/cjs/system/buffer/Float32Buffer.d.ts +46 -46
  287. package/lib/cjs/system/buffer/Float32Buffer.d.ts.map +1 -1
  288. package/lib/cjs/system/buffer/Float32Buffer.js +60 -60
  289. package/lib/cjs/system/buffer/Float32Buffer.js.map +1 -1
  290. package/lib/cjs/system/buffer/LittleEndian.d.ts +149 -149
  291. package/lib/cjs/system/buffer/LittleEndian.d.ts.map +1 -1
  292. package/lib/cjs/system/buffer/LittleEndian.js +303 -303
  293. package/lib/cjs/system/buffer/LittleEndian.js.map +1 -1
  294. package/lib/cjs/system/buffer/Uint16Buffer.d.ts +49 -49
  295. package/lib/cjs/system/buffer/Uint16Buffer.d.ts.map +1 -1
  296. package/lib/cjs/system/buffer/Uint16Buffer.js +65 -65
  297. package/lib/cjs/system/buffer/Uint16Buffer.js.map +1 -1
  298. package/lib/cjs/system/buffer/Uint8Buffer.d.ts +49 -49
  299. package/lib/cjs/system/buffer/Uint8Buffer.d.ts.map +1 -1
  300. package/lib/cjs/system/buffer/Uint8Buffer.js +65 -65
  301. package/lib/cjs/system/buffer/Uint8Buffer.js.map +1 -1
  302. package/lib/cjs/system/collection/AList.d.ts +30 -30
  303. package/lib/cjs/system/collection/AList.d.ts.map +1 -1
  304. package/lib/cjs/system/collection/AList.js +70 -70
  305. package/lib/cjs/system/collection/AList.js.map +1 -1
  306. package/lib/cjs/system/collection/IntMap.d.ts +18 -18
  307. package/lib/cjs/system/collection/IntMap.d.ts.map +1 -1
  308. package/lib/cjs/system/collection/IntMap.js +35 -35
  309. package/lib/cjs/system/collection/IntMap.js.map +1 -1
  310. package/lib/cjs/system/collection/StringMap.d.ts +26 -26
  311. package/lib/cjs/system/collection/StringMap.d.ts.map +1 -1
  312. package/lib/cjs/system/collection/StringMap.js +63 -63
  313. package/lib/cjs/system/collection/StringMap.js.map +1 -1
  314. package/lib/cjs/system/io/ABufferInStream.d.ts +29 -29
  315. package/lib/cjs/system/io/ABufferInStream.d.ts.map +1 -1
  316. package/lib/cjs/system/io/ABufferInStream.js +46 -46
  317. package/lib/cjs/system/io/ABufferInStream.js.map +1 -1
  318. package/lib/cjs/system/io/InStream.d.ts +23 -23
  319. package/lib/cjs/system/io/InStream.d.ts.map +1 -1
  320. package/lib/cjs/system/io/InStream.js +34 -34
  321. package/lib/cjs/system/io/InStream.js.map +1 -1
  322. package/lib/cjs/system/io/OutStream.d.ts +23 -23
  323. package/lib/cjs/system/io/OutStream.d.ts.map +1 -1
  324. package/lib/cjs/system/io/OutStream.js +33 -33
  325. package/lib/cjs/system/io/OutStream.js.map +1 -1
  326. package/lib/cjs/system/runtime/ALong.d.ts +329 -329
  327. package/lib/cjs/system/runtime/ALong.d.ts.map +1 -1
  328. package/lib/cjs/system/runtime/ALong.js +687 -687
  329. package/lib/cjs/system/runtime/ALong.js.map +1 -1
  330. package/lib/cjs/system/runtime/ASystem.d.ts +14 -14
  331. package/lib/cjs/system/runtime/ASystem.js +31 -31
  332. package/lib/cjs/system/runtime/ASystem.js.map +1 -1
  333. package/lib/cjs/system/runtime/Downloader.d.ts +17 -17
  334. package/lib/cjs/system/runtime/Downloader.js +38 -38
  335. package/lib/cjs/system/runtime/Downloader.js.map +1 -1
  336. package/lib/cjs/system/runtime/DownloaderNode.d.ts +18 -18
  337. package/lib/cjs/system/runtime/DownloaderNode.js +129 -129
  338. package/lib/cjs/system/runtime/DownloaderNode.js.map +1 -1
  339. package/lib/cjs/system/runtime/DownloaderXhr.d.ts +18 -18
  340. package/lib/cjs/system/runtime/DownloaderXhr.js +131 -131
  341. package/lib/cjs/system/runtime/DownloaderXhr.js.map +1 -1
  342. package/lib/cjs/system/runtime/Message.d.ts +16 -16
  343. package/lib/cjs/system/runtime/Message.js +39 -39
  344. package/lib/cjs/system/runtime/Message.js.map +1 -1
  345. package/lib/cjs/system/runtime/Numbers.d.ts +34 -34
  346. package/lib/cjs/system/runtime/Numbers.d.ts.map +1 -1
  347. package/lib/cjs/system/runtime/Numbers.js +87 -87
  348. package/lib/cjs/system/runtime/Numbers.js.map +1 -1
  349. package/lib/cjs/system/runtime/Strings.d.ts +49 -49
  350. package/lib/cjs/system/runtime/Strings.d.ts.map +1 -1
  351. package/lib/cjs/system/runtime/Strings.js +188 -188
  352. package/lib/cjs/system/runtime/Strings.js.map +1 -1
  353. package/lib/cjs/system/runtime/iComparator.d.ts +12 -12
  354. package/lib/cjs/system/runtime/iComparator.d.ts.map +1 -1
  355. package/lib/cjs/system/runtime/iComparator.js +9 -9
  356. package/lib/cjs/system/runtime/iComparator.js.map +1 -1
  357. package/lib/cjs/system/storage/CacheList.d.ts +39 -39
  358. package/lib/cjs/system/storage/CacheList.d.ts.map +1 -1
  359. package/lib/cjs/system/storage/CacheList.js +80 -80
  360. package/lib/cjs/system/storage/CacheList.js.map +1 -1
  361. package/lib/cjs/system/storage/CachedItem.d.ts +21 -21
  362. package/lib/cjs/system/storage/CachedItem.d.ts.map +1 -1
  363. package/lib/cjs/system/storage/CachedItem.js +25 -25
  364. package/lib/cjs/system/storage/CachedItem.js.map +1 -1
  365. package/lib/cjs/system/storage/ContentLoader.d.ts +64 -64
  366. package/lib/cjs/system/storage/ContentLoader.d.ts.map +1 -1
  367. package/lib/cjs/system/storage/ContentLoader.js +95 -95
  368. package/lib/cjs/system/storage/ContentLoader.js.map +1 -1
  369. package/lib/cjs/system/storage/FileContent.d.ts +19 -19
  370. package/lib/cjs/system/storage/FileContent.js +24 -24
  371. package/lib/cjs/system/storage/FileContent.js.map +1 -1
  372. package/lib/cjs/system/storage/FileRange.d.ts +20 -20
  373. package/lib/cjs/system/storage/FileRange.d.ts.map +1 -1
  374. package/lib/cjs/system/storage/FileRange.js +24 -24
  375. package/lib/cjs/system/storage/FileRange.js.map +1 -1
  376. package/lib/cjs/system/storage/FileStorage.d.ts +44 -44
  377. package/lib/cjs/system/storage/FileStorage.d.ts.map +1 -1
  378. package/lib/cjs/system/storage/FileStorage.js +62 -62
  379. package/lib/cjs/system/storage/FileStorage.js.map +1 -1
  380. package/lib/cjs/system/storage/NodeFS.d.ts +41 -41
  381. package/lib/cjs/system/storage/NodeFS.d.ts.map +1 -1
  382. package/lib/cjs/system/storage/NodeFS.js +79 -79
  383. package/lib/cjs/system/storage/NodeFS.js.map +1 -1
  384. package/lib/cjs/system/storage/PageCachedFile.d.ts +54 -54
  385. package/lib/cjs/system/storage/PageCachedFile.d.ts.map +1 -1
  386. package/lib/cjs/system/storage/PageCachedFile.js +165 -165
  387. package/lib/cjs/system/storage/PageCachedFile.js.map +1 -1
  388. package/lib/cjs/system/storage/UrlFS.d.ts +53 -53
  389. package/lib/cjs/system/storage/UrlFS.d.ts.map +1 -1
  390. package/lib/cjs/system/storage/UrlFS.js +114 -114
  391. package/lib/cjs/system/storage/UrlFS.js.map +1 -1
  392. package/lib/esm/core-orbitgt.d.ts +26 -26
  393. package/lib/esm/core-orbitgt.js +31 -31
  394. package/lib/esm/core-orbitgt.js.map +1 -1
  395. package/lib/esm/pointcloud/format/opc/AttributeMask.d.ts +30 -30
  396. package/lib/esm/pointcloud/format/opc/AttributeMask.js +43 -43
  397. package/lib/esm/pointcloud/format/opc/AttributeMask.js.map +1 -1
  398. package/lib/esm/pointcloud/format/opc/AttributeReader.d.ts +63 -63
  399. package/lib/esm/pointcloud/format/opc/AttributeReader.d.ts.map +1 -1
  400. package/lib/esm/pointcloud/format/opc/AttributeReader.js +20 -20
  401. package/lib/esm/pointcloud/format/opc/AttributeReader.js.map +1 -1
  402. package/lib/esm/pointcloud/format/opc/BlockRecord.d.ts +54 -54
  403. package/lib/esm/pointcloud/format/opc/BlockRecord.d.ts.map +1 -1
  404. package/lib/esm/pointcloud/format/opc/BlockRecord.js +81 -80
  405. package/lib/esm/pointcloud/format/opc/BlockRecord.js.map +1 -1
  406. package/lib/esm/pointcloud/format/opc/ContainerFile.d.ts +85 -85
  407. package/lib/esm/pointcloud/format/opc/ContainerFile.d.ts.map +1 -1
  408. package/lib/esm/pointcloud/format/opc/ContainerFile.js +196 -195
  409. package/lib/esm/pointcloud/format/opc/ContainerFile.js.map +1 -1
  410. package/lib/esm/pointcloud/format/opc/ContainerFilePart.d.ts +55 -55
  411. package/lib/esm/pointcloud/format/opc/ContainerFilePart.js +71 -71
  412. package/lib/esm/pointcloud/format/opc/ContainerFilePart.js.map +1 -1
  413. package/lib/esm/pointcloud/format/opc/DirectoryReader.d.ts +75 -75
  414. package/lib/esm/pointcloud/format/opc/DirectoryReader.d.ts.map +1 -1
  415. package/lib/esm/pointcloud/format/opc/DirectoryReader.js +165 -165
  416. package/lib/esm/pointcloud/format/opc/DirectoryReader.js.map +1 -1
  417. package/lib/esm/pointcloud/format/opc/DirectoryRecord.d.ts +59 -59
  418. package/lib/esm/pointcloud/format/opc/DirectoryRecord.d.ts.map +1 -1
  419. package/lib/esm/pointcloud/format/opc/DirectoryRecord.js +85 -85
  420. package/lib/esm/pointcloud/format/opc/DirectoryRecord.js.map +1 -1
  421. package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.d.ts +106 -106
  422. package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.d.ts.map +1 -1
  423. package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.js +193 -193
  424. package/lib/esm/pointcloud/format/opc/EmbeddedAttributeReader.js.map +1 -1
  425. package/lib/esm/pointcloud/format/opc/FileAccess.d.ts +39 -39
  426. package/lib/esm/pointcloud/format/opc/FileAccess.js +44 -44
  427. package/lib/esm/pointcloud/format/opc/FileAccess.js.map +1 -1
  428. package/lib/esm/pointcloud/format/opc/FileReader.d.ts +118 -118
  429. package/lib/esm/pointcloud/format/opc/FileReader.d.ts.map +1 -1
  430. package/lib/esm/pointcloud/format/opc/FileReader.js +245 -244
  431. package/lib/esm/pointcloud/format/opc/FileReader.js.map +1 -1
  432. package/lib/esm/pointcloud/format/opc/FileRecord.d.ts +89 -89
  433. package/lib/esm/pointcloud/format/opc/FileRecord.d.ts.map +1 -1
  434. package/lib/esm/pointcloud/format/opc/FileRecord.js +121 -121
  435. package/lib/esm/pointcloud/format/opc/FileRecord.js.map +1 -1
  436. package/lib/esm/pointcloud/format/opc/GeometryReader.d.ts +79 -79
  437. package/lib/esm/pointcloud/format/opc/GeometryReader.d.ts.map +1 -1
  438. package/lib/esm/pointcloud/format/opc/GeometryReader.js +160 -159
  439. package/lib/esm/pointcloud/format/opc/GeometryReader.js.map +1 -1
  440. package/lib/esm/pointcloud/format/opc/GeometryRecord.d.ts +53 -53
  441. package/lib/esm/pointcloud/format/opc/GeometryRecord.js +103 -103
  442. package/lib/esm/pointcloud/format/opc/GeometryRecord.js.map +1 -1
  443. package/lib/esm/pointcloud/format/opc/OPCReader.d.ts +157 -157
  444. package/lib/esm/pointcloud/format/opc/OPCReader.d.ts.map +1 -1
  445. package/lib/esm/pointcloud/format/opc/OPCReader.js +315 -315
  446. package/lib/esm/pointcloud/format/opc/OPCReader.js.map +1 -1
  447. package/lib/esm/pointcloud/format/opc/PointReader.d.ts +72 -72
  448. package/lib/esm/pointcloud/format/opc/PointReader.d.ts.map +1 -1
  449. package/lib/esm/pointcloud/format/opc/PointReader.js +148 -148
  450. package/lib/esm/pointcloud/format/opc/PointReader.js.map +1 -1
  451. package/lib/esm/pointcloud/format/opc/TileReadBuffer.d.ts +63 -63
  452. package/lib/esm/pointcloud/format/opc/TileReadBuffer.d.ts.map +1 -1
  453. package/lib/esm/pointcloud/format/opc/TileReadBuffer.js +88 -88
  454. package/lib/esm/pointcloud/format/opc/TileReadBuffer.js.map +1 -1
  455. package/lib/esm/pointcloud/format/opc/TileRecord.d.ts +88 -88
  456. package/lib/esm/pointcloud/format/opc/TileRecord.d.ts.map +1 -1
  457. package/lib/esm/pointcloud/format/opc/TileRecord.js +158 -157
  458. package/lib/esm/pointcloud/format/opc/TileRecord.js.map +1 -1
  459. package/lib/esm/pointcloud/model/AttributeTypes.d.ts +37 -37
  460. package/lib/esm/pointcloud/model/AttributeTypes.d.ts.map +1 -1
  461. package/lib/esm/pointcloud/model/AttributeTypes.js +61 -60
  462. package/lib/esm/pointcloud/model/AttributeTypes.js.map +1 -1
  463. package/lib/esm/pointcloud/model/AttributeValue.d.ts +247 -247
  464. package/lib/esm/pointcloud/model/AttributeValue.d.ts.map +1 -1
  465. package/lib/esm/pointcloud/model/AttributeValue.js +505 -504
  466. package/lib/esm/pointcloud/model/AttributeValue.js.map +1 -1
  467. package/lib/esm/pointcloud/model/BlockIndex.d.ts +49 -49
  468. package/lib/esm/pointcloud/model/BlockIndex.d.ts.map +1 -1
  469. package/lib/esm/pointcloud/model/BlockIndex.js +44 -44
  470. package/lib/esm/pointcloud/model/BlockIndex.js.map +1 -1
  471. package/lib/esm/pointcloud/model/CloudPoint.d.ts +210 -210
  472. package/lib/esm/pointcloud/model/CloudPoint.d.ts.map +1 -1
  473. package/lib/esm/pointcloud/model/CloudPoint.js +315 -314
  474. package/lib/esm/pointcloud/model/CloudPoint.js.map +1 -1
  475. package/lib/esm/pointcloud/model/Grid.d.ts +91 -91
  476. package/lib/esm/pointcloud/model/Grid.d.ts.map +1 -1
  477. package/lib/esm/pointcloud/model/Grid.js +125 -125
  478. package/lib/esm/pointcloud/model/Grid.js.map +1 -1
  479. package/lib/esm/pointcloud/model/GridIndex.d.ts +66 -66
  480. package/lib/esm/pointcloud/model/GridIndex.d.ts.map +1 -1
  481. package/lib/esm/pointcloud/model/GridIndex.js +89 -89
  482. package/lib/esm/pointcloud/model/GridIndex.js.map +1 -1
  483. package/lib/esm/pointcloud/model/PointAttribute.d.ts +208 -208
  484. package/lib/esm/pointcloud/model/PointAttribute.d.ts.map +1 -1
  485. package/lib/esm/pointcloud/model/PointAttribute.js +370 -370
  486. package/lib/esm/pointcloud/model/PointAttribute.js.map +1 -1
  487. package/lib/esm/pointcloud/model/PointCloudReader.d.ts +156 -156
  488. package/lib/esm/pointcloud/model/PointCloudReader.d.ts.map +1 -1
  489. package/lib/esm/pointcloud/model/PointCloudReader.js +185 -185
  490. package/lib/esm/pointcloud/model/PointCloudReader.js.map +1 -1
  491. package/lib/esm/pointcloud/model/PointData.d.ts +17 -17
  492. package/lib/esm/pointcloud/model/PointData.js +20 -20
  493. package/lib/esm/pointcloud/model/PointData.js.map +1 -1
  494. package/lib/esm/pointcloud/model/PointDataRaw.d.ts +34 -34
  495. package/lib/esm/pointcloud/model/PointDataRaw.d.ts.map +1 -1
  496. package/lib/esm/pointcloud/model/PointDataRaw.js +66 -65
  497. package/lib/esm/pointcloud/model/PointDataRaw.js.map +1 -1
  498. package/lib/esm/pointcloud/model/ReadRequest.d.ts +175 -175
  499. package/lib/esm/pointcloud/model/ReadRequest.d.ts.map +1 -1
  500. package/lib/esm/pointcloud/model/ReadRequest.js +236 -235
  501. package/lib/esm/pointcloud/model/ReadRequest.js.map +1 -1
  502. package/lib/esm/pointcloud/model/StandardAttributes.d.ts +40 -40
  503. package/lib/esm/pointcloud/model/StandardAttributes.d.ts.map +1 -1
  504. package/lib/esm/pointcloud/model/StandardAttributes.js +44 -43
  505. package/lib/esm/pointcloud/model/StandardAttributes.js.map +1 -1
  506. package/lib/esm/pointcloud/model/TileIndex.d.ts +47 -47
  507. package/lib/esm/pointcloud/model/TileIndex.d.ts.map +1 -1
  508. package/lib/esm/pointcloud/model/TileIndex.js +43 -43
  509. package/lib/esm/pointcloud/model/TileIndex.js.map +1 -1
  510. package/lib/esm/pointcloud/render/AViewRequest.d.ts +38 -38
  511. package/lib/esm/pointcloud/render/AViewRequest.d.ts.map +1 -1
  512. package/lib/esm/pointcloud/render/AViewRequest.js +20 -20
  513. package/lib/esm/pointcloud/render/AViewRequest.js.map +1 -1
  514. package/lib/esm/pointcloud/render/Block.d.ts +67 -67
  515. package/lib/esm/pointcloud/render/Block.js +115 -115
  516. package/lib/esm/pointcloud/render/Block.js.map +1 -1
  517. package/lib/esm/pointcloud/render/DataManager.d.ts +136 -136
  518. package/lib/esm/pointcloud/render/DataManager.d.ts.map +1 -1
  519. package/lib/esm/pointcloud/render/DataManager.js +339 -338
  520. package/lib/esm/pointcloud/render/DataManager.js.map +1 -1
  521. package/lib/esm/pointcloud/render/FrameData.d.ts +30 -30
  522. package/lib/esm/pointcloud/render/FrameData.js +35 -35
  523. package/lib/esm/pointcloud/render/FrameData.js.map +1 -1
  524. package/lib/esm/pointcloud/render/Level.d.ts +90 -90
  525. package/lib/esm/pointcloud/render/Level.d.ts.map +1 -1
  526. package/lib/esm/pointcloud/render/Level.js +115 -115
  527. package/lib/esm/pointcloud/render/Level.js.map +1 -1
  528. package/lib/esm/pointcloud/render/TileLoadSorter.d.ts +60 -60
  529. package/lib/esm/pointcloud/render/TileLoadSorter.d.ts.map +1 -1
  530. package/lib/esm/pointcloud/render/TileLoadSorter.js +96 -95
  531. package/lib/esm/pointcloud/render/TileLoadSorter.js.map +1 -1
  532. package/lib/esm/pointcloud/render/ViewTree.d.ts +113 -113
  533. package/lib/esm/pointcloud/render/ViewTree.d.ts.map +1 -1
  534. package/lib/esm/pointcloud/render/ViewTree.js +360 -359
  535. package/lib/esm/pointcloud/render/ViewTree.js.map +1 -1
  536. package/lib/esm/spatial/crs/CRSEngine.d.ts +55 -55
  537. package/lib/esm/spatial/crs/CRSEngine.js +89 -89
  538. package/lib/esm/spatial/crs/CRSEngine.js.map +1 -1
  539. package/lib/esm/spatial/crs/CRSManager.d.ts +49 -49
  540. package/lib/esm/spatial/crs/CRSManager.js +106 -105
  541. package/lib/esm/spatial/crs/CRSManager.js.map +1 -1
  542. package/lib/esm/spatial/ecrs/Axis.d.ts +77 -77
  543. package/lib/esm/spatial/ecrs/Axis.d.ts.map +1 -1
  544. package/lib/esm/spatial/ecrs/Axis.js +89 -89
  545. package/lib/esm/spatial/ecrs/Axis.js.map +1 -1
  546. package/lib/esm/spatial/ecrs/CRS.d.ts +447 -447
  547. package/lib/esm/spatial/ecrs/CRS.d.ts.map +1 -1
  548. package/lib/esm/spatial/ecrs/CRS.js +927 -926
  549. package/lib/esm/spatial/ecrs/CRS.js.map +1 -1
  550. package/lib/esm/spatial/ecrs/CoordinateSystem.d.ts +142 -142
  551. package/lib/esm/spatial/ecrs/CoordinateSystem.d.ts.map +1 -1
  552. package/lib/esm/spatial/ecrs/CoordinateSystem.js +323 -322
  553. package/lib/esm/spatial/ecrs/CoordinateSystem.js.map +1 -1
  554. package/lib/esm/spatial/ecrs/DataFileUnit.d.ts +10 -10
  555. package/lib/esm/spatial/ecrs/DataFileUnit.js +101 -100
  556. package/lib/esm/spatial/ecrs/DataFileUnit.js.map +1 -1
  557. package/lib/esm/spatial/ecrs/Datum.d.ts +111 -111
  558. package/lib/esm/spatial/ecrs/Datum.d.ts.map +1 -1
  559. package/lib/esm/spatial/ecrs/Datum.js +163 -162
  560. package/lib/esm/spatial/ecrs/Datum.js.map +1 -1
  561. package/lib/esm/spatial/ecrs/Ellipsoid.d.ts +188 -188
  562. package/lib/esm/spatial/ecrs/Ellipsoid.d.ts.map +1 -1
  563. package/lib/esm/spatial/ecrs/Ellipsoid.js +332 -332
  564. package/lib/esm/spatial/ecrs/Ellipsoid.js.map +1 -1
  565. package/lib/esm/spatial/ecrs/OnlineEngine.d.ts +48 -48
  566. package/lib/esm/spatial/ecrs/OnlineEngine.js +98 -98
  567. package/lib/esm/spatial/ecrs/OnlineEngine.js.map +1 -1
  568. package/lib/esm/spatial/ecrs/OnlineRegistry.d.ts +37 -37
  569. package/lib/esm/spatial/ecrs/OnlineRegistry.d.ts.map +1 -1
  570. package/lib/esm/spatial/ecrs/OnlineRegistry.js +73 -72
  571. package/lib/esm/spatial/ecrs/OnlineRegistry.js.map +1 -1
  572. package/lib/esm/spatial/ecrs/Operation.d.ts +191 -191
  573. package/lib/esm/spatial/ecrs/Operation.d.ts.map +1 -1
  574. package/lib/esm/spatial/ecrs/Operation.js +342 -341
  575. package/lib/esm/spatial/ecrs/Operation.js.map +1 -1
  576. package/lib/esm/spatial/ecrs/OperationMethod.d.ts +71 -71
  577. package/lib/esm/spatial/ecrs/OperationMethod.d.ts.map +1 -1
  578. package/lib/esm/spatial/ecrs/OperationMethod.js +71 -71
  579. package/lib/esm/spatial/ecrs/OperationMethod.js.map +1 -1
  580. package/lib/esm/spatial/ecrs/ParameterValue.d.ts +49 -49
  581. package/lib/esm/spatial/ecrs/ParameterValue.d.ts.map +1 -1
  582. package/lib/esm/spatial/ecrs/ParameterValue.js +61 -61
  583. package/lib/esm/spatial/ecrs/ParameterValue.js.map +1 -1
  584. package/lib/esm/spatial/ecrs/ParameterValueList.d.ts +72 -72
  585. package/lib/esm/spatial/ecrs/ParameterValueList.d.ts.map +1 -1
  586. package/lib/esm/spatial/ecrs/ParameterValueList.js +116 -116
  587. package/lib/esm/spatial/ecrs/ParameterValueList.js.map +1 -1
  588. package/lib/esm/spatial/ecrs/PrimeMeridian.d.ts +78 -78
  589. package/lib/esm/spatial/ecrs/PrimeMeridian.d.ts.map +1 -1
  590. package/lib/esm/spatial/ecrs/PrimeMeridian.js +104 -104
  591. package/lib/esm/spatial/ecrs/PrimeMeridian.js.map +1 -1
  592. package/lib/esm/spatial/ecrs/Registry.d.ts +109 -109
  593. package/lib/esm/spatial/ecrs/Registry.d.ts.map +1 -1
  594. package/lib/esm/spatial/ecrs/Registry.js +204 -203
  595. package/lib/esm/spatial/ecrs/Registry.js.map +1 -1
  596. package/lib/esm/spatial/ecrs/Transform.d.ts +77 -77
  597. package/lib/esm/spatial/ecrs/Transform.d.ts.map +1 -1
  598. package/lib/esm/spatial/ecrs/Transform.js +393 -392
  599. package/lib/esm/spatial/ecrs/Transform.js.map +1 -1
  600. package/lib/esm/spatial/ecrs/Unit.d.ts +170 -170
  601. package/lib/esm/spatial/ecrs/Unit.d.ts.map +1 -1
  602. package/lib/esm/spatial/ecrs/Unit.js +333 -332
  603. package/lib/esm/spatial/ecrs/Unit.js.map +1 -1
  604. package/lib/esm/spatial/ecrs/VerticalModel.d.ts +69 -69
  605. package/lib/esm/spatial/ecrs/VerticalModel.d.ts.map +1 -1
  606. package/lib/esm/spatial/ecrs/VerticalModel.js +84 -84
  607. package/lib/esm/spatial/ecrs/VerticalModel.js.map +1 -1
  608. package/lib/esm/spatial/ecrs/WellKnownText.d.ts +153 -153
  609. package/lib/esm/spatial/ecrs/WellKnownText.d.ts.map +1 -1
  610. package/lib/esm/spatial/ecrs/WellKnownText.js +491 -490
  611. package/lib/esm/spatial/ecrs/WellKnownText.js.map +1 -1
  612. package/lib/esm/spatial/ecrs/WellKnownTextNode.d.ts +69 -69
  613. package/lib/esm/spatial/ecrs/WellKnownTextNode.d.ts.map +1 -1
  614. package/lib/esm/spatial/ecrs/WellKnownTextNode.js +124 -124
  615. package/lib/esm/spatial/ecrs/WellKnownTextNode.js.map +1 -1
  616. package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.d.ts +101 -101
  617. package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.d.ts.map +1 -1
  618. package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.js +159 -158
  619. package/lib/esm/spatial/ecrs/projection/HotineObliqueMercator.js.map +1 -1
  620. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts +79 -79
  621. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.d.ts.map +1 -1
  622. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.js +122 -121
  623. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConic.js.map +1 -1
  624. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts +47 -47
  625. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.d.ts.map +1 -1
  626. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js +70 -69
  627. package/lib/esm/spatial/ecrs/projection/KrovakObliqueConformalConicEN.js.map +1 -1
  628. package/lib/esm/spatial/ecrs/projection/LambertConical1SP.d.ts +72 -72
  629. package/lib/esm/spatial/ecrs/projection/LambertConical1SP.d.ts.map +1 -1
  630. package/lib/esm/spatial/ecrs/projection/LambertConical1SP.js +126 -125
  631. package/lib/esm/spatial/ecrs/projection/LambertConical1SP.js.map +1 -1
  632. package/lib/esm/spatial/ecrs/projection/LambertConical2SP.d.ts +120 -120
  633. package/lib/esm/spatial/ecrs/projection/LambertConical2SP.d.ts.map +1 -1
  634. package/lib/esm/spatial/ecrs/projection/LambertConical2SP.js +176 -175
  635. package/lib/esm/spatial/ecrs/projection/LambertConical2SP.js.map +1 -1
  636. package/lib/esm/spatial/ecrs/projection/Mercator1SP.d.ts +73 -73
  637. package/lib/esm/spatial/ecrs/projection/Mercator1SP.d.ts.map +1 -1
  638. package/lib/esm/spatial/ecrs/projection/Mercator1SP.js +109 -108
  639. package/lib/esm/spatial/ecrs/projection/Mercator1SP.js.map +1 -1
  640. package/lib/esm/spatial/ecrs/projection/ObliqueMercator.d.ts +96 -96
  641. package/lib/esm/spatial/ecrs/projection/ObliqueMercator.d.ts.map +1 -1
  642. package/lib/esm/spatial/ecrs/projection/ObliqueMercator.js +170 -169
  643. package/lib/esm/spatial/ecrs/projection/ObliqueMercator.js.map +1 -1
  644. package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.d.ts +123 -123
  645. package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.d.ts.map +1 -1
  646. package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.js +205 -204
  647. package/lib/esm/spatial/ecrs/projection/ObliqueStereographic.js.map +1 -1
  648. package/lib/esm/spatial/ecrs/projection/TransverseMercator.d.ts +108 -108
  649. package/lib/esm/spatial/ecrs/projection/TransverseMercator.d.ts.map +1 -1
  650. package/lib/esm/spatial/ecrs/projection/TransverseMercator.js +180 -179
  651. package/lib/esm/spatial/ecrs/projection/TransverseMercator.js.map +1 -1
  652. package/lib/esm/spatial/ecrs/transformation/PositionVector.d.ts +90 -90
  653. package/lib/esm/spatial/ecrs/transformation/PositionVector.d.ts.map +1 -1
  654. package/lib/esm/spatial/ecrs/transformation/PositionVector.js +127 -126
  655. package/lib/esm/spatial/ecrs/transformation/PositionVector.js.map +1 -1
  656. package/lib/esm/spatial/geom/Bounds.d.ts +33 -33
  657. package/lib/esm/spatial/geom/Bounds.d.ts.map +1 -1
  658. package/lib/esm/spatial/geom/Bounds.js +152 -152
  659. package/lib/esm/spatial/geom/Bounds.js.map +1 -1
  660. package/lib/esm/spatial/geom/Coordinate.d.ts +61 -61
  661. package/lib/esm/spatial/geom/Coordinate.d.ts.map +1 -1
  662. package/lib/esm/spatial/geom/Coordinate.js +182 -182
  663. package/lib/esm/spatial/geom/Coordinate.js.map +1 -1
  664. package/lib/esm/spatial/geom/Line.d.ts +225 -225
  665. package/lib/esm/spatial/geom/Line.d.ts.map +1 -1
  666. package/lib/esm/spatial/geom/Line.js +428 -428
  667. package/lib/esm/spatial/geom/Line.js.map +1 -1
  668. package/lib/esm/spatial/geom/Transform.d.ts +340 -340
  669. package/lib/esm/spatial/geom/Transform.d.ts.map +1 -1
  670. package/lib/esm/spatial/geom/Transform.js +744 -744
  671. package/lib/esm/spatial/geom/Transform.js.map +1 -1
  672. package/lib/esm/system/buffer/ABuffer.d.ts +51 -51
  673. package/lib/esm/system/buffer/ABuffer.d.ts.map +1 -1
  674. package/lib/esm/system/buffer/ABuffer.js +86 -86
  675. package/lib/esm/system/buffer/ABuffer.js.map +1 -1
  676. package/lib/esm/system/buffer/Float32Buffer.d.ts +46 -46
  677. package/lib/esm/system/buffer/Float32Buffer.d.ts.map +1 -1
  678. package/lib/esm/system/buffer/Float32Buffer.js +57 -56
  679. package/lib/esm/system/buffer/Float32Buffer.js.map +1 -1
  680. package/lib/esm/system/buffer/LittleEndian.d.ts +149 -149
  681. package/lib/esm/system/buffer/LittleEndian.d.ts.map +1 -1
  682. package/lib/esm/system/buffer/LittleEndian.js +299 -299
  683. package/lib/esm/system/buffer/LittleEndian.js.map +1 -1
  684. package/lib/esm/system/buffer/Uint16Buffer.d.ts +49 -49
  685. package/lib/esm/system/buffer/Uint16Buffer.d.ts.map +1 -1
  686. package/lib/esm/system/buffer/Uint16Buffer.js +62 -61
  687. package/lib/esm/system/buffer/Uint16Buffer.js.map +1 -1
  688. package/lib/esm/system/buffer/Uint8Buffer.d.ts +49 -49
  689. package/lib/esm/system/buffer/Uint8Buffer.d.ts.map +1 -1
  690. package/lib/esm/system/buffer/Uint8Buffer.js +62 -61
  691. package/lib/esm/system/buffer/Uint8Buffer.js.map +1 -1
  692. package/lib/esm/system/collection/AList.d.ts +30 -30
  693. package/lib/esm/system/collection/AList.d.ts.map +1 -1
  694. package/lib/esm/system/collection/AList.js +66 -66
  695. package/lib/esm/system/collection/AList.js.map +1 -1
  696. package/lib/esm/system/collection/IntMap.d.ts +18 -18
  697. package/lib/esm/system/collection/IntMap.d.ts.map +1 -1
  698. package/lib/esm/system/collection/IntMap.js +31 -31
  699. package/lib/esm/system/collection/IntMap.js.map +1 -1
  700. package/lib/esm/system/collection/StringMap.d.ts +26 -26
  701. package/lib/esm/system/collection/StringMap.d.ts.map +1 -1
  702. package/lib/esm/system/collection/StringMap.js +59 -59
  703. package/lib/esm/system/collection/StringMap.js.map +1 -1
  704. package/lib/esm/system/io/ABufferInStream.d.ts +29 -29
  705. package/lib/esm/system/io/ABufferInStream.d.ts.map +1 -1
  706. package/lib/esm/system/io/ABufferInStream.js +42 -42
  707. package/lib/esm/system/io/ABufferInStream.js.map +1 -1
  708. package/lib/esm/system/io/InStream.d.ts +23 -23
  709. package/lib/esm/system/io/InStream.d.ts.map +1 -1
  710. package/lib/esm/system/io/InStream.js +30 -30
  711. package/lib/esm/system/io/InStream.js.map +1 -1
  712. package/lib/esm/system/io/OutStream.d.ts +23 -23
  713. package/lib/esm/system/io/OutStream.d.ts.map +1 -1
  714. package/lib/esm/system/io/OutStream.js +29 -29
  715. package/lib/esm/system/io/OutStream.js.map +1 -1
  716. package/lib/esm/system/runtime/ALong.d.ts +329 -329
  717. package/lib/esm/system/runtime/ALong.d.ts.map +1 -1
  718. package/lib/esm/system/runtime/ALong.js +684 -683
  719. package/lib/esm/system/runtime/ALong.js.map +1 -1
  720. package/lib/esm/system/runtime/ASystem.d.ts +14 -14
  721. package/lib/esm/system/runtime/ASystem.js +28 -27
  722. package/lib/esm/system/runtime/ASystem.js.map +1 -1
  723. package/lib/esm/system/runtime/Downloader.d.ts +17 -17
  724. package/lib/esm/system/runtime/Downloader.js +35 -34
  725. package/lib/esm/system/runtime/Downloader.js.map +1 -1
  726. package/lib/esm/system/runtime/DownloaderNode.d.ts +18 -18
  727. package/lib/esm/system/runtime/DownloaderNode.js +125 -125
  728. package/lib/esm/system/runtime/DownloaderNode.js.map +1 -1
  729. package/lib/esm/system/runtime/DownloaderXhr.d.ts +18 -18
  730. package/lib/esm/system/runtime/DownloaderXhr.js +127 -127
  731. package/lib/esm/system/runtime/DownloaderXhr.js.map +1 -1
  732. package/lib/esm/system/runtime/Message.d.ts +16 -16
  733. package/lib/esm/system/runtime/Message.js +36 -35
  734. package/lib/esm/system/runtime/Message.js.map +1 -1
  735. package/lib/esm/system/runtime/Numbers.d.ts +34 -34
  736. package/lib/esm/system/runtime/Numbers.d.ts.map +1 -1
  737. package/lib/esm/system/runtime/Numbers.js +84 -83
  738. package/lib/esm/system/runtime/Numbers.js.map +1 -1
  739. package/lib/esm/system/runtime/Strings.d.ts +49 -49
  740. package/lib/esm/system/runtime/Strings.d.ts.map +1 -1
  741. package/lib/esm/system/runtime/Strings.js +185 -184
  742. package/lib/esm/system/runtime/Strings.js.map +1 -1
  743. package/lib/esm/system/runtime/iComparator.d.ts +12 -12
  744. package/lib/esm/system/runtime/iComparator.d.ts.map +1 -1
  745. package/lib/esm/system/runtime/iComparator.js +8 -8
  746. package/lib/esm/system/runtime/iComparator.js.map +1 -1
  747. package/lib/esm/system/storage/CacheList.d.ts +39 -39
  748. package/lib/esm/system/storage/CacheList.d.ts.map +1 -1
  749. package/lib/esm/system/storage/CacheList.js +76 -76
  750. package/lib/esm/system/storage/CacheList.js.map +1 -1
  751. package/lib/esm/system/storage/CachedItem.d.ts +21 -21
  752. package/lib/esm/system/storage/CachedItem.d.ts.map +1 -1
  753. package/lib/esm/system/storage/CachedItem.js +21 -21
  754. package/lib/esm/system/storage/CachedItem.js.map +1 -1
  755. package/lib/esm/system/storage/ContentLoader.d.ts +64 -64
  756. package/lib/esm/system/storage/ContentLoader.d.ts.map +1 -1
  757. package/lib/esm/system/storage/ContentLoader.js +92 -91
  758. package/lib/esm/system/storage/ContentLoader.js.map +1 -1
  759. package/lib/esm/system/storage/FileContent.d.ts +19 -19
  760. package/lib/esm/system/storage/FileContent.js +20 -20
  761. package/lib/esm/system/storage/FileContent.js.map +1 -1
  762. package/lib/esm/system/storage/FileRange.d.ts +20 -20
  763. package/lib/esm/system/storage/FileRange.d.ts.map +1 -1
  764. package/lib/esm/system/storage/FileRange.js +20 -20
  765. package/lib/esm/system/storage/FileRange.js.map +1 -1
  766. package/lib/esm/system/storage/FileStorage.d.ts +44 -44
  767. package/lib/esm/system/storage/FileStorage.d.ts.map +1 -1
  768. package/lib/esm/system/storage/FileStorage.js +58 -58
  769. package/lib/esm/system/storage/FileStorage.js.map +1 -1
  770. package/lib/esm/system/storage/NodeFS.d.ts +41 -41
  771. package/lib/esm/system/storage/NodeFS.d.ts.map +1 -1
  772. package/lib/esm/system/storage/NodeFS.js +75 -75
  773. package/lib/esm/system/storage/NodeFS.js.map +1 -1
  774. package/lib/esm/system/storage/PageCachedFile.d.ts +54 -54
  775. package/lib/esm/system/storage/PageCachedFile.d.ts.map +1 -1
  776. package/lib/esm/system/storage/PageCachedFile.js +161 -161
  777. package/lib/esm/system/storage/PageCachedFile.js.map +1 -1
  778. package/lib/esm/system/storage/UrlFS.d.ts +53 -53
  779. package/lib/esm/system/storage/UrlFS.d.ts.map +1 -1
  780. package/lib/esm/system/storage/UrlFS.js +110 -110
  781. package/lib/esm/system/storage/UrlFS.js.map +1 -1
  782. package/package.json +10 -11
@@ -1 +1 @@
1
- {"version":3,"file":"ViewTree.js","sourceRoot":"","sources":["../../../../src/pointcloud/render/ViewTree.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.render;\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 { Bounds } from \"../../spatial/geom/Bounds\";\r\nimport { AList } from \"../../system/collection/AList\";\r\nimport { Message } from \"../../system/runtime/Message\";\r\nimport { BlockIndex } from \"../model/BlockIndex\";\r\nimport { GridIndex } from \"../model/GridIndex\";\r\nimport { PointData } from \"../model/PointData\";\r\nimport { TileIndex } from \"../model/TileIndex\";\r\nimport { AViewRequest } from \"./AViewRequest\";\r\nimport { Block } from \"./Block\";\r\nimport { DataManager } from \"./DataManager\";\r\nimport { Level } from \"./Level\";\r\n\r\n/**\r\n * Class TileSpatialIndex manages a spatial index of levels, blocks and tiles in pointcloud. The index does not store data, only block and tile indexes.\r\n *\r\n * @version 1.0 November 2015\r\n */\r\n/** @internal */\r\nexport class ViewTree {\r\n\t/** The name of this module */\r\n\tprivate static readonly MODULE: string = \"ViewTree\";\r\n\r\n\t/** Debug mode? */\r\n\tprivate static readonly DEBUG: boolean = false;\r\n\r\n\t/** The data manager */\r\n\tprivate _dataManager: DataManager;\r\n\t/** The levels */\r\n\tprivate _levels: Array<Level>;\r\n\t/** The data bounds */\r\n\tprivate _dataBounds: Bounds;\r\n\t/** The root blocks */\r\n\tprivate _rootBlocks: AList<Block>;\r\n\r\n\t/**\r\n\t * Create a new tree.\r\n\t * @param levels the levels.\r\n\t * @param dataBounds the data bounds.\r\n\t */\r\n\tpublic constructor(dataManager: DataManager, levels: Array<Level>, dataBounds: Bounds) {\r\n\t\t/* Store the parameters */\r\n\t\tthis._dataManager = dataManager;\r\n\t\tthis._levels = levels;\r\n\t\tthis._dataBounds = dataBounds;\r\n\t\t/* Find the root blocks */\r\n\t\tthis._rootBlocks = this.findRootBlocks();\r\n\t}\r\n\r\n\t/**\r\n\t * Find all root blocks (dropping of single-point tiles during pyramid creation can lead to missing branches).\r\n\t * @return all root blocks.\r\n\t */\r\n\tprivate findRootBlocks(): AList<Block> {\r\n\t\t/* Check some levels below the top */\r\n\t\tlet startLevel: int32 = (this._levels.length - 6);\r\n\t\tif (startLevel < 0) startLevel = 0;\r\n\t\tMessage.print(ViewTree.MODULE, \"Finding root blocks starting at level index \" + startLevel + \" of \" + this._levels.length);\r\n\t\t/* Check the levels */\r\n\t\tlet rootBlocks: AList<Block> = new AList<Block>();\r\n\t\tlet nextLevelIndex: GridIndex = new GridIndex(0, 0, 0);\r\n\t\tfor (let i: number = startLevel; i < this._levels.length - 1; i++) {\r\n\t\t\t/* Check all blocks in the level */\r\n\t\t\tlet level: Level = this._levels[i];\r\n\t\t\tfor (let block of level.getBlocks()) {\r\n\t\t\t\t/* Non-top level? */\r\n\t\t\t\tlet isRoot: boolean = true;\r\n\t\t\t\tif (i < this._levels.length - 2) {\r\n\t\t\t\t\t/* Do we have a parent block in the next level? */\r\n\t\t\t\t\tblock.getBlockIndex().gridIndex.getNextLevelIndex(nextLevelIndex);\r\n\t\t\t\t\tisRoot = (this._levels[i + 1].findBlockGridIndex(nextLevelIndex) == null);\r\n\t\t\t\t\tif (isRoot) Message.print(ViewTree.MODULE, \"Block L\" + i + \" \" + block.getBlockIndex().gridIndex + \" is non-top root\");\r\n\t\t\t\t}\r\n\t\t\t\t/* Add to the list? */\r\n\t\t\t\tif (isRoot) rootBlocks.add(block);\r\n\t\t\t}\r\n\t\t}\r\n\t\t/* Return the roots */\r\n\t\tMessage.print(ViewTree.MODULE, \"Found \" + rootBlocks.size() + \" root blocks\");\r\n\t\treturn rootBlocks;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the number of levels.\r\n\t * @return the number of levels.\r\n\t */\r\n\tpublic getLevelCount(): int32 {\r\n\t\treturn this._levels.length;\r\n\t}\r\n\r\n\t/**\r\n\t * Get a level.\r\n\t * @param index the index of the level.\r\n\t * @return the level.\r\n\t */\r\n\tpublic getLevel(index: int32): Level {\r\n\t\treturn this._levels[index];\r\n\t}\r\n\r\n\t/**\r\n\t * Get the data bounds.\r\n\t * @return the data bounds.\r\n\t */\r\n\tpublic getDataBounds(): Bounds {\r\n\t\treturn this._dataBounds;\r\n\t}\r\n\r\n\t/**\r\n\t * Set the blocks for a level (after a data load operation).\r\n\t * @param level the level.\r\n\t * @param blockIndexes the indexes of the blocks in the level.\r\n\t */\r\n\tpublic setLevelBlocks(level: Level, blockIndexes: Array<BlockIndex>): void {\r\n\t\tif (blockIndexes == null) return;\r\n\t\tlet blockList: Array<Block> = new Array<Block>(blockIndexes.length);\r\n\t\tfor (let i: number = 0; i < blockIndexes.length; i++) blockList[i] = new Block(blockIndexes[i]);\r\n\t\tlevel.setBlockList(blockList);\r\n\t\tMessage.print(ViewTree.MODULE, \"Loaded \" + blockIndexes.length + \" blocks for level \" + level.getIndex());\r\n\t}\r\n\r\n\t/**\r\n\t * Set the tiles for a block (after a data load operation).\r\n\t * @param blockIndex the index of the block.\r\n\t * @param tileIndexes the indexes of the tiles in the block.\r\n\t */\r\n\tpublic setBlockTiles(blockIndex: BlockIndex, tileIndexes: Array<TileIndex>): void {\r\n\t\tlet level: Level = this._levels[blockIndex.level];\r\n\t\tlet block: Block = level.findBlock(blockIndex);\r\n\t\tblock.setTiles(tileIndexes);\r\n\t}\r\n\r\n\t/**\r\n\t * Split a tile into lower-level tiles.\r\n\t * @param level the level of the tile to split.\r\n\t * @param tile the tile to split.\r\n\t * @param childLevel the lower level of the tile.\r\n\t * @param children the list of children to split into.\r\n * @param levelsToLoad the list of levels to load.\r\n * @param blocksToLoad the list of blocks to load.\r\n\t * @return true if the list of children is complete.\r\n\t */\r\n\tprivate splitTile(level: Level, tile: TileIndex, childLevel: Level, children: AList<TileIndex>, levelsToLoad: AList<Level>, blocksToLoad: AList<BlockIndex>): boolean {\r\n\t\t/* Clear the result */\r\n\t\tchildren.clear();\r\n\t\t/* Already calculated? */\r\n\t\tlet childList: Array<TileIndex> = tile.children;\r\n\t\tif (childList != null) {\r\n\t\t\t/* Return */\r\n\t\t\tfor (let child of childList) children.add(child);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\t/* Assume we have a complete list of children */\r\n\t\tlet complete: boolean = true;\r\n\t\t/* Unloaded level? */\r\n\t\tif (childLevel.getBlockCount() == 0) {\r\n\t\t\t/* No need to continue, we need the level block list */\r\n\t\t\tif (levelsToLoad.contains(childLevel) == false) levelsToLoad.add(childLevel);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t/* Check the 8 possible child tiles */\r\n\t\tlet index: GridIndex = tile.gridIndex;\r\n\t\tlet childIndex: GridIndex = new GridIndex(0, 0, 0);\r\n\t\tfor (let z: number = 0; z < 2; z++) for (let y: number = 0; y < 2; y++) for (let x: number = 0; x < 2; x++) {\r\n\t\t\t/* Get the index of the child */\r\n\t\t\tchildIndex.x = (2 * index.x + x);\r\n\t\t\tchildIndex.y = (2 * index.y + y);\r\n\t\t\tchildIndex.z = (2 * index.z + z);\r\n\t\t\t/* Find the block */\r\n\t\t\tlet block: Block = childLevel.findBlockForTile(childIndex);\r\n\t\t\tif (block == null) {\r\n\t\t\t\t/* This should not happen */\r\n\t\t\t\tMessage.printWarning(ViewTree.MODULE, \"Unable to find tile block \" + childIndex + \" in child level \" + childLevel.getIndex() + \" (\" + childLevel.getBlockCount() + \" blocks)\");\r\n\t\t\t\tcomplete = false;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t/* No tile info in the block? */\r\n\t\t\tif (block.hasTiles() == false) {\r\n\t\t\t\t/* Load the block data */\r\n\t\t\t\tif (blocksToLoad.contains(block.getBlockIndex()) == false) blocksToLoad.add(block.getBlockIndex());\r\n\t\t\t\tcomplete = false;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t/* Find the child */\r\n\t\t\t\tlet child: TileIndex = block.findTile(childIndex);\r\n\t\t\t\tif (child != null) children.add(child);\r\n\t\t\t}\r\n\t\t}\r\n\t\t/* Store the result if complete */\r\n\t\tif (complete) {\r\n\t\t\t/* Store */\r\n\t\t\tlet tileChildren: Array<TileIndex> = new Array<TileIndex>(children.size());\r\n\t\t\tfor (let i: number = 0; i < tileChildren.length; i++) tileChildren[i] = children.get(i);\r\n\t\t\ttile.children = tileChildren;\r\n\t\t}\r\n\t\t/* Do we have all children? */\r\n\t\treturn complete;\r\n\t}\r\n\r\n\t/**\r\n\t * Is all tile data available for rendering?\r\n\t * @param viewRequest the view request.\r\n\t * @param tiles a list of tiles to check.\r\n\t * @param missingTiles the list of tiles whose data is missing.\r\n\t */\r\n\tprivate checkDataAvailable(viewRequest: AViewRequest, tiles: AList<TileIndex>, missingTiles: AList<TileIndex>): void {\r\n\t\t/* Check all tiles */\r\n\t\tmissingTiles.clear();\r\n\t\tfor (let i: number = 0; i < tiles.size(); i++) {\r\n\t\t\t/* Get the next tile */\r\n\t\t\tlet tile: TileIndex = tiles.get(i);\r\n\t\t\t/* Not available? */\r\n\t\t\tif (this._dataManager.isTileLoaded(tile) == null) {\r\n\t\t\t\t/* Request to load the block */\r\n\t\t\t\tmissingTiles.add(tile);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t/* Touch the block */\r\n\t\t\t\ttile.accessTime = viewRequest.getFrameTime();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Is all tile data available for rendering?\r\n\t * @param viewRequest the view request.\r\n\t * @param tiles a list of tiles to check.\r\n\t * @return true if the tile data is available.\r\n\t */\r\n\tprivate isDataAvailable(viewRequest: AViewRequest, tiles: Array<TileIndex>): boolean {\r\n\t\t/* Check all tiles */\r\n\t\tfor (let i: number = 0; i < tiles.length; i++) {\r\n\t\t\t/* Get the next tile */\r\n\t\t\tlet tile: TileIndex = tiles[i];\r\n\t\t\t/* Not available? */\r\n\t\t\tif (this._dataManager.isTileLoaded(tile) == null) return false;\r\n\t\t}\r\n\t\t/* Available */\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Add visible tiles to the view.\r\n\t * @param viewRequest the view request.\r\n\t * @param level the level of the tiles.\r\n\t * @param tiles the tiles to check.\r\n\t * @param visibleTiles the list of visible tiles to add to.\r\n\t */\r\n\tprivate addTilesToView(viewRequest: AViewRequest, level: Level, tiles: Array<TileIndex>, levelsToLoad: AList<Level>, blocksToLoad: AList<BlockIndex>, tilesToLoad: AList<TileIndex>, tilesToRender: AList<PointData>): void {\r\n\t\t/* No tiles? */\r\n\t\tif (tiles == null) return;\r\n\t\t/* Make the lists */\r\n\t\tlet childTiles: AList<TileIndex> = new AList<TileIndex>();\r\n\t\tlet missingChildTiles: AList<TileIndex> = new AList<TileIndex>();\r\n\t\t/* Check all tiles */\r\n\t\tfor (let i: number = 0; i < tiles.length; i++) {\r\n\t\t\t/* Get the next tile */\r\n\t\t\tlet tile: TileIndex = tiles[i];\r\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Checking tile L\" + tile.level + \" (\" + tile.gridIndex.x + \",\" + tile.gridIndex.y + \",\" + tile.gridIndex.z + \")\");\r\n\t\t\t/* Visible? */\r\n\t\t\tlet tileBounds: Bounds = level.getTileGrid().getCellBounds(tile.gridIndex).getIntersection(this._dataBounds);\r\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"> level \" + tile.level);\r\n\t\t\tif (viewRequest.isVisibleBox(tileBounds)) {\r\n\t\t\t\t/* Has the tile been loaded? */\r\n\t\t\t\tlet tileData: PointData = this._dataManager.isTileLoaded(tile);\r\n\t\t\t\tlet tileAvailable: boolean = (tileData != null);\r\n\t\t\t\ttile.accessTime = viewRequest.getFrameTime();\r\n\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > available? \" + tileAvailable);\r\n\t\t\t\t/* We load all intermediate tiles to avoid holes in the coverage */\r\n\t\t\t\tif (tileAvailable == false) tilesToLoad.add(tile);\r\n\t\t\t\t/* Split the tile? */\r\n\t\t\t\tlet shouldSplit: boolean = (level.getIndex() > 0) && viewRequest.shouldSplit(level, tile);\r\n\t\t\t\tif (shouldSplit) {\r\n\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > visible, but needs splitting\");\r\n\t\t\t\t\t/* Find the children at the lower level */\r\n\t\t\t\t\tlet childLevel: Level = this._levels[level.getIndex() - 1];\r\n\t\t\t\t\tlet completeChildList: boolean = this.splitTile(level, tile, childLevel, childTiles, levelsToLoad, blocksToLoad);\r\n\t\t\t\t\tif (completeChildList == false) {\r\n\t\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > loading child indexes\");\r\n\t\t\t\t\t\t/* Display the tile while we wait for the block-tiles to load */\r\n\t\t\t\t\t\tif (tileAvailable) tilesToRender.add(tileData);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t/* Are all children available with their data? */\r\n\t\t\t\t\t\tthis.checkDataAvailable(viewRequest, childTiles, missingChildTiles);\r\n\t\t\t\t\t\tif (missingChildTiles.size() == 0) {\r\n\t\t\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > rendering children\");\r\n\t\t\t\t\t\t\t/* Add the children */\r\n\t\t\t\t\t\t\tlet childTiles2: Array<TileIndex> = new Array<TileIndex>(childTiles.size());\r\n\t\t\t\t\t\t\tfor (let j: number = 0; j < childTiles2.length; j++) childTiles2[j] = childTiles.get(j);\r\n\t\t\t\t\t\t\tthis.addTilesToView(viewRequest, childLevel, childTiles2, levelsToLoad, blocksToLoad, tilesToLoad, tilesToRender);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > loading children\");\r\n\t\t\t\t\t\t\t/* Request for the missing children to be loaded */\r\n\t\t\t\t\t\t\tfor (let j: number = 0; j < missingChildTiles.size(); j++) tilesToLoad.add(missingChildTiles.get(j));\r\n\t\t\t\t\t\t\t/* Display the tile while we wait for the child tiles to load */\r\n\t\t\t\t\t\t\tif (tileAvailable) tilesToRender.add(tileData);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t/* Display the tile */\r\n\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > visible\");\r\n\t\t\t\t\tif (tileAvailable) tilesToRender.add(tileData);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t/* Log */\r\n\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > not visible\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Find tile indexes for a 3D view.\r\n\t * @param viewRequest the request parameters.\r\n\t * @param visibleTiles the list of visible tiles to add to.\r\n\t * @param availableTiles the set of available tiles.\r\n\t * @param visibleAvailableTiles the list if visible and available tiles to add to.\r\n\t */\r\n\tpublic renderView3D(viewRequest: AViewRequest, levelsToLoad: AList<Level>, blocksToLoad: AList<BlockIndex>, tilesToLoad: AList<TileIndex>, tilesToRender: AList<PointData>): void {\r\n\t\t/* Log? */\r\n\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Finding pointcloud tiles to render\");\r\n\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > dataBounds: \" + this._dataBounds);\r\n\t\t//if (DEBUG) Message.print(MODULE,\" > view: \"+viewRequest.getViewProjection());\r\n\t\t//if (DEBUG) Message.print(MODULE,\" > distance: \"+viewRequest.getDistanceRange());\r\n\t\t//if (DEBUG) Message.print(MODULE,\" > model-transform: \"+viewRequest.getModelTransform());\r\n\t\t/* Check all blocks */\r\n\t\ttilesToRender.clear();\r\n\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Checking \" + this._rootBlocks.size() + \" root blocks\");\r\n\t\tfor (let i: number = 0; i < this._rootBlocks.size(); i++) // start from the root tiles\r\n\t\t{\r\n\t\t\t/* Visible? */\r\n\t\t\tlet block: Block = this._rootBlocks.get(i);\r\n\t\t\tlet blockIndex: BlockIndex = block.getBlockIndex();\r\n\t\t\tlet level: Level = this._levels[blockIndex.level];\r\n\t\t\t/* Visible? */\r\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Checking top-level block L\" + blockIndex.level + \" (\" + blockIndex.gridIndex.x + \",\" + blockIndex.gridIndex.y + \",\" + blockIndex.gridIndex.z + \")\");\r\n\t\t\tlet blockBounds: Bounds = block.getBlockBounds(level).getIntersection(this._dataBounds);\r\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > blockBounds: \" + blockBounds);\r\n\t\t\tif (viewRequest.isVisibleBox(blockBounds)) {\r\n\t\t\t\t/* Add the tiles */\r\n\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > visible\");\r\n\t\t\t\tthis.addTilesToView(viewRequest, level, block.getTiles(blocksToLoad), levelsToLoad, blocksToLoad, tilesToLoad, tilesToRender);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"ViewTree.js","sourceRoot":"","sources":["../../../../src/pointcloud/render/ViewTree.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAWH,yDAAsD;AACtD,0DAAuD;AAEvD,kDAA+C;AAI/C,mCAAgC;AAIhC;;;;GAIG;AACH,gBAAgB;AAChB,MAAa,QAAQ;IAgBpB;;;;OAIG;IACH,YAAmB,WAAwB,EAAE,MAAoB,EAAE,UAAkB;QACpF,0BAA0B;QAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACK,cAAc;QACrB,qCAAqC;QACrC,IAAI,UAAU,GAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,UAAU,GAAG,CAAC;YAAE,UAAU,GAAG,CAAC,CAAC;QACnC,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,8CAA8C,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3H,sBAAsB;QACtB,IAAI,UAAU,GAAiB,IAAI,aAAK,EAAS,CAAC;QAClD,IAAI,cAAc,GAAc,IAAI,qBAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,IAAI,CAAC,GAAW,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAClE,mCAAmC;YACnC,IAAI,KAAK,GAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACpC,oBAAoB;gBACpB,IAAI,MAAM,GAAY,IAAI,CAAC;gBAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChC,kDAAkD;oBAClD,KAAK,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBAClE,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC;oBAC1E,IAAI,MAAM;wBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,SAAS,GAAG,kBAAkB,CAAC,CAAC;iBACvH;gBACD,sBAAsB;gBACtB,IAAI,MAAM;oBAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAClC;SACD;QACD,sBAAsB;QACtB,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,CAAC;QAC9E,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,aAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,KAAY;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,aAAa;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAY,EAAE,YAA+B;QAClE,IAAI,YAAY,IAAI,IAAI;YAAE,OAAO;QACjC,IAAI,SAAS,GAAiB,IAAI,KAAK,CAAQ,YAAY,CAAC,MAAM,CAAC,CAAC;QACpE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,aAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9B,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC,MAAM,GAAG,oBAAoB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,UAAsB,EAAE,WAA6B;QACzE,IAAI,KAAK,GAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,KAAK,GAAU,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC/C,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACK,SAAS,CAAC,KAAY,EAAE,IAAe,EAAE,UAAiB,EAAE,QAA0B,EAAE,YAA0B,EAAE,YAA+B;QAC1J,sBAAsB;QACtB,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,yBAAyB;QACzB,IAAI,SAAS,GAAqB,IAAI,CAAC,QAAQ,CAAC;QAChD,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,YAAY;YACZ,KAAK,IAAI,KAAK,IAAI,SAAS;gBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;SACZ;QACD,gDAAgD;QAChD,IAAI,QAAQ,GAAY,IAAI,CAAC;QAC7B,qBAAqB;QACrB,IAAI,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;YACpC,uDAAuD;YACvD,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK;gBAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7E,OAAO,KAAK,CAAC;SACb;QACD,sCAAsC;QACtC,IAAI,KAAK,GAAc,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,UAAU,GAAc,IAAI,qBAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC3G,gCAAgC;oBAChC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,oBAAoB;oBACpB,IAAI,KAAK,GAAU,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;oBAC3D,IAAI,KAAK,IAAI,IAAI,EAAE;wBAClB,4BAA4B;wBAC5B,iBAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,UAAU,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC;wBAC/K,QAAQ,GAAG,KAAK,CAAC;wBACjB,SAAS;qBACT;oBACD,gCAAgC;oBAChC,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,EAAE;wBAC9B,yBAAyB;wBACzB,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,KAAK;4BAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;wBACnG,QAAQ,GAAG,KAAK,CAAC;qBACjB;yBACI;wBACJ,oBAAoB;wBACpB,IAAI,KAAK,GAAc,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAClD,IAAI,KAAK,IAAI,IAAI;4BAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBACvC;iBACD;QACD,kCAAkC;QAClC,IAAI,QAAQ,EAAE;YACb,WAAW;YACX,IAAI,YAAY,GAAqB,IAAI,KAAK,CAAY,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;SAC7B;QACD,8BAA8B;QAC9B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,WAAyB,EAAE,KAAuB,EAAE,YAA8B;QAC5G,qBAAqB;QACrB,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;YAC9C,uBAAuB;YACvB,IAAI,IAAI,GAAc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnC,oBAAoB;YACpB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;gBACjD,+BAA+B;gBAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACvB;iBACI;gBACJ,qBAAqB;gBACrB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;aAC7C;SACD;IACF,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,WAAyB,EAAE,KAAuB;QACzE,qBAAqB;QACrB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,uBAAuB;YACvB,IAAI,IAAI,GAAc,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,oBAAoB;YACpB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC;SAC/D;QACD,eAAe;QACf,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACK,cAAc,CAAC,WAAyB,EAAE,KAAY,EAAE,KAAuB,EAAE,YAA0B,EAAE,YAA+B,EAAE,WAA6B,EAAE,aAA+B;QACnN,eAAe;QACf,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO;QAC1B,oBAAoB;QACpB,IAAI,UAAU,GAAqB,IAAI,aAAK,EAAa,CAAC;QAC1D,IAAI,iBAAiB,GAAqB,IAAI,aAAK,EAAa,CAAC;QACjE,qBAAqB;QACrB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,uBAAuB;YACvB,IAAI,IAAI,GAAc,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,QAAQ,CAAC,KAAK;gBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACrK,cAAc;YACd,IAAI,UAAU,GAAW,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7G,IAAI,QAAQ,CAAC,KAAK;gBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;gBACzC,+BAA+B;gBAC/B,IAAI,QAAQ,GAAc,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC/D,IAAI,aAAa,GAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7C,IAAI,QAAQ,CAAC,KAAK;oBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAAC,CAAC;gBACrF,mEAAmE;gBACnE,IAAI,aAAa,IAAI,KAAK;oBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,qBAAqB;gBACrB,IAAI,WAAW,GAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC1F,IAAI,WAAW,EAAE;oBAChB,IAAI,QAAQ,CAAC,KAAK;wBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;oBACtF,0CAA0C;oBAC1C,IAAI,UAAU,GAAU,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC3D,IAAI,iBAAiB,GAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;oBACjH,IAAI,iBAAiB,IAAI,KAAK,EAAE;wBAC/B,IAAI,QAAQ,CAAC,KAAK;4BAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;wBAC/E,gEAAgE;wBAChE,IAAI,aAAa;4BAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;qBAC/C;yBACI;wBACJ,iDAAiD;wBACjD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;wBACpE,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;4BAClC,IAAI,QAAQ,CAAC,KAAK;gCAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;4BAC5E,sBAAsB;4BACtB,IAAI,WAAW,GAAqB,IAAI,KAAK,CAAY,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC5E,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE;gCAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BACxF,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;yBAClH;6BACI;4BACJ,IAAI,QAAQ,CAAC,KAAK;gCAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;4BAC1E,mDAAmD;4BACnD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;gCAAE,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrG,gEAAgE;4BAChE,IAAI,aAAa;gCAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;yBAC/C;qBACD;iBACD;qBACI;oBACJ,sBAAsB;oBACtB,IAAI,QAAQ,CAAC,KAAK;wBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;oBACjE,IAAI,aAAa;wBAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBAC/C;aACD;iBACI;gBACJ,SAAS;gBACT,IAAI,QAAQ,CAAC,KAAK;oBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aACrE;SACD;IACF,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAAC,WAAyB,EAAE,YAA0B,EAAE,YAA+B,EAAE,WAA6B,EAAE,aAA+B;QACzK,UAAU;QACV,IAAI,QAAQ,CAAC,KAAK;YAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;QACzF,IAAI,QAAQ,CAAC,KAAK;YAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACzF,+EAA+E;QAC/E,kFAAkF;QAClF,0FAA0F;QAC1F,sBAAsB;QACtB,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,KAAK;YAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,CAAC;QAC3G,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,4BAA4B;SACtF;YACC,cAAc;YACd,IAAI,KAAK,GAAU,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,UAAU,GAAe,KAAK,CAAC,aAAa,EAAE,CAAC;YACnD,IAAI,KAAK,GAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClD,cAAc;YACd,IAAI,QAAQ,CAAC,KAAK;gBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,UAAU,CAAC,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACxM,IAAI,WAAW,GAAW,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxF,IAAI,QAAQ,CAAC,KAAK;gBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW,CAAC,CAAC;YACrF,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;gBAC1C,mBAAmB;gBACnB,IAAI,QAAQ,CAAC,KAAK;oBAAE,iBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACjE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;aAC9H;SACD;IACF,CAAC;;AAtUD,8BAA8B;AACN,eAAM,GAAW,UAAU,CAAC;AAEpD,kBAAkB;AACM,cAAK,GAAY,KAAK,CAAC;AALnC,4BAAQ","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.pointcloud.render;\n\ntype int8 = number;\ntype int16 = number;\ntype int32 = number;\ntype float32 = number;\ntype float64 = number;\n\nimport { Bounds } from \"../../spatial/geom/Bounds\";\nimport { AList } from \"../../system/collection/AList\";\nimport { Message } from \"../../system/runtime/Message\";\nimport { BlockIndex } from \"../model/BlockIndex\";\nimport { GridIndex } from \"../model/GridIndex\";\nimport { PointData } from \"../model/PointData\";\nimport { TileIndex } from \"../model/TileIndex\";\nimport { AViewRequest } from \"./AViewRequest\";\nimport { Block } from \"./Block\";\nimport { DataManager } from \"./DataManager\";\nimport { Level } from \"./Level\";\n\n/**\n * Class TileSpatialIndex manages a spatial index of levels, blocks and tiles in pointcloud. The index does not store data, only block and tile indexes.\n *\n * @version 1.0 November 2015\n */\n/** @internal */\nexport class ViewTree {\n\t/** The name of this module */\n\tprivate static readonly MODULE: string = \"ViewTree\";\n\n\t/** Debug mode? */\n\tprivate static readonly DEBUG: boolean = false;\n\n\t/** The data manager */\n\tprivate _dataManager: DataManager;\n\t/** The levels */\n\tprivate _levels: Array<Level>;\n\t/** The data bounds */\n\tprivate _dataBounds: Bounds;\n\t/** The root blocks */\n\tprivate _rootBlocks: AList<Block>;\n\n\t/**\n\t * Create a new tree.\n\t * @param levels the levels.\n\t * @param dataBounds the data bounds.\n\t */\n\tpublic constructor(dataManager: DataManager, levels: Array<Level>, dataBounds: Bounds) {\n\t\t/* Store the parameters */\n\t\tthis._dataManager = dataManager;\n\t\tthis._levels = levels;\n\t\tthis._dataBounds = dataBounds;\n\t\t/* Find the root blocks */\n\t\tthis._rootBlocks = this.findRootBlocks();\n\t}\n\n\t/**\n\t * Find all root blocks (dropping of single-point tiles during pyramid creation can lead to missing branches).\n\t * @return all root blocks.\n\t */\n\tprivate findRootBlocks(): AList<Block> {\n\t\t/* Check some levels below the top */\n\t\tlet startLevel: int32 = (this._levels.length - 6);\n\t\tif (startLevel < 0) startLevel = 0;\n\t\tMessage.print(ViewTree.MODULE, \"Finding root blocks starting at level index \" + startLevel + \" of \" + this._levels.length);\n\t\t/* Check the levels */\n\t\tlet rootBlocks: AList<Block> = new AList<Block>();\n\t\tlet nextLevelIndex: GridIndex = new GridIndex(0, 0, 0);\n\t\tfor (let i: number = startLevel; i < this._levels.length - 1; i++) {\n\t\t\t/* Check all blocks in the level */\n\t\t\tlet level: Level = this._levels[i];\n\t\t\tfor (let block of level.getBlocks()) {\n\t\t\t\t/* Non-top level? */\n\t\t\t\tlet isRoot: boolean = true;\n\t\t\t\tif (i < this._levels.length - 2) {\n\t\t\t\t\t/* Do we have a parent block in the next level? */\n\t\t\t\t\tblock.getBlockIndex().gridIndex.getNextLevelIndex(nextLevelIndex);\n\t\t\t\t\tisRoot = (this._levels[i + 1].findBlockGridIndex(nextLevelIndex) == null);\n\t\t\t\t\tif (isRoot) Message.print(ViewTree.MODULE, \"Block L\" + i + \" \" + block.getBlockIndex().gridIndex + \" is non-top root\");\n\t\t\t\t}\n\t\t\t\t/* Add to the list? */\n\t\t\t\tif (isRoot) rootBlocks.add(block);\n\t\t\t}\n\t\t}\n\t\t/* Return the roots */\n\t\tMessage.print(ViewTree.MODULE, \"Found \" + rootBlocks.size() + \" root blocks\");\n\t\treturn rootBlocks;\n\t}\n\n\t/**\n\t * Get the number of levels.\n\t * @return the number of levels.\n\t */\n\tpublic getLevelCount(): int32 {\n\t\treturn this._levels.length;\n\t}\n\n\t/**\n\t * Get a level.\n\t * @param index the index of the level.\n\t * @return the level.\n\t */\n\tpublic getLevel(index: int32): Level {\n\t\treturn this._levels[index];\n\t}\n\n\t/**\n\t * Get the data bounds.\n\t * @return the data bounds.\n\t */\n\tpublic getDataBounds(): Bounds {\n\t\treturn this._dataBounds;\n\t}\n\n\t/**\n\t * Set the blocks for a level (after a data load operation).\n\t * @param level the level.\n\t * @param blockIndexes the indexes of the blocks in the level.\n\t */\n\tpublic setLevelBlocks(level: Level, blockIndexes: Array<BlockIndex>): void {\n\t\tif (blockIndexes == null) return;\n\t\tlet blockList: Array<Block> = new Array<Block>(blockIndexes.length);\n\t\tfor (let i: number = 0; i < blockIndexes.length; i++) blockList[i] = new Block(blockIndexes[i]);\n\t\tlevel.setBlockList(blockList);\n\t\tMessage.print(ViewTree.MODULE, \"Loaded \" + blockIndexes.length + \" blocks for level \" + level.getIndex());\n\t}\n\n\t/**\n\t * Set the tiles for a block (after a data load operation).\n\t * @param blockIndex the index of the block.\n\t * @param tileIndexes the indexes of the tiles in the block.\n\t */\n\tpublic setBlockTiles(blockIndex: BlockIndex, tileIndexes: Array<TileIndex>): void {\n\t\tlet level: Level = this._levels[blockIndex.level];\n\t\tlet block: Block = level.findBlock(blockIndex);\n\t\tblock.setTiles(tileIndexes);\n\t}\n\n\t/**\n\t * Split a tile into lower-level tiles.\n\t * @param level the level of the tile to split.\n\t * @param tile the tile to split.\n\t * @param childLevel the lower level of the tile.\n\t * @param children the list of children to split into.\n * @param levelsToLoad the list of levels to load.\n * @param blocksToLoad the list of blocks to load.\n\t * @return true if the list of children is complete.\n\t */\n\tprivate splitTile(level: Level, tile: TileIndex, childLevel: Level, children: AList<TileIndex>, levelsToLoad: AList<Level>, blocksToLoad: AList<BlockIndex>): boolean {\n\t\t/* Clear the result */\n\t\tchildren.clear();\n\t\t/* Already calculated? */\n\t\tlet childList: Array<TileIndex> = tile.children;\n\t\tif (childList != null) {\n\t\t\t/* Return */\n\t\t\tfor (let child of childList) children.add(child);\n\t\t\treturn true;\n\t\t}\n\t\t/* Assume we have a complete list of children */\n\t\tlet complete: boolean = true;\n\t\t/* Unloaded level? */\n\t\tif (childLevel.getBlockCount() == 0) {\n\t\t\t/* No need to continue, we need the level block list */\n\t\t\tif (levelsToLoad.contains(childLevel) == false) levelsToLoad.add(childLevel);\n\t\t\treturn false;\n\t\t}\n\t\t/* Check the 8 possible child tiles */\n\t\tlet index: GridIndex = tile.gridIndex;\n\t\tlet childIndex: GridIndex = new GridIndex(0, 0, 0);\n\t\tfor (let z: number = 0; z < 2; z++) for (let y: number = 0; y < 2; y++) for (let x: number = 0; x < 2; x++) {\n\t\t\t/* Get the index of the child */\n\t\t\tchildIndex.x = (2 * index.x + x);\n\t\t\tchildIndex.y = (2 * index.y + y);\n\t\t\tchildIndex.z = (2 * index.z + z);\n\t\t\t/* Find the block */\n\t\t\tlet block: Block = childLevel.findBlockForTile(childIndex);\n\t\t\tif (block == null) {\n\t\t\t\t/* This should not happen */\n\t\t\t\tMessage.printWarning(ViewTree.MODULE, \"Unable to find tile block \" + childIndex + \" in child level \" + childLevel.getIndex() + \" (\" + childLevel.getBlockCount() + \" blocks)\");\n\t\t\t\tcomplete = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/* No tile info in the block? */\n\t\t\tif (block.hasTiles() == false) {\n\t\t\t\t/* Load the block data */\n\t\t\t\tif (blocksToLoad.contains(block.getBlockIndex()) == false) blocksToLoad.add(block.getBlockIndex());\n\t\t\t\tcomplete = false;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t/* Find the child */\n\t\t\t\tlet child: TileIndex = block.findTile(childIndex);\n\t\t\t\tif (child != null) children.add(child);\n\t\t\t}\n\t\t}\n\t\t/* Store the result if complete */\n\t\tif (complete) {\n\t\t\t/* Store */\n\t\t\tlet tileChildren: Array<TileIndex> = new Array<TileIndex>(children.size());\n\t\t\tfor (let i: number = 0; i < tileChildren.length; i++) tileChildren[i] = children.get(i);\n\t\t\ttile.children = tileChildren;\n\t\t}\n\t\t/* Do we have all children? */\n\t\treturn complete;\n\t}\n\n\t/**\n\t * Is all tile data available for rendering?\n\t * @param viewRequest the view request.\n\t * @param tiles a list of tiles to check.\n\t * @param missingTiles the list of tiles whose data is missing.\n\t */\n\tprivate checkDataAvailable(viewRequest: AViewRequest, tiles: AList<TileIndex>, missingTiles: AList<TileIndex>): void {\n\t\t/* Check all tiles */\n\t\tmissingTiles.clear();\n\t\tfor (let i: number = 0; i < tiles.size(); i++) {\n\t\t\t/* Get the next tile */\n\t\t\tlet tile: TileIndex = tiles.get(i);\n\t\t\t/* Not available? */\n\t\t\tif (this._dataManager.isTileLoaded(tile) == null) {\n\t\t\t\t/* Request to load the block */\n\t\t\t\tmissingTiles.add(tile);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t/* Touch the block */\n\t\t\t\ttile.accessTime = viewRequest.getFrameTime();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Is all tile data available for rendering?\n\t * @param viewRequest the view request.\n\t * @param tiles a list of tiles to check.\n\t * @return true if the tile data is available.\n\t */\n\tprivate isDataAvailable(viewRequest: AViewRequest, tiles: Array<TileIndex>): boolean {\n\t\t/* Check all tiles */\n\t\tfor (let i: number = 0; i < tiles.length; i++) {\n\t\t\t/* Get the next tile */\n\t\t\tlet tile: TileIndex = tiles[i];\n\t\t\t/* Not available? */\n\t\t\tif (this._dataManager.isTileLoaded(tile) == null) return false;\n\t\t}\n\t\t/* Available */\n\t\treturn true;\n\t}\n\n\t/**\n\t * Add visible tiles to the view.\n\t * @param viewRequest the view request.\n\t * @param level the level of the tiles.\n\t * @param tiles the tiles to check.\n\t * @param visibleTiles the list of visible tiles to add to.\n\t */\n\tprivate addTilesToView(viewRequest: AViewRequest, level: Level, tiles: Array<TileIndex>, levelsToLoad: AList<Level>, blocksToLoad: AList<BlockIndex>, tilesToLoad: AList<TileIndex>, tilesToRender: AList<PointData>): void {\n\t\t/* No tiles? */\n\t\tif (tiles == null) return;\n\t\t/* Make the lists */\n\t\tlet childTiles: AList<TileIndex> = new AList<TileIndex>();\n\t\tlet missingChildTiles: AList<TileIndex> = new AList<TileIndex>();\n\t\t/* Check all tiles */\n\t\tfor (let i: number = 0; i < tiles.length; i++) {\n\t\t\t/* Get the next tile */\n\t\t\tlet tile: TileIndex = tiles[i];\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Checking tile L\" + tile.level + \" (\" + tile.gridIndex.x + \",\" + tile.gridIndex.y + \",\" + tile.gridIndex.z + \")\");\n\t\t\t/* Visible? */\n\t\t\tlet tileBounds: Bounds = level.getTileGrid().getCellBounds(tile.gridIndex).getIntersection(this._dataBounds);\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"> level \" + tile.level);\n\t\t\tif (viewRequest.isVisibleBox(tileBounds)) {\n\t\t\t\t/* Has the tile been loaded? */\n\t\t\t\tlet tileData: PointData = this._dataManager.isTileLoaded(tile);\n\t\t\t\tlet tileAvailable: boolean = (tileData != null);\n\t\t\t\ttile.accessTime = viewRequest.getFrameTime();\n\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > available? \" + tileAvailable);\n\t\t\t\t/* We load all intermediate tiles to avoid holes in the coverage */\n\t\t\t\tif (tileAvailable == false) tilesToLoad.add(tile);\n\t\t\t\t/* Split the tile? */\n\t\t\t\tlet shouldSplit: boolean = (level.getIndex() > 0) && viewRequest.shouldSplit(level, tile);\n\t\t\t\tif (shouldSplit) {\n\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > visible, but needs splitting\");\n\t\t\t\t\t/* Find the children at the lower level */\n\t\t\t\t\tlet childLevel: Level = this._levels[level.getIndex() - 1];\n\t\t\t\t\tlet completeChildList: boolean = this.splitTile(level, tile, childLevel, childTiles, levelsToLoad, blocksToLoad);\n\t\t\t\t\tif (completeChildList == false) {\n\t\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > loading child indexes\");\n\t\t\t\t\t\t/* Display the tile while we wait for the block-tiles to load */\n\t\t\t\t\t\tif (tileAvailable) tilesToRender.add(tileData);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t/* Are all children available with their data? */\n\t\t\t\t\t\tthis.checkDataAvailable(viewRequest, childTiles, missingChildTiles);\n\t\t\t\t\t\tif (missingChildTiles.size() == 0) {\n\t\t\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > rendering children\");\n\t\t\t\t\t\t\t/* Add the children */\n\t\t\t\t\t\t\tlet childTiles2: Array<TileIndex> = new Array<TileIndex>(childTiles.size());\n\t\t\t\t\t\t\tfor (let j: number = 0; j < childTiles2.length; j++) childTiles2[j] = childTiles.get(j);\n\t\t\t\t\t\t\tthis.addTilesToView(viewRequest, childLevel, childTiles2, levelsToLoad, blocksToLoad, tilesToLoad, tilesToRender);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > loading children\");\n\t\t\t\t\t\t\t/* Request for the missing children to be loaded */\n\t\t\t\t\t\t\tfor (let j: number = 0; j < missingChildTiles.size(); j++) tilesToLoad.add(missingChildTiles.get(j));\n\t\t\t\t\t\t\t/* Display the tile while we wait for the child tiles to load */\n\t\t\t\t\t\t\tif (tileAvailable) tilesToRender.add(tileData);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t/* Display the tile */\n\t\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > visible\");\n\t\t\t\t\tif (tileAvailable) tilesToRender.add(tileData);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t/* Log */\n\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > not visible\");\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Find tile indexes for a 3D view.\n\t * @param viewRequest the request parameters.\n\t * @param visibleTiles the list of visible tiles to add to.\n\t * @param availableTiles the set of available tiles.\n\t * @param visibleAvailableTiles the list if visible and available tiles to add to.\n\t */\n\tpublic renderView3D(viewRequest: AViewRequest, levelsToLoad: AList<Level>, blocksToLoad: AList<BlockIndex>, tilesToLoad: AList<TileIndex>, tilesToRender: AList<PointData>): void {\n\t\t/* Log? */\n\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Finding pointcloud tiles to render\");\n\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > dataBounds: \" + this._dataBounds);\n\t\t//if (DEBUG) Message.print(MODULE,\" > view: \"+viewRequest.getViewProjection());\n\t\t//if (DEBUG) Message.print(MODULE,\" > distance: \"+viewRequest.getDistanceRange());\n\t\t//if (DEBUG) Message.print(MODULE,\" > model-transform: \"+viewRequest.getModelTransform());\n\t\t/* Check all blocks */\n\t\ttilesToRender.clear();\n\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Checking \" + this._rootBlocks.size() + \" root blocks\");\n\t\tfor (let i: number = 0; i < this._rootBlocks.size(); i++) // start from the root tiles\n\t\t{\n\t\t\t/* Visible? */\n\t\t\tlet block: Block = this._rootBlocks.get(i);\n\t\t\tlet blockIndex: BlockIndex = block.getBlockIndex();\n\t\t\tlet level: Level = this._levels[blockIndex.level];\n\t\t\t/* Visible? */\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \"Checking top-level block L\" + blockIndex.level + \" (\" + blockIndex.gridIndex.x + \",\" + blockIndex.gridIndex.y + \",\" + blockIndex.gridIndex.z + \")\");\n\t\t\tlet blockBounds: Bounds = block.getBlockBounds(level).getIntersection(this._dataBounds);\n\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > blockBounds: \" + blockBounds);\n\t\t\tif (viewRequest.isVisibleBox(blockBounds)) {\n\t\t\t\t/* Add the tiles */\n\t\t\t\tif (ViewTree.DEBUG) Message.print(ViewTree.MODULE, \" > visible\");\n\t\t\t\tthis.addTilesToView(viewRequest, level, block.getTiles(blocksToLoad), levelsToLoad, blocksToLoad, tilesToLoad, tilesToRender);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -1,56 +1,56 @@
1
- /** @packageDocumentation
2
- * @module OrbitGT
3
- */
4
- import { Bounds } from "../geom/Bounds";
5
- import { Coordinate } from "../geom/Coordinate";
6
- /**
7
- * Abstract class CRSEngine provides a model for CRS transformation engines to implement.
8
- */
9
- /** @internal */
10
- export declare class CRSEngine {
11
- /**
12
- * Create a new engine.
13
- */
14
- constructor();
15
- /**
16
- * Prepare a CRS for making transforms in a certain area.
17
- * @param crs the CRS to prepare.
18
- * @param area the area to prepare for (can be invalid to prepare only for the crs).
19
- */
20
- prepareForArea(crs: string, area: Bounds): Promise<Bounds>;
21
- /**
22
- * Transform a coordinate from one CRS to another.
23
- * @param point the point coordinate.
24
- * @param sourceCRS the source CRS.
25
- * @param targetCRS the target CRS.
26
- * @return the transformed coordinate.
27
- */
28
- transformPoint(point: Coordinate, sourceCRS: string, targetCRS: string): Coordinate;
29
- /**
30
- * Check if a CRS is geocentric.
31
- * @param crs the CRS to check.
32
- * @return true if geocentric.
33
- */
34
- isGeocentricCRS(crs: string): boolean;
35
- /**
36
- * Check if a CRS is geographic.
37
- * @param crs the CRS to check.
38
- * @return true if geocentric.
39
- */
40
- isGeographicCRS(crs: string): boolean;
41
- /**
42
- * Check if a CRS is projected.
43
- * @param crs the CRS to check.
44
- * @return true if geocentric.
45
- */
46
- isProjectedCRS(crs: string): boolean;
47
- /**
48
- * Transform spatial bounds from one CRS to another.
49
- * @param point the point coordinate.
50
- * @param sourceCRS the source CRS.
51
- * @param targetCRS the target CRS.
52
- * @return the transformed bounds.
53
- */
54
- transformBounds(bounds: Bounds, sourceCRS: string, targetCRS: string): Bounds;
55
- }
1
+ /** @packageDocumentation
2
+ * @module OrbitGT
3
+ */
4
+ import { Bounds } from "../geom/Bounds";
5
+ import { Coordinate } from "../geom/Coordinate";
6
+ /**
7
+ * Abstract class CRSEngine provides a model for CRS transformation engines to implement.
8
+ */
9
+ /** @internal */
10
+ export declare class CRSEngine {
11
+ /**
12
+ * Create a new engine.
13
+ */
14
+ constructor();
15
+ /**
16
+ * Prepare a CRS for making transforms in a certain area.
17
+ * @param crs the CRS to prepare.
18
+ * @param area the area to prepare for (can be invalid to prepare only for the crs).
19
+ */
20
+ prepareForArea(crs: string, area: Bounds): Promise<Bounds>;
21
+ /**
22
+ * Transform a coordinate from one CRS to another.
23
+ * @param point the point coordinate.
24
+ * @param sourceCRS the source CRS.
25
+ * @param targetCRS the target CRS.
26
+ * @return the transformed coordinate.
27
+ */
28
+ transformPoint(point: Coordinate, sourceCRS: string, targetCRS: string): Coordinate;
29
+ /**
30
+ * Check if a CRS is geocentric.
31
+ * @param crs the CRS to check.
32
+ * @return true if geocentric.
33
+ */
34
+ isGeocentricCRS(crs: string): boolean;
35
+ /**
36
+ * Check if a CRS is geographic.
37
+ * @param crs the CRS to check.
38
+ * @return true if geocentric.
39
+ */
40
+ isGeographicCRS(crs: string): boolean;
41
+ /**
42
+ * Check if a CRS is projected.
43
+ * @param crs the CRS to check.
44
+ * @return true if geocentric.
45
+ */
46
+ isProjectedCRS(crs: string): boolean;
47
+ /**
48
+ * Transform spatial bounds from one CRS to another.
49
+ * @param point the point coordinate.
50
+ * @param sourceCRS the source CRS.
51
+ * @param targetCRS the target CRS.
52
+ * @return the transformed bounds.
53
+ */
54
+ transformBounds(bounds: Bounds, sourceCRS: string, targetCRS: string): Bounds;
55
+ }
56
56
  //# sourceMappingURL=CRSEngine.d.ts.map
@@ -1,94 +1,94 @@
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.CRSEngine = void 0;
11
- const Bounds_1 = require("../geom/Bounds");
12
- const Coordinate_1 = require("../geom/Coordinate");
13
- /**
14
- * Abstract class CRSEngine provides a model for CRS transformation engines to implement.
15
- */
16
- /** @internal */
17
- class CRSEngine {
18
- /**
19
- * Create a new engine.
20
- */
21
- constructor() {
22
- }
23
- /**
24
- * Prepare a CRS for making transforms in a certain area.
25
- * @param crs the CRS to prepare.
26
- * @param area the area to prepare for (can be invalid to prepare only for the crs).
27
- */
28
- async prepareForArea(crs, area) {
29
- // subclasses should override this method if they need to download some part of a grid correction file, or the CRS declaration
30
- return area;
31
- }
32
- /**
33
- * Transform a coordinate from one CRS to another.
34
- * @param point the point coordinate.
35
- * @param sourceCRS the source CRS.
36
- * @param targetCRS the target CRS.
37
- * @return the transformed coordinate.
38
- */
39
- transformPoint(point, sourceCRS, targetCRS) {
40
- // subclasses should override this method
41
- return point;
42
- }
43
- /**
44
- * Check if a CRS is geocentric.
45
- * @param crs the CRS to check.
46
- * @return true if geocentric.
47
- */
48
- isGeocentricCRS(crs) {
49
- // subclasses should override this method
50
- return false;
51
- }
52
- /**
53
- * Check if a CRS is geographic.
54
- * @param crs the CRS to check.
55
- * @return true if geocentric.
56
- */
57
- isGeographicCRS(crs) {
58
- // subclasses should override this method
59
- return false;
60
- }
61
- /**
62
- * Check if a CRS is projected.
63
- * @param crs the CRS to check.
64
- * @return true if geocentric.
65
- */
66
- isProjectedCRS(crs) {
67
- // subclasses should override this method
68
- return false;
69
- }
70
- /**
71
- * Transform spatial bounds from one CRS to another.
72
- * @param point the point coordinate.
73
- * @param sourceCRS the source CRS.
74
- * @param targetCRS the target CRS.
75
- * @return the transformed bounds.
76
- */
77
- transformBounds(bounds, sourceCRS, targetCRS) {
78
- // no real need to override this method in subclasses
79
- /* Create new bounds */
80
- let targetBounds = new Bounds_1.Bounds();
81
- if (bounds.isValid()) {
82
- /* Transform all 8 corners */
83
- let corner = Coordinate_1.Coordinate.create();
84
- for (let i = 0; i < 8; i++) {
85
- bounds.getCorner(i, corner);
86
- targetBounds.add(this.transformPoint(corner, sourceCRS, targetCRS));
87
- }
88
- }
89
- /* Return the target bounds */
90
- return targetBounds;
91
- }
92
- }
93
- exports.CRSEngine = CRSEngine;
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.CRSEngine = void 0;
11
+ const Bounds_1 = require("../geom/Bounds");
12
+ const Coordinate_1 = require("../geom/Coordinate");
13
+ /**
14
+ * Abstract class CRSEngine provides a model for CRS transformation engines to implement.
15
+ */
16
+ /** @internal */
17
+ class CRSEngine {
18
+ /**
19
+ * Create a new engine.
20
+ */
21
+ constructor() {
22
+ }
23
+ /**
24
+ * Prepare a CRS for making transforms in a certain area.
25
+ * @param crs the CRS to prepare.
26
+ * @param area the area to prepare for (can be invalid to prepare only for the crs).
27
+ */
28
+ async prepareForArea(crs, area) {
29
+ // subclasses should override this method if they need to download some part of a grid correction file, or the CRS declaration
30
+ return area;
31
+ }
32
+ /**
33
+ * Transform a coordinate from one CRS to another.
34
+ * @param point the point coordinate.
35
+ * @param sourceCRS the source CRS.
36
+ * @param targetCRS the target CRS.
37
+ * @return the transformed coordinate.
38
+ */
39
+ transformPoint(point, sourceCRS, targetCRS) {
40
+ // subclasses should override this method
41
+ return point;
42
+ }
43
+ /**
44
+ * Check if a CRS is geocentric.
45
+ * @param crs the CRS to check.
46
+ * @return true if geocentric.
47
+ */
48
+ isGeocentricCRS(crs) {
49
+ // subclasses should override this method
50
+ return false;
51
+ }
52
+ /**
53
+ * Check if a CRS is geographic.
54
+ * @param crs the CRS to check.
55
+ * @return true if geocentric.
56
+ */
57
+ isGeographicCRS(crs) {
58
+ // subclasses should override this method
59
+ return false;
60
+ }
61
+ /**
62
+ * Check if a CRS is projected.
63
+ * @param crs the CRS to check.
64
+ * @return true if geocentric.
65
+ */
66
+ isProjectedCRS(crs) {
67
+ // subclasses should override this method
68
+ return false;
69
+ }
70
+ /**
71
+ * Transform spatial bounds from one CRS to another.
72
+ * @param point the point coordinate.
73
+ * @param sourceCRS the source CRS.
74
+ * @param targetCRS the target CRS.
75
+ * @return the transformed bounds.
76
+ */
77
+ transformBounds(bounds, sourceCRS, targetCRS) {
78
+ // no real need to override this method in subclasses
79
+ /* Create new bounds */
80
+ let targetBounds = new Bounds_1.Bounds();
81
+ if (bounds.isValid()) {
82
+ /* Transform all 8 corners */
83
+ let corner = Coordinate_1.Coordinate.create();
84
+ for (let i = 0; i < 8; i++) {
85
+ bounds.getCorner(i, corner);
86
+ targetBounds.add(this.transformPoint(corner, sourceCRS, targetCRS));
87
+ }
88
+ }
89
+ /* Return the target bounds */
90
+ return targetBounds;
91
+ }
92
+ }
93
+ exports.CRSEngine = CRSEngine;
94
94
  //# sourceMappingURL=CRSEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CRSEngine.js","sourceRoot":"","sources":["../../../../src/spatial/crs/CRSEngine.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAUH,2CAAwC;AACxC,mDAAgD;AAEhD;;GAEG;AACH,gBAAgB;AAChB,MAAa,SAAS;IAClB;;OAEG;IACH;IACA,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,IAAY;QACjD,8HAA8H;QAC9H,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,KAAiB,EAAE,SAAiB,EAAE,SAAiB;QACzE,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,GAAW;QAC9B,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,GAAW;QAC9B,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,GAAW;QAC7B,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CAAC,MAAc,EAAE,SAAiB,EAAE,SAAiB;QACvE,qDAAqD;QACrD,uBAAuB;QACvB,IAAI,YAAY,GAAW,IAAI,eAAM,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;YAClB,6BAA6B;YAC7B,IAAI,MAAM,GAAe,uBAAU,CAAC,MAAM,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC5B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;aACvE;SACJ;QACD,8BAA8B;QAC9B,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAjFD,8BAiFC","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.crs;\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 { Bounds } from \"../geom/Bounds\";\r\nimport { Coordinate } from \"../geom/Coordinate\";\r\n\r\n/**\r\n * Abstract class CRSEngine provides a model for CRS transformation engines to implement.\r\n */\r\n/** @internal */\r\nexport class CRSEngine {\r\n /**\r\n * Create a new engine.\r\n */\r\n public constructor() {\r\n }\r\n\r\n /**\r\n * Prepare a CRS for making transforms in a certain area.\r\n * @param crs the CRS to prepare.\r\n * @param area the area to prepare for (can be invalid to prepare only for the crs).\r\n */\r\n public async prepareForArea(crs: string, area: Bounds): Promise<Bounds> {\r\n // subclasses should override this method if they need to download some part of a grid correction file, or the CRS declaration\r\n return area;\r\n }\r\n\r\n /**\r\n * Transform a coordinate from one CRS to another.\r\n * @param point the point coordinate.\r\n * @param sourceCRS the source CRS.\r\n * @param targetCRS the target CRS.\r\n * @return the transformed coordinate.\r\n */\r\n public transformPoint(point: Coordinate, sourceCRS: string, targetCRS: string): Coordinate {\r\n // subclasses should override this method\r\n return point;\r\n }\r\n\r\n /**\r\n * Check if a CRS is geocentric.\r\n * @param crs the CRS to check.\r\n * @return true if geocentric.\r\n */\r\n public isGeocentricCRS(crs: string): boolean {\r\n // subclasses should override this method\r\n return false;\r\n }\r\n\r\n /**\r\n * Check if a CRS is geographic.\r\n * @param crs the CRS to check.\r\n * @return true if geocentric.\r\n */\r\n public isGeographicCRS(crs: string): boolean {\r\n // subclasses should override this method\r\n return false;\r\n }\r\n\r\n /**\r\n * Check if a CRS is projected.\r\n * @param crs the CRS to check.\r\n * @return true if geocentric.\r\n */\r\n public isProjectedCRS(crs: string): boolean {\r\n // subclasses should override this method\r\n return false;\r\n }\r\n\r\n /**\r\n * Transform spatial bounds from one CRS to another.\r\n * @param point the point coordinate.\r\n * @param sourceCRS the source CRS.\r\n * @param targetCRS the target CRS.\r\n * @return the transformed bounds.\r\n */\r\n public transformBounds(bounds: Bounds, sourceCRS: string, targetCRS: string): Bounds {\r\n // no real need to override this method in subclasses\r\n /* Create new bounds */\r\n let targetBounds: Bounds = new Bounds();\r\n if (bounds.isValid()) {\r\n /* Transform all 8 corners */\r\n let corner: Coordinate = Coordinate.create();\r\n for (let i: number = 0; i < 8; i++) {\r\n bounds.getCorner(i, corner);\r\n targetBounds.add(this.transformPoint(corner, sourceCRS, targetCRS));\r\n }\r\n }\r\n /* Return the target bounds */\r\n return targetBounds;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CRSEngine.js","sourceRoot":"","sources":["../../../../src/spatial/crs/CRSEngine.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAUH,2CAAwC;AACxC,mDAAgD;AAEhD;;GAEG;AACH,gBAAgB;AAChB,MAAa,SAAS;IAClB;;OAEG;IACH;IACA,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,IAAY;QACjD,8HAA8H;QAC9H,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,KAAiB,EAAE,SAAiB,EAAE,SAAiB;QACzE,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,GAAW;QAC9B,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,GAAW;QAC9B,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,GAAW;QAC7B,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CAAC,MAAc,EAAE,SAAiB,EAAE,SAAiB;QACvE,qDAAqD;QACrD,uBAAuB;QACvB,IAAI,YAAY,GAAW,IAAI,eAAM,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;YAClB,6BAA6B;YAC7B,IAAI,MAAM,GAAe,uBAAU,CAAC,MAAM,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC5B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;aACvE;SACJ;QACD,8BAA8B;QAC9B,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAjFD,8BAiFC","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.crs;\n\ntype int8 = number;\ntype int16 = number;\ntype int32 = number;\ntype float32 = number;\ntype float64 = number;\n\nimport { Bounds } from \"../geom/Bounds\";\nimport { Coordinate } from \"../geom/Coordinate\";\n\n/**\n * Abstract class CRSEngine provides a model for CRS transformation engines to implement.\n */\n/** @internal */\nexport class CRSEngine {\n /**\n * Create a new engine.\n */\n public constructor() {\n }\n\n /**\n * Prepare a CRS for making transforms in a certain area.\n * @param crs the CRS to prepare.\n * @param area the area to prepare for (can be invalid to prepare only for the crs).\n */\n public async prepareForArea(crs: string, area: Bounds): Promise<Bounds> {\n // subclasses should override this method if they need to download some part of a grid correction file, or the CRS declaration\n return area;\n }\n\n /**\n * Transform a coordinate from one CRS to another.\n * @param point the point coordinate.\n * @param sourceCRS the source CRS.\n * @param targetCRS the target CRS.\n * @return the transformed coordinate.\n */\n public transformPoint(point: Coordinate, sourceCRS: string, targetCRS: string): Coordinate {\n // subclasses should override this method\n return point;\n }\n\n /**\n * Check if a CRS is geocentric.\n * @param crs the CRS to check.\n * @return true if geocentric.\n */\n public isGeocentricCRS(crs: string): boolean {\n // subclasses should override this method\n return false;\n }\n\n /**\n * Check if a CRS is geographic.\n * @param crs the CRS to check.\n * @return true if geocentric.\n */\n public isGeographicCRS(crs: string): boolean {\n // subclasses should override this method\n return false;\n }\n\n /**\n * Check if a CRS is projected.\n * @param crs the CRS to check.\n * @return true if geocentric.\n */\n public isProjectedCRS(crs: string): boolean {\n // subclasses should override this method\n return false;\n }\n\n /**\n * Transform spatial bounds from one CRS to another.\n * @param point the point coordinate.\n * @param sourceCRS the source CRS.\n * @param targetCRS the target CRS.\n * @return the transformed bounds.\n */\n public transformBounds(bounds: Bounds, sourceCRS: string, targetCRS: string): Bounds {\n // no real need to override this method in subclasses\n /* Create new bounds */\n let targetBounds: Bounds = new Bounds();\n if (bounds.isValid()) {\n /* Transform all 8 corners */\n let corner: Coordinate = Coordinate.create();\n for (let i: number = 0; i < 8; i++) {\n bounds.getCorner(i, corner);\n targetBounds.add(this.transformPoint(corner, sourceCRS, targetCRS));\n }\n }\n /* Return the target bounds */\n return targetBounds;\n }\n}\n"]}
@@ -1,50 +1,50 @@
1
- /** @packageDocumentation
2
- * @module OrbitGT
3
- */
4
- import { Bounds } from "../geom/Bounds";
5
- import { Coordinate } from "../geom/Coordinate";
6
- import { Transform } from "../geom/Transform";
7
- import { CRSEngine } from "./CRSEngine";
8
- /**
9
- * Class CRSManager defines the main access point to the CRS transformation engine.
10
- */
11
- /** @internal */
12
- export declare class CRSManager {
13
- /** The main instance of the CRS engine. This needs to be set by the application on startup. */
14
- static ENGINE: CRSEngine;
15
- /**
16
- * Allow no instances, all methods are static.
17
- */
18
- private constructor();
19
- /**
20
- * Prepare a CRS for making transforms in a certain area.
21
- * @param crs the CRS to prepare.
22
- * @param area the area to prepare for (can be invalid to prepare only for the crs).
23
- */
24
- static prepareForArea(crs: string, area: Bounds): Promise<Bounds>;
25
- /**
26
- * Transform a coordinate from one CRS to another.
27
- * @param point the point coordinate.
28
- * @param sourceCRS the source CRS.
29
- * @param targetCRS the target CRS.
30
- * @return the transformed coordinate.
31
- */
32
- static transformPoint(point: Coordinate, sourceCRS: string, targetCRS: string): Coordinate;
33
- /**
34
- * Transform spatial bounds from one CRS to another.
35
- * @param point the point coordinate.
36
- * @param sourceCRS the source CRS.
37
- * @param targetCRS the target CRS.
38
- * @return the transformed bounds.
39
- */
40
- static transformBounds(bounds: Bounds, sourceCRS: string, targetCRS: string): Bounds;
41
- /**
42
- * Create an approximate 3D transformation from a source to a target CRS.
43
- * @param sourceCRS the source CRS.
44
- * @param sourcePoint the origin point in the source CRS.
45
- * @param targetCRS the target CRS.
46
- * @return the transform.
47
- */
48
- static createTransform(sourceCRS: string, sourcePoint: Coordinate, targetCRS: string): Transform;
49
- }
1
+ /** @packageDocumentation
2
+ * @module OrbitGT
3
+ */
4
+ import { Bounds } from "../geom/Bounds";
5
+ import { Coordinate } from "../geom/Coordinate";
6
+ import { Transform } from "../geom/Transform";
7
+ import { CRSEngine } from "./CRSEngine";
8
+ /**
9
+ * Class CRSManager defines the main access point to the CRS transformation engine.
10
+ */
11
+ /** @internal */
12
+ export declare class CRSManager {
13
+ /** The main instance of the CRS engine. This needs to be set by the application on startup. */
14
+ static ENGINE: CRSEngine;
15
+ /**
16
+ * Allow no instances, all methods are static.
17
+ */
18
+ private constructor();
19
+ /**
20
+ * Prepare a CRS for making transforms in a certain area.
21
+ * @param crs the CRS to prepare.
22
+ * @param area the area to prepare for (can be invalid to prepare only for the crs).
23
+ */
24
+ static prepareForArea(crs: string, area: Bounds): Promise<Bounds>;
25
+ /**
26
+ * Transform a coordinate from one CRS to another.
27
+ * @param point the point coordinate.
28
+ * @param sourceCRS the source CRS.
29
+ * @param targetCRS the target CRS.
30
+ * @return the transformed coordinate.
31
+ */
32
+ static transformPoint(point: Coordinate, sourceCRS: string, targetCRS: string): Coordinate;
33
+ /**
34
+ * Transform spatial bounds from one CRS to another.
35
+ * @param point the point coordinate.
36
+ * @param sourceCRS the source CRS.
37
+ * @param targetCRS the target CRS.
38
+ * @return the transformed bounds.
39
+ */
40
+ static transformBounds(bounds: Bounds, sourceCRS: string, targetCRS: string): Bounds;
41
+ /**
42
+ * Create an approximate 3D transformation from a source to a target CRS.
43
+ * @param sourceCRS the source CRS.
44
+ * @param sourcePoint the origin point in the source CRS.
45
+ * @param targetCRS the target CRS.
46
+ * @return the transform.
47
+ */
48
+ static createTransform(sourceCRS: string, sourcePoint: Coordinate, targetCRS: string): Transform;
49
+ }
50
50
  //# sourceMappingURL=CRSManager.d.ts.map