@deck.gl/geo-layers 9.0.0-beta.1 → 9.0.0-beta.3

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 (245) hide show
  1. package/dist/dist.dev.js +2246 -3773
  2. package/dist/geo-cell-layer/GeoCellLayer.js +51 -0
  3. package/dist/geohash-layer/geohash-layer.js +19 -0
  4. package/dist/geohash-layer/geohash-utils.js +50 -0
  5. package/dist/great-circle-layer/great-circle-layer.js +12 -0
  6. package/dist/h3-layers/h3-cluster-layer.js +47 -0
  7. package/dist/h3-layers/h3-hexagon-layer.js +204 -0
  8. package/dist/h3-layers/h3-utils.js +56 -0
  9. package/dist/index.cjs +3199 -0
  10. package/dist/index.cjs.map +7 -0
  11. package/{typed → dist}/index.d.ts +5 -5
  12. package/{typed → dist}/index.d.ts.map +1 -1
  13. package/dist/index.js +36 -0
  14. package/dist/{esm/mesh-layer → mesh-layer}/mesh-layer-fragment.glsl.js +0 -1
  15. package/dist/{esm/mesh-layer → mesh-layer}/mesh-layer-vertex.glsl.js +0 -1
  16. package/dist/mesh-layer/mesh-layer.js +129 -0
  17. package/{typed → dist}/mvt-layer/coordinate-transform.d.ts +1 -1
  18. package/{typed → dist}/mvt-layer/coordinate-transform.d.ts.map +1 -1
  19. package/dist/mvt-layer/coordinate-transform.js +41 -0
  20. package/dist/mvt-layer/find-index-binary.d.ts +11 -0
  21. package/dist/mvt-layer/find-index-binary.d.ts.map +1 -0
  22. package/dist/mvt-layer/find-index-binary.js +96 -0
  23. package/{typed → dist}/mvt-layer/mvt-layer.d.ts +6 -5
  24. package/dist/mvt-layer/mvt-layer.d.ts.map +1 -0
  25. package/dist/mvt-layer/mvt-layer.js +305 -0
  26. package/dist/quadkey-layer/quadkey-layer.js +22 -0
  27. package/dist/quadkey-layer/quadkey-utils.js +26 -0
  28. package/dist/s2-layer/s2-geometry.js +123 -0
  29. package/dist/s2-layer/s2-layer.js +38 -0
  30. package/dist/s2-layer/s2-utils.js +87 -0
  31. package/{typed → dist}/terrain-layer/terrain-layer.d.ts +3 -3
  32. package/dist/terrain-layer/terrain-layer.d.ts.map +1 -0
  33. package/dist/terrain-layer/terrain-layer.js +233 -0
  34. package/dist/tile-3d-layer/tile-3d-layer.js +302 -0
  35. package/{typed → dist}/tile-layer/tile-layer.d.ts +3 -3
  36. package/dist/tile-layer/tile-layer.d.ts.map +1 -0
  37. package/dist/tile-layer/tile-layer.js +204 -0
  38. package/dist/tileset-2d/index.js +4 -0
  39. package/dist/tileset-2d/memoize.js +41 -0
  40. package/{typed → dist}/tileset-2d/tile-2d-header.d.ts +2 -1
  41. package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -0
  42. package/dist/tileset-2d/tile-2d-header.js +135 -0
  43. package/{typed → dist}/tileset-2d/tile-2d-traversal.d.ts +1 -1
  44. package/{typed → dist}/tileset-2d/tile-2d-traversal.d.ts.map +1 -1
  45. package/dist/tileset-2d/tile-2d-traversal.js +182 -0
  46. package/{typed → dist}/tileset-2d/tileset-2d.d.ts +4 -4
  47. package/{typed → dist}/tileset-2d/tileset-2d.d.ts.map +1 -1
  48. package/dist/tileset-2d/tileset-2d.js +456 -0
  49. package/dist/tileset-2d/types.js +1 -0
  50. package/{typed → dist}/tileset-2d/utils.d.ts +2 -2
  51. package/dist/tileset-2d/utils.d.ts.map +1 -0
  52. package/dist/tileset-2d/utils.js +234 -0
  53. package/dist/trips-layer/trips-layer.js +93 -0
  54. package/dist/wms-layer/utils.js +13 -0
  55. package/dist/wms-layer/wms-layer.js +192 -0
  56. package/dist.min.js +27 -159
  57. package/package.json +32 -18
  58. package/src/index.ts +5 -5
  59. package/src/mvt-layer/coordinate-transform.ts +1 -1
  60. package/src/mvt-layer/find-index-binary.ts +5 -9
  61. package/src/mvt-layer/mvt-layer.ts +19 -15
  62. package/src/terrain-layer/terrain-layer.ts +13 -3
  63. package/src/tile-layer/tile-layer.ts +8 -9
  64. package/src/tileset-2d/tile-2d-header.ts +2 -1
  65. package/src/tileset-2d/tile-2d-traversal.ts +1 -1
  66. package/src/tileset-2d/tileset-2d.ts +7 -3
  67. package/src/tileset-2d/utils.ts +2 -2
  68. package/src/wms-layer/wms-layer.ts +1 -1
  69. package/dist/es5/geo-cell-layer/GeoCellLayer.js +0 -118
  70. package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +0 -1
  71. package/dist/es5/geohash-layer/geohash-layer.js +0 -67
  72. package/dist/es5/geohash-layer/geohash-layer.js.map +0 -1
  73. package/dist/es5/geohash-layer/geohash-utils.js +0 -77
  74. package/dist/es5/geohash-layer/geohash-utils.js.map +0 -1
  75. package/dist/es5/great-circle-layer/great-circle-layer.js +0 -48
  76. package/dist/es5/great-circle-layer/great-circle-layer.js.map +0 -1
  77. package/dist/es5/h3-layers/h3-cluster-layer.js +0 -162
  78. package/dist/es5/h3-layers/h3-cluster-layer.js.map +0 -1
  79. package/dist/es5/h3-layers/h3-hexagon-layer.js +0 -351
  80. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +0 -1
  81. package/dist/es5/h3-layers/h3-utils.js +0 -111
  82. package/dist/es5/h3-layers/h3-utils.js.map +0 -1
  83. package/dist/es5/index.js +0 -132
  84. package/dist/es5/index.js.map +0 -1
  85. package/dist/es5/mesh-layer/mesh-layer-fragment.glsl.js +0 -9
  86. package/dist/es5/mesh-layer/mesh-layer-fragment.glsl.js.map +0 -1
  87. package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js +0 -9
  88. package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js.map +0 -1
  89. package/dist/es5/mesh-layer/mesh-layer.js +0 -217
  90. package/dist/es5/mesh-layer/mesh-layer.js.map +0 -1
  91. package/dist/es5/mvt-layer/coordinate-transform.js +0 -83
  92. package/dist/es5/mvt-layer/coordinate-transform.js.map +0 -1
  93. package/dist/es5/mvt-layer/find-index-binary.js +0 -127
  94. package/dist/es5/mvt-layer/find-index-binary.js.map +0 -1
  95. package/dist/es5/mvt-layer/mvt-layer.js +0 -533
  96. package/dist/es5/mvt-layer/mvt-layer.js.map +0 -1
  97. package/dist/es5/quadkey-layer/quadkey-layer.js +0 -72
  98. package/dist/es5/quadkey-layer/quadkey-layer.js.map +0 -1
  99. package/dist/es5/quadkey-layer/quadkey-utils.js +0 -53
  100. package/dist/es5/quadkey-layer/quadkey-utils.js.map +0 -1
  101. package/dist/es5/s2-layer/s2-geometry.js +0 -158
  102. package/dist/es5/s2-layer/s2-geometry.js.map +0 -1
  103. package/dist/es5/s2-layer/s2-layer.js +0 -67
  104. package/dist/es5/s2-layer/s2-layer.js.map +0 -1
  105. package/dist/es5/s2-layer/s2-utils.js +0 -80
  106. package/dist/es5/s2-layer/s2-utils.js.map +0 -1
  107. package/dist/es5/terrain-layer/terrain-layer.js +0 -347
  108. package/dist/es5/terrain-layer/terrain-layer.js.map +0 -1
  109. package/dist/es5/tile-3d-layer/tile-3d-layer.js +0 -511
  110. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +0 -1
  111. package/dist/es5/tile-layer/tile-layer.js +0 -363
  112. package/dist/es5/tile-layer/tile-layer.js.map +0 -1
  113. package/dist/es5/tileset-2d/index.js +0 -66
  114. package/dist/es5/tileset-2d/index.js.map +0 -1
  115. package/dist/es5/tileset-2d/memoize.js +0 -47
  116. package/dist/es5/tileset-2d/memoize.js.map +0 -1
  117. package/dist/es5/tileset-2d/tile-2d-header.js +0 -250
  118. package/dist/es5/tileset-2d/tile-2d-header.js.map +0 -1
  119. package/dist/es5/tileset-2d/tile-2d-traversal.js +0 -256
  120. package/dist/es5/tileset-2d/tile-2d-traversal.js.map +0 -1
  121. package/dist/es5/tileset-2d/tileset-2d.js +0 -757
  122. package/dist/es5/tileset-2d/tileset-2d.js.map +0 -1
  123. package/dist/es5/tileset-2d/types.js +0 -2
  124. package/dist/es5/tileset-2d/types.js.map +0 -1
  125. package/dist/es5/tileset-2d/utils.js +0 -302
  126. package/dist/es5/tileset-2d/utils.js.map +0 -1
  127. package/dist/es5/trips-layer/trips-layer.js +0 -114
  128. package/dist/es5/trips-layer/trips-layer.js.map +0 -1
  129. package/dist/es5/wms-layer/utils.js +0 -18
  130. package/dist/es5/wms-layer/utils.js.map +0 -1
  131. package/dist/es5/wms-layer/wms-layer.js +0 -376
  132. package/dist/es5/wms-layer/wms-layer.js.map +0 -1
  133. package/dist/esm/geo-cell-layer/GeoCellLayer.js +0 -72
  134. package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +0 -1
  135. package/dist/esm/geohash-layer/geohash-layer.js +0 -26
  136. package/dist/esm/geohash-layer/geohash-layer.js.map +0 -1
  137. package/dist/esm/geohash-layer/geohash-utils.js +0 -56
  138. package/dist/esm/geohash-layer/geohash-utils.js.map +0 -1
  139. package/dist/esm/great-circle-layer/great-circle-layer.js +0 -12
  140. package/dist/esm/great-circle-layer/great-circle-layer.js.map +0 -1
  141. package/dist/esm/h3-layers/h3-cluster-layer.js +0 -79
  142. package/dist/esm/h3-layers/h3-cluster-layer.js.map +0 -1
  143. package/dist/esm/h3-layers/h3-hexagon-layer.js +0 -280
  144. package/dist/esm/h3-layers/h3-hexagon-layer.js.map +0 -1
  145. package/dist/esm/h3-layers/h3-utils.js +0 -54
  146. package/dist/esm/h3-layers/h3-utils.js.map +0 -1
  147. package/dist/esm/index.js +0 -17
  148. package/dist/esm/index.js.map +0 -1
  149. package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js.map +0 -1
  150. package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +0 -1
  151. package/dist/esm/mesh-layer/mesh-layer.js +0 -178
  152. package/dist/esm/mesh-layer/mesh-layer.js.map +0 -1
  153. package/dist/esm/mvt-layer/coordinate-transform.js +0 -49
  154. package/dist/esm/mvt-layer/coordinate-transform.js.map +0 -1
  155. package/dist/esm/mvt-layer/find-index-binary.js +0 -99
  156. package/dist/esm/mvt-layer/find-index-binary.js.map +0 -1
  157. package/dist/esm/mvt-layer/mvt-layer.js +0 -427
  158. package/dist/esm/mvt-layer/mvt-layer.js.map +0 -1
  159. package/dist/esm/quadkey-layer/quadkey-layer.js +0 -31
  160. package/dist/esm/quadkey-layer/quadkey-layer.js.map +0 -1
  161. package/dist/esm/quadkey-layer/quadkey-utils.js +0 -24
  162. package/dist/esm/quadkey-layer/quadkey-utils.js.map +0 -1
  163. package/dist/esm/s2-layer/s2-geometry.js +0 -126
  164. package/dist/esm/s2-layer/s2-geometry.js.map +0 -1
  165. package/dist/esm/s2-layer/s2-layer.js +0 -26
  166. package/dist/esm/s2-layer/s2-layer.js.map +0 -1
  167. package/dist/esm/s2-layer/s2-utils.js +0 -69
  168. package/dist/esm/s2-layer/s2-utils.js.map +0 -1
  169. package/dist/esm/terrain-layer/terrain-layer.js +0 -292
  170. package/dist/esm/terrain-layer/terrain-layer.js.map +0 -1
  171. package/dist/esm/tile-3d-layer/tile-3d-layer.js +0 -438
  172. package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +0 -1
  173. package/dist/esm/tile-layer/tile-layer.js +0 -299
  174. package/dist/esm/tile-layer/tile-layer.js.map +0 -1
  175. package/dist/esm/tileset-2d/index.js +0 -4
  176. package/dist/esm/tileset-2d/index.js.map +0 -1
  177. package/dist/esm/tileset-2d/memoize.js +0 -40
  178. package/dist/esm/tileset-2d/memoize.js.map +0 -1
  179. package/dist/esm/tileset-2d/tile-2d-header.js +0 -179
  180. package/dist/esm/tileset-2d/tile-2d-header.js.map +0 -1
  181. package/dist/esm/tileset-2d/tile-2d-traversal.js +0 -184
  182. package/dist/esm/tileset-2d/tile-2d-traversal.js.map +0 -1
  183. package/dist/esm/tileset-2d/tileset-2d.js +0 -509
  184. package/dist/esm/tileset-2d/tileset-2d.js.map +0 -1
  185. package/dist/esm/tileset-2d/types.js +0 -2
  186. package/dist/esm/tileset-2d/types.js.map +0 -1
  187. package/dist/esm/tileset-2d/utils.js +0 -233
  188. package/dist/esm/tileset-2d/utils.js.map +0 -1
  189. package/dist/esm/trips-layer/trips-layer.js +0 -88
  190. package/dist/esm/trips-layer/trips-layer.js.map +0 -1
  191. package/dist/esm/wms-layer/utils.js +0 -9
  192. package/dist/esm/wms-layer/utils.js.map +0 -1
  193. package/dist/esm/wms-layer/wms-layer.js +0 -231
  194. package/dist/esm/wms-layer/wms-layer.js.map +0 -1
  195. package/typed/mvt-layer/find-index-binary.d.ts +0 -12
  196. package/typed/mvt-layer/find-index-binary.d.ts.map +0 -1
  197. package/typed/mvt-layer/mvt-layer.d.ts.map +0 -1
  198. package/typed/terrain-layer/terrain-layer.d.ts.map +0 -1
  199. package/typed/tile-layer/tile-layer.d.ts.map +0 -1
  200. package/typed/tileset-2d/tile-2d-header.d.ts.map +0 -1
  201. package/typed/tileset-2d/utils.d.ts.map +0 -1
  202. /package/{typed → dist}/geo-cell-layer/GeoCellLayer.d.ts +0 -0
  203. /package/{typed → dist}/geo-cell-layer/GeoCellLayer.d.ts.map +0 -0
  204. /package/{typed → dist}/geohash-layer/geohash-layer.d.ts +0 -0
  205. /package/{typed → dist}/geohash-layer/geohash-layer.d.ts.map +0 -0
  206. /package/{typed → dist}/geohash-layer/geohash-utils.d.ts +0 -0
  207. /package/{typed → dist}/geohash-layer/geohash-utils.d.ts.map +0 -0
  208. /package/{typed → dist}/great-circle-layer/great-circle-layer.d.ts +0 -0
  209. /package/{typed → dist}/great-circle-layer/great-circle-layer.d.ts.map +0 -0
  210. /package/{typed → dist}/h3-layers/h3-cluster-layer.d.ts +0 -0
  211. /package/{typed → dist}/h3-layers/h3-cluster-layer.d.ts.map +0 -0
  212. /package/{typed → dist}/h3-layers/h3-hexagon-layer.d.ts +0 -0
  213. /package/{typed → dist}/h3-layers/h3-hexagon-layer.d.ts.map +0 -0
  214. /package/{typed → dist}/h3-layers/h3-utils.d.ts +0 -0
  215. /package/{typed → dist}/h3-layers/h3-utils.d.ts.map +0 -0
  216. /package/{typed → dist}/mesh-layer/mesh-layer-fragment.glsl.d.ts +0 -0
  217. /package/{typed → dist}/mesh-layer/mesh-layer-fragment.glsl.d.ts.map +0 -0
  218. /package/{typed → dist}/mesh-layer/mesh-layer-vertex.glsl.d.ts +0 -0
  219. /package/{typed → dist}/mesh-layer/mesh-layer-vertex.glsl.d.ts.map +0 -0
  220. /package/{typed → dist}/mesh-layer/mesh-layer.d.ts +0 -0
  221. /package/{typed → dist}/mesh-layer/mesh-layer.d.ts.map +0 -0
  222. /package/{typed → dist}/quadkey-layer/quadkey-layer.d.ts +0 -0
  223. /package/{typed → dist}/quadkey-layer/quadkey-layer.d.ts.map +0 -0
  224. /package/{typed → dist}/quadkey-layer/quadkey-utils.d.ts +0 -0
  225. /package/{typed → dist}/quadkey-layer/quadkey-utils.d.ts.map +0 -0
  226. /package/{typed → dist}/s2-layer/s2-geometry.d.ts +0 -0
  227. /package/{typed → dist}/s2-layer/s2-geometry.d.ts.map +0 -0
  228. /package/{typed → dist}/s2-layer/s2-layer.d.ts +0 -0
  229. /package/{typed → dist}/s2-layer/s2-layer.d.ts.map +0 -0
  230. /package/{typed → dist}/s2-layer/s2-utils.d.ts +0 -0
  231. /package/{typed → dist}/s2-layer/s2-utils.d.ts.map +0 -0
  232. /package/{typed → dist}/tile-3d-layer/tile-3d-layer.d.ts +0 -0
  233. /package/{typed → dist}/tile-3d-layer/tile-3d-layer.d.ts.map +0 -0
  234. /package/{typed → dist}/tileset-2d/index.d.ts +0 -0
  235. /package/{typed → dist}/tileset-2d/index.d.ts.map +0 -0
  236. /package/{typed → dist}/tileset-2d/memoize.d.ts +0 -0
  237. /package/{typed → dist}/tileset-2d/memoize.d.ts.map +0 -0
  238. /package/{typed → dist}/tileset-2d/types.d.ts +0 -0
  239. /package/{typed → dist}/tileset-2d/types.d.ts.map +0 -0
  240. /package/{typed → dist}/trips-layer/trips-layer.d.ts +0 -0
  241. /package/{typed → dist}/trips-layer/trips-layer.d.ts.map +0 -0
  242. /package/{typed → dist}/wms-layer/utils.d.ts +0 -0
  243. /package/{typed → dist}/wms-layer/utils.d.ts.map +0 -0
  244. /package/{typed → dist}/wms-layer/wms-layer.d.ts +0 -0
  245. /package/{typed → dist}/wms-layer/wms-layer.d.ts.map +0 -0
@@ -1,511 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var _engine = require("@luma.gl/engine");
29
-
30
- var _core = require("@deck.gl/core");
31
-
32
- var _layers = require("@deck.gl/layers");
33
-
34
- var _meshLayers = require("@deck.gl/mesh-layers");
35
-
36
- var _meshLayer = _interopRequireDefault(require("../mesh-layer/mesh-layer"));
37
-
38
- var _core2 = require("@loaders.gl/core");
39
-
40
- var _tiles = require("@loaders.gl/tiles");
41
-
42
- var _dTiles = require("@loaders.gl/3d-tiles");
43
-
44
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
45
-
46
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
47
-
48
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
49
-
50
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
-
52
- var SINGLE_DATA = [0];
53
- var defaultProps = {
54
- getPointColor: {
55
- type: 'accessor',
56
- value: [0, 0, 0, 255]
57
- },
58
- pointSize: 1.0,
59
- data: '',
60
- loader: _dTiles.Tiles3DLoader,
61
- onTilesetLoad: {
62
- type: 'function',
63
- value: function value(tileset3d) {}
64
- },
65
- onTileLoad: {
66
- type: 'function',
67
- value: function value(tileHeader) {}
68
- },
69
- onTileUnload: {
70
- type: 'function',
71
- value: function value(tileHeader) {}
72
- },
73
- onTileError: {
74
- type: 'function',
75
- value: function value(tile, message, url) {}
76
- },
77
- _getMeshColor: {
78
- type: 'function',
79
- value: function value(tileHeader) {
80
- return [255, 255, 255];
81
- }
82
- }
83
- };
84
-
85
- var Tile3DLayer = function (_CompositeLayer) {
86
- (0, _inherits2.default)(Tile3DLayer, _CompositeLayer);
87
-
88
- var _super = _createSuper(Tile3DLayer);
89
-
90
- function Tile3DLayer() {
91
- var _this;
92
-
93
- (0, _classCallCheck2.default)(this, Tile3DLayer);
94
-
95
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
96
- args[_key] = arguments[_key];
97
- }
98
-
99
- _this = _super.call.apply(_super, [this].concat(args));
100
- _this.state = void 0;
101
- return _this;
102
- }
103
-
104
- var _proto = Tile3DLayer.prototype;
105
-
106
- _proto.initializeState = function initializeState() {
107
- if ('onTileLoadFail' in this.props) {
108
- _core.log.removed('onTileLoadFail', 'onTileError')();
109
- }
110
-
111
- this.state = {
112
- layerMap: {},
113
- tileset3d: null,
114
- activeViewports: {},
115
- lastUpdatedViewports: null
116
- };
117
- };
118
-
119
- _proto.shouldUpdateState = function shouldUpdateState(_ref) {
120
- var changeFlags = _ref.changeFlags;
121
- return changeFlags.somethingChanged;
122
- };
123
-
124
- _proto.updateState = function updateState(_ref2) {
125
- var props = _ref2.props,
126
- oldProps = _ref2.oldProps,
127
- changeFlags = _ref2.changeFlags;
128
-
129
- if (props.data && props.data !== oldProps.data) {
130
- this._loadTileset(props.data);
131
- }
132
-
133
- if (changeFlags.viewportChanged) {
134
- var activeViewports = this.state.activeViewports;
135
- var viewportsNumber = Object.keys(activeViewports).length;
136
-
137
- if (viewportsNumber) {
138
- this._updateTileset(activeViewports);
139
-
140
- this.state.lastUpdatedViewports = activeViewports;
141
- this.state.activeViewports = {};
142
- }
143
- }
144
-
145
- if (changeFlags.propsChanged) {
146
- var layerMap = this.state.layerMap;
147
-
148
- for (var key in layerMap) {
149
- layerMap[key].needsUpdate = true;
150
- }
151
- }
152
- };
153
-
154
- _proto.activateViewport = function activateViewport(viewport) {
155
- var _this$state = this.state,
156
- activeViewports = _this$state.activeViewports,
157
- lastUpdatedViewports = _this$state.lastUpdatedViewports;
158
- this.internalState.viewport = viewport;
159
- activeViewports[viewport.id] = viewport;
160
- var lastViewport = lastUpdatedViewports === null || lastUpdatedViewports === void 0 ? void 0 : lastUpdatedViewports[viewport.id];
161
-
162
- if (!lastViewport || !viewport.equals(lastViewport)) {
163
- this.setChangeFlags({
164
- viewportChanged: true
165
- });
166
- this.setNeedsUpdate();
167
- }
168
- };
169
-
170
- _proto.getPickingInfo = function getPickingInfo(_ref3) {
171
- var info = _ref3.info,
172
- sourceLayer = _ref3.sourceLayer;
173
- var sourceTile = sourceLayer && sourceLayer.props.tile;
174
-
175
- if (info.picked) {
176
- info.object = sourceTile;
177
- }
178
-
179
- info.sourceTile = sourceTile;
180
- return info;
181
- };
182
-
183
- _proto.filterSubLayer = function filterSubLayer(_ref4) {
184
- var layer = _ref4.layer,
185
- viewport = _ref4.viewport;
186
- var _ref5 = layer.props,
187
- tile = _ref5.tile;
188
- var viewportId = viewport.id;
189
- return tile.selected && tile.viewportIds.includes(viewportId);
190
- };
191
-
192
- _proto._updateAutoHighlight = function _updateAutoHighlight(info) {
193
- var sourceTile = info.sourceTile;
194
- var layerCache = this.state.layerMap[sourceTile === null || sourceTile === void 0 ? void 0 : sourceTile.id];
195
-
196
- if (layerCache && layerCache.layer) {
197
- layerCache.layer.updateAutoHighlight(info);
198
- }
199
- };
200
-
201
- _proto._loadTileset = function () {
202
- var _loadTileset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tilesetUrl) {
203
- var _this$props$loadOptio, loadOptions, loaders, loader, options, actualTilesetUrl, preloadOptions, tilesetJson, tileset3d;
204
-
205
- return _regenerator.default.wrap(function _callee$(_context) {
206
- while (1) {
207
- switch (_context.prev = _context.next) {
208
- case 0:
209
- _this$props$loadOptio = this.props.loadOptions, loadOptions = _this$props$loadOptio === void 0 ? {} : _this$props$loadOptio;
210
- loaders = this.props.loader || this.props.loaders;
211
- loader = Array.isArray(loaders) ? loaders[0] : loaders;
212
- options = {
213
- loadOptions: _objectSpread({}, loadOptions)
214
- };
215
- actualTilesetUrl = tilesetUrl;
216
-
217
- if (!loader.preload) {
218
- _context.next = 12;
219
- break;
220
- }
221
-
222
- _context.next = 8;
223
- return loader.preload(tilesetUrl, loadOptions);
224
-
225
- case 8:
226
- preloadOptions = _context.sent;
227
-
228
- if (preloadOptions.url) {
229
- actualTilesetUrl = preloadOptions.url;
230
- }
231
-
232
- if (preloadOptions.headers) {
233
- options.loadOptions.fetch = _objectSpread(_objectSpread({}, options.loadOptions.fetch), {}, {
234
- headers: preloadOptions.headers
235
- });
236
- }
237
-
238
- Object.assign(options, preloadOptions);
239
-
240
- case 12:
241
- _context.next = 14;
242
- return (0, _core2.load)(actualTilesetUrl, loader, options.loadOptions);
243
-
244
- case 14:
245
- tilesetJson = _context.sent;
246
- tileset3d = new _tiles.Tileset3D(tilesetJson, _objectSpread({
247
- onTileLoad: this._onTileLoad.bind(this),
248
- onTileUnload: this._onTileUnload.bind(this),
249
- onTileError: this.props.onTileError
250
- }, options));
251
- this.setState({
252
- tileset3d: tileset3d,
253
- layerMap: {}
254
- });
255
-
256
- this._updateTileset(this.state.activeViewports);
257
-
258
- this.props.onTilesetLoad(tileset3d);
259
-
260
- case 19:
261
- case "end":
262
- return _context.stop();
263
- }
264
- }
265
- }, _callee, this);
266
- }));
267
-
268
- function _loadTileset(_x) {
269
- return _loadTileset2.apply(this, arguments);
270
- }
271
-
272
- return _loadTileset;
273
- }();
274
-
275
- _proto._onTileLoad = function _onTileLoad(tileHeader) {
276
- var lastUpdatedViewports = this.state.lastUpdatedViewports;
277
- this.props.onTileLoad(tileHeader);
278
-
279
- this._updateTileset(lastUpdatedViewports);
280
-
281
- this.setNeedsUpdate();
282
- };
283
-
284
- _proto._onTileUnload = function _onTileUnload(tileHeader) {
285
- delete this.state.layerMap[tileHeader.id];
286
- this.props.onTileUnload(tileHeader);
287
- };
288
-
289
- _proto._updateTileset = function _updateTileset(viewports) {
290
- var _this2 = this;
291
-
292
- if (!viewports) {
293
- return;
294
- }
295
-
296
- var tileset3d = this.state.tileset3d;
297
- var timeline = this.context.timeline;
298
- var viewportsNumber = Object.keys(viewports).length;
299
-
300
- if (!timeline || !viewportsNumber || !tileset3d) {
301
- return;
302
- }
303
-
304
- tileset3d.selectTiles(Object.values(viewports)).then(function (frameNumber) {
305
- var tilesetChanged = _this2.state.frameNumber !== frameNumber;
306
-
307
- if (tilesetChanged) {
308
- _this2.setState({
309
- frameNumber: frameNumber
310
- });
311
- }
312
- });
313
- };
314
-
315
- _proto._getSubLayer = function _getSubLayer(tileHeader, oldLayer) {
316
- if (!tileHeader.content) {
317
- return null;
318
- }
319
-
320
- switch (tileHeader.type) {
321
- case _tiles.TILE_TYPE.POINTCLOUD:
322
- return this._makePointCloudLayer(tileHeader, oldLayer);
323
-
324
- case _tiles.TILE_TYPE.SCENEGRAPH:
325
- return this._make3DModelLayer(tileHeader);
326
-
327
- case _tiles.TILE_TYPE.MESH:
328
- return this._makeSimpleMeshLayer(tileHeader, oldLayer);
329
-
330
- default:
331
- throw new Error("Tile3DLayer: Failed to render layer of type ".concat(tileHeader.content.type));
332
- }
333
- };
334
-
335
- _proto._makePointCloudLayer = function _makePointCloudLayer(tileHeader, oldLayer) {
336
- var _tileHeader$content = tileHeader.content,
337
- attributes = _tileHeader$content.attributes,
338
- pointCount = _tileHeader$content.pointCount,
339
- constantRGBA = _tileHeader$content.constantRGBA,
340
- cartographicOrigin = _tileHeader$content.cartographicOrigin,
341
- modelMatrix = _tileHeader$content.modelMatrix;
342
- var positions = attributes.positions,
343
- normals = attributes.normals,
344
- colors = attributes.colors;
345
-
346
- if (!positions) {
347
- return null;
348
- }
349
-
350
- var data = oldLayer && oldLayer.props.data || {
351
- header: {
352
- vertexCount: pointCount
353
- },
354
- attributes: {
355
- POSITION: positions,
356
- NORMAL: normals,
357
- COLOR_0: colors
358
- }
359
- };
360
- var _this$props = this.props,
361
- pointSize = _this$props.pointSize,
362
- getPointColor = _this$props.getPointColor;
363
- var SubLayerClass = this.getSubLayerClass('pointcloud', _layers.PointCloudLayer);
364
- return new SubLayerClass({
365
- pointSize: pointSize
366
- }, this.getSubLayerProps({
367
- id: 'pointcloud'
368
- }), {
369
- id: "".concat(this.id, "-pointcloud-").concat(tileHeader.id),
370
- tile: tileHeader,
371
- data: data,
372
- coordinateSystem: _core.COORDINATE_SYSTEM.METER_OFFSETS,
373
- coordinateOrigin: cartographicOrigin,
374
- modelMatrix: modelMatrix,
375
- getColor: constantRGBA || getPointColor,
376
- _offset: 0
377
- });
378
- };
379
-
380
- _proto._make3DModelLayer = function _make3DModelLayer(tileHeader) {
381
- var _tileHeader$content2 = tileHeader.content,
382
- gltf = _tileHeader$content2.gltf,
383
- instances = _tileHeader$content2.instances,
384
- cartographicOrigin = _tileHeader$content2.cartographicOrigin,
385
- modelMatrix = _tileHeader$content2.modelMatrix;
386
- var SubLayerClass = this.getSubLayerClass('scenegraph', _meshLayers.ScenegraphLayer);
387
- return new SubLayerClass({
388
- _lighting: 'pbr'
389
- }, this.getSubLayerProps({
390
- id: 'scenegraph'
391
- }), {
392
- id: "".concat(this.id, "-scenegraph-").concat(tileHeader.id),
393
- tile: tileHeader,
394
- data: instances || SINGLE_DATA,
395
- scenegraph: gltf,
396
- coordinateSystem: _core.COORDINATE_SYSTEM.METER_OFFSETS,
397
- coordinateOrigin: cartographicOrigin,
398
- modelMatrix: modelMatrix,
399
- getTransformMatrix: function getTransformMatrix(instance) {
400
- return instance.modelMatrix;
401
- },
402
- getPosition: [0, 0, 0],
403
- _offset: 0
404
- });
405
- };
406
-
407
- _proto._makeSimpleMeshLayer = function _makeSimpleMeshLayer(tileHeader, oldLayer) {
408
- var content = tileHeader.content;
409
- var attributes = content.attributes,
410
- indices = content.indices,
411
- modelMatrix = content.modelMatrix,
412
- cartographicOrigin = content.cartographicOrigin,
413
- _content$coordinateSy = content.coordinateSystem,
414
- coordinateSystem = _content$coordinateSy === void 0 ? _core.COORDINATE_SYSTEM.METER_OFFSETS : _content$coordinateSy,
415
- material = content.material,
416
- featureIds = content.featureIds;
417
- var _getMeshColor = this.props._getMeshColor;
418
- var geometry = oldLayer && oldLayer.props.mesh || new _engine.Geometry({
419
- topology: 'triangle-list',
420
- attributes: getMeshGeometry(attributes),
421
- indices: indices
422
- });
423
- var SubLayerClass = this.getSubLayerClass('mesh', _meshLayer.default);
424
- return new SubLayerClass(this.getSubLayerProps({
425
- id: 'mesh'
426
- }), {
427
- id: "".concat(this.id, "-mesh-").concat(tileHeader.id),
428
- tile: tileHeader,
429
- mesh: geometry,
430
- data: SINGLE_DATA,
431
- getColor: _getMeshColor(tileHeader),
432
- pbrMaterial: material,
433
- modelMatrix: modelMatrix,
434
- coordinateOrigin: cartographicOrigin,
435
- coordinateSystem: coordinateSystem,
436
- featureIds: featureIds,
437
- _offset: 0
438
- });
439
- };
440
-
441
- _proto.renderLayers = function renderLayers() {
442
- var _this3 = this;
443
-
444
- var _this$state2 = this.state,
445
- tileset3d = _this$state2.tileset3d,
446
- layerMap = _this$state2.layerMap;
447
-
448
- if (!tileset3d) {
449
- return null;
450
- }
451
-
452
- return tileset3d.tiles.map(function (tile) {
453
- var layerCache = layerMap[tile.id] = layerMap[tile.id] || {
454
- tile: tile
455
- };
456
- var layer = layerCache.layer;
457
-
458
- if (tile.selected) {
459
- if (!layer) {
460
- layer = _this3._getSubLayer(tile);
461
- } else if (layerCache.needsUpdate) {
462
- layer = _this3._getSubLayer(tile, layer);
463
- layerCache.needsUpdate = false;
464
- }
465
- }
466
-
467
- layerCache.layer = layer;
468
- return layer;
469
- }).filter(Boolean);
470
- };
471
-
472
- (0, _createClass2.default)(Tile3DLayer, [{
473
- key: "isLoaded",
474
- get: function get() {
475
- var _this$state3, _this$state3$tileset;
476
-
477
- return Boolean(((_this$state3 = this.state) === null || _this$state3 === void 0 ? void 0 : (_this$state3$tileset = _this$state3.tileset3d) === null || _this$state3$tileset === void 0 ? void 0 : _this$state3$tileset.isLoaded()) && (0, _get2.default)((0, _getPrototypeOf2.default)(Tile3DLayer.prototype), "isLoaded", this));
478
- }
479
- }]);
480
- return Tile3DLayer;
481
- }(_core.CompositeLayer);
482
-
483
- exports.default = Tile3DLayer;
484
- Tile3DLayer.defaultProps = defaultProps;
485
- Tile3DLayer.layerName = 'Tile3DLayer';
486
-
487
- function getMeshGeometry(contentAttributes) {
488
- var attributes = {};
489
- attributes.positions = _objectSpread(_objectSpread({}, contentAttributes.positions), {}, {
490
- value: new Float32Array(contentAttributes.positions.value)
491
- });
492
-
493
- if (contentAttributes.normals) {
494
- attributes.normals = contentAttributes.normals;
495
- }
496
-
497
- if (contentAttributes.texCoords) {
498
- attributes.texCoords = contentAttributes.texCoords;
499
- }
500
-
501
- if (contentAttributes.colors) {
502
- attributes.colors = contentAttributes.colors;
503
- }
504
-
505
- if (contentAttributes.uvRegions) {
506
- attributes.uvRegions = contentAttributes.uvRegions;
507
- }
508
-
509
- return attributes;
510
- }
511
- //# sourceMappingURL=tile-3d-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/tile-3d-layer/tile-3d-layer.ts"],"names":["SINGLE_DATA","defaultProps","getPointColor","type","value","pointSize","data","loader","Tiles3DLoader","onTilesetLoad","tileset3d","onTileLoad","tileHeader","onTileUnload","onTileError","tile","message","url","_getMeshColor","Tile3DLayer","state","initializeState","props","log","removed","layerMap","activeViewports","lastUpdatedViewports","shouldUpdateState","changeFlags","somethingChanged","updateState","oldProps","_loadTileset","viewportChanged","viewportsNumber","Object","keys","length","_updateTileset","propsChanged","key","needsUpdate","activateViewport","viewport","internalState","id","lastViewport","equals","setChangeFlags","setNeedsUpdate","getPickingInfo","info","sourceLayer","sourceTile","picked","object","filterSubLayer","layer","viewportId","selected","viewportIds","includes","_updateAutoHighlight","layerCache","updateAutoHighlight","tilesetUrl","loadOptions","loaders","Array","isArray","options","actualTilesetUrl","preload","preloadOptions","headers","fetch","assign","tilesetJson","Tileset3D","_onTileLoad","bind","_onTileUnload","setState","viewports","timeline","context","selectTiles","values","then","frameNumber","tilesetChanged","_getSubLayer","oldLayer","content","TILE_TYPE","POINTCLOUD","_makePointCloudLayer","SCENEGRAPH","_make3DModelLayer","MESH","_makeSimpleMeshLayer","Error","attributes","pointCount","constantRGBA","cartographicOrigin","modelMatrix","positions","normals","colors","header","vertexCount","POSITION","NORMAL","COLOR_0","SubLayerClass","getSubLayerClass","PointCloudLayer","getSubLayerProps","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","coordinateOrigin","getColor","_offset","gltf","instances","ScenegraphLayer","_lighting","scenegraph","getTransformMatrix","instance","getPosition","indices","material","featureIds","geometry","mesh","Geometry","topology","getMeshGeometry","MeshLayer","pbrMaterial","renderLayers","tiles","map","filter","Boolean","isLoaded","CompositeLayer","layerName","contentAttributes","Float32Array","texCoords","uvRegions"],"mappings":"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","sourcesContent":["import {Geometry} from '@luma.gl/engine';\n\nimport {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n COORDINATE_SYSTEM,\n FilterContext,\n GetPickingInfoParams,\n Layer,\n LayersList,\n log,\n PickingInfo,\n UpdateParameters,\n Viewport,\n DefaultProps\n} from '@deck.gl/core';\nimport {PointCloudLayer} from '@deck.gl/layers';\nimport {ScenegraphLayer} from '@deck.gl/mesh-layers';\nimport {default as MeshLayer} from '../mesh-layer/mesh-layer';\n\nimport {load} from '@loaders.gl/core';\nimport {MeshAttributes} from '@loaders.gl/schema';\nimport {Tileset3D, Tile3D, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Tiles3DLoader} from '@loaders.gl/3d-tiles';\n\nconst SINGLE_DATA = [0];\n\nconst defaultProps: DefaultProps<Tile3DLayerProps> = {\n getPointColor: {type: 'accessor', value: [0, 0, 0, 255]},\n pointSize: 1.0,\n\n // Disable async data loading (handling it in _loadTileSet)\n data: '',\n loader: Tiles3DLoader,\n\n onTilesetLoad: {type: 'function', value: tileset3d => {}},\n onTileLoad: {type: 'function', value: tileHeader => {}},\n onTileUnload: {type: 'function', value: tileHeader => {}},\n onTileError: {type: 'function', value: (tile, message, url) => {}},\n _getMeshColor: {type: 'function', value: tileHeader => [255, 255, 255]}\n};\n\n/** All properties supported by Tile3DLayer */\nexport type Tile3DLayerProps<DataT = unknown> = _Tile3DLayerProps<DataT> & CompositeLayerProps;\n\n/** Props added by the Tile3DLayer */\ntype _Tile3DLayerProps<DataT> = {\n data: string;\n /** Color Accessor for point clouds. **/\n getPointColor?: Accessor<DataT, Color>;\n\n /** Global radius of all points in pixels. **/\n pointSize?: number;\n\n /** A loader which is used to decode the fetched tiles.\n * @deprecated Use `loaders` instead\n */\n loader?: typeof Tiles3DLoader;\n\n /** Called when Tileset JSON file is loaded. **/\n onTilesetLoad?: (tile: Tileset3D) => void;\n\n /** Called when a tile in the tileset hierarchy is loaded. **/\n onTileLoad?: (tile: Tile3D) => void;\n\n /** Called when a tile is unloaded. **/\n onTileUnload?: (tile: Tile3D) => void;\n\n /** Called when a tile fails to load. **/\n onTileError?: (tile: Tile3D, url: string, message: string) => void;\n\n /** (Experimental) Accessor to change color of mesh based on properties. **/\n _getMeshColor?: (tile: Tile3D) => Color;\n};\n\n/** Render 3d tiles data formatted according to the [3D Tiles Specification](https://www.opengeospatial.org/standards/3DTiles) and [`ESRI I3S`](https://github.com/Esri/i3s-spec) */\nexport default class Tile3DLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_Tile3DLayerProps<DataT>>\n> {\n static defaultProps = defaultProps;\n static layerName = 'Tile3DLayer';\n\n state!: {\n activeViewports: {};\n frameNumber?: number;\n lastUpdatedViewports: {[viewportId: string]: Viewport} | null;\n layerMap: {[layerId: string]: any};\n tileset3d: Tileset3D | null;\n };\n\n initializeState() {\n if ('onTileLoadFail' in this.props) {\n log.removed('onTileLoadFail', 'onTileError')();\n }\n // prop verification\n this.state = {\n layerMap: {},\n tileset3d: null,\n activeViewports: {},\n lastUpdatedViewports: null\n };\n }\n\n get isLoaded(): boolean {\n return Boolean(this.state?.tileset3d?.isLoaded() && super.isLoaded);\n }\n\n shouldUpdateState({changeFlags}: UpdateParameters<this>): boolean {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, oldProps, changeFlags}: UpdateParameters<this>): void {\n if (props.data && props.data !== oldProps.data) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._loadTileset(props.data);\n }\n\n if (changeFlags.viewportChanged) {\n const {activeViewports} = this.state;\n const viewportsNumber = Object.keys(activeViewports).length;\n if (viewportsNumber) {\n this._updateTileset(activeViewports);\n this.state.lastUpdatedViewports = activeViewports;\n this.state.activeViewports = {};\n }\n }\n if (changeFlags.propsChanged) {\n const {layerMap} = this.state;\n for (const key in layerMap) {\n layerMap[key].needsUpdate = true;\n }\n }\n }\n\n activateViewport(viewport: Viewport): void {\n const {activeViewports, lastUpdatedViewports} = this.state;\n this.internalState!.viewport = viewport;\n\n activeViewports[viewport.id] = viewport;\n const lastViewport = lastUpdatedViewports?.[viewport.id];\n if (!lastViewport || !viewport.equals(lastViewport)) {\n this.setChangeFlags({viewportChanged: true});\n this.setNeedsUpdate();\n }\n }\n\n getPickingInfo({info, sourceLayer}: GetPickingInfoParams) {\n const sourceTile = sourceLayer && (sourceLayer.props as any).tile;\n if (info.picked) {\n info.object = sourceTile;\n }\n (info as any).sourceTile = sourceTile;\n\n return info;\n }\n\n filterSubLayer({layer, viewport}: FilterContext): boolean {\n // All sublayers will have a tile prop\n const {tile} = layer.props as unknown as {tile: Tile3D};\n const {id: viewportId} = viewport;\n return tile.selected && tile.viewportIds.includes(viewportId);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const sourceTile = (info as any).sourceTile;\n const layerCache = this.state.layerMap[sourceTile?.id];\n if (layerCache && layerCache.layer) {\n layerCache.layer.updateAutoHighlight(info);\n }\n }\n\n private async _loadTileset(tilesetUrl) {\n const {loadOptions = {}} = this.props;\n\n // TODO: deprecate `loader` in v9.0\n // @ts-ignore\n const loaders = this.props.loader || this.props.loaders;\n const loader = Array.isArray(loaders) ? loaders[0] : loaders;\n\n const options = {loadOptions: {...loadOptions}};\n let actualTilesetUrl = tilesetUrl;\n if (loader.preload) {\n const preloadOptions = await loader.preload(tilesetUrl, loadOptions);\n if (preloadOptions.url) {\n actualTilesetUrl = preloadOptions.url;\n }\n\n if (preloadOptions.headers) {\n options.loadOptions.fetch = {\n ...options.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n }\n Object.assign(options, preloadOptions);\n }\n const tilesetJson = await load(actualTilesetUrl, loader, options.loadOptions);\n\n const tileset3d = new Tileset3D(tilesetJson, {\n onTileLoad: this._onTileLoad.bind(this),\n onTileUnload: this._onTileUnload.bind(this),\n onTileError: this.props.onTileError,\n ...options\n });\n\n this.setState({\n tileset3d,\n layerMap: {}\n });\n\n this._updateTileset(this.state.activeViewports);\n this.props.onTilesetLoad(tileset3d);\n }\n\n private _onTileLoad(tileHeader: Tile3D): void {\n const {lastUpdatedViewports} = this.state;\n this.props.onTileLoad(tileHeader);\n this._updateTileset(lastUpdatedViewports);\n this.setNeedsUpdate();\n }\n\n private _onTileUnload(tileHeader: Tile3D): void {\n // Was cleaned up from tileset cache. We no longer need to track it.\n delete this.state.layerMap[tileHeader.id];\n this.props.onTileUnload(tileHeader);\n }\n\n private _updateTileset(viewports: {[viewportId: string]: Viewport} | null): void {\n if (!viewports) {\n return;\n }\n const {tileset3d} = this.state;\n const {timeline} = this.context;\n const viewportsNumber = Object.keys(viewports).length;\n if (!timeline || !viewportsNumber || !tileset3d) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tileset3d.selectTiles(Object.values(viewports)).then(frameNumber => {\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n if (tilesetChanged) {\n this.setState({frameNumber});\n }\n });\n }\n\n private _getSubLayer(\n tileHeader: Tile3D,\n oldLayer?: Layer\n ): MeshLayer<DataT> | PointCloudLayer<DataT> | ScenegraphLayer<DataT> | null {\n if (!tileHeader.content) {\n return null;\n }\n\n switch (tileHeader.type as TILE_TYPE) {\n case TILE_TYPE.POINTCLOUD:\n return this._makePointCloudLayer(tileHeader, oldLayer as PointCloudLayer<DataT>);\n case TILE_TYPE.SCENEGRAPH:\n return this._make3DModelLayer(tileHeader);\n case TILE_TYPE.MESH:\n return this._makeSimpleMeshLayer(tileHeader, oldLayer as MeshLayer<DataT>);\n default:\n throw new Error(`Tile3DLayer: Failed to render layer of type ${tileHeader.content.type}`);\n }\n }\n\n private _makePointCloudLayer(\n tileHeader: Tile3D,\n oldLayer?: PointCloudLayer<DataT>\n ): PointCloudLayer<DataT> | null {\n const {attributes, pointCount, constantRGBA, cartographicOrigin, modelMatrix} =\n tileHeader.content;\n const {positions, normals, colors} = attributes;\n\n if (!positions) {\n return null;\n }\n const data = (oldLayer && oldLayer.props.data) || {\n header: {\n vertexCount: pointCount\n },\n attributes: {\n POSITION: positions,\n NORMAL: normals,\n COLOR_0: colors\n }\n };\n\n const {pointSize, getPointColor} = this.props;\n const SubLayerClass = this.getSubLayerClass('pointcloud', PointCloudLayer);\n return new SubLayerClass(\n {\n pointSize\n },\n this.getSubLayerProps({\n id: 'pointcloud'\n }),\n {\n id: `${this.id}-pointcloud-${tileHeader.id}`,\n tile: tileHeader,\n data,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getColor: constantRGBA || getPointColor,\n _offset: 0\n }\n );\n }\n\n private _make3DModelLayer(tileHeader: Tile3D): ScenegraphLayer<DataT> {\n const {gltf, instances, cartographicOrigin, modelMatrix} = tileHeader.content;\n\n const SubLayerClass = this.getSubLayerClass('scenegraph', ScenegraphLayer);\n\n return new SubLayerClass(\n {\n _lighting: 'pbr'\n },\n this.getSubLayerProps({\n id: 'scenegraph'\n }),\n {\n id: `${this.id}-scenegraph-${tileHeader.id}`,\n tile: tileHeader,\n data: instances || SINGLE_DATA,\n scenegraph: gltf,\n\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getTransformMatrix: instance => instance.modelMatrix,\n getPosition: [0, 0, 0],\n _offset: 0\n }\n );\n }\n\n private _makeSimpleMeshLayer(tileHeader: Tile3D, oldLayer?: MeshLayer<DataT>): MeshLayer<DataT> {\n const content = tileHeader.content;\n const {\n attributes,\n indices,\n modelMatrix,\n cartographicOrigin,\n coordinateSystem = COORDINATE_SYSTEM.METER_OFFSETS,\n material,\n featureIds\n } = content;\n const {_getMeshColor} = this.props;\n\n const geometry =\n (oldLayer && oldLayer.props.mesh) ||\n new Geometry({\n topology: 'triangle-list',\n attributes: getMeshGeometry(attributes),\n indices\n });\n\n const SubLayerClass = this.getSubLayerClass('mesh', MeshLayer);\n\n return new SubLayerClass(\n this.getSubLayerProps({\n id: 'mesh'\n }),\n {\n id: `${this.id}-mesh-${tileHeader.id}`,\n tile: tileHeader,\n mesh: geometry,\n data: SINGLE_DATA,\n getColor: _getMeshColor(tileHeader),\n pbrMaterial: material,\n modelMatrix,\n coordinateOrigin: cartographicOrigin,\n coordinateSystem,\n featureIds,\n _offset: 0\n }\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {tileset3d, layerMap} = this.state;\n if (!tileset3d) {\n return null;\n }\n\n // loaders.gl doesn't provide a type for tileset3d.tiles\n return (tileset3d.tiles as Tile3D[])\n .map(tile => {\n const layerCache = (layerMap[tile.id] = layerMap[tile.id] || {tile});\n let {layer} = layerCache;\n if (tile.selected) {\n // render selected tiles\n if (!layer) {\n // create layer\n layer = this._getSubLayer(tile);\n } else if (layerCache.needsUpdate) {\n // props have changed, rerender layer\n layer = this._getSubLayer(tile, layer);\n layerCache.needsUpdate = false;\n }\n }\n layerCache.layer = layer;\n return layer;\n })\n .filter(Boolean);\n }\n}\n\nfunction getMeshGeometry(contentAttributes: MeshAttributes): MeshAttributes {\n const attributes: MeshAttributes = {};\n attributes.positions = {\n ...contentAttributes.positions,\n value: new Float32Array(contentAttributes.positions.value)\n };\n if (contentAttributes.normals) {\n attributes.normals = contentAttributes.normals;\n }\n if (contentAttributes.texCoords) {\n attributes.texCoords = contentAttributes.texCoords;\n }\n if (contentAttributes.colors) {\n attributes.colors = contentAttributes.colors;\n }\n if (contentAttributes.uvRegions) {\n attributes.uvRegions = contentAttributes.uvRegions;\n }\n return attributes;\n}\n"],"file":"tile-3d-layer.js"}