@loaders.gl/i3s 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (209) hide show
  1. package/dist/arcgis-webscene-loader.d.ts +7 -0
  2. package/dist/arcgis-webscene-loader.d.ts.map +1 -0
  3. package/dist/arcgis-webscene-loader.js +28 -0
  4. package/dist/bundle.js +2 -2
  5. package/dist/dist.min.js +9390 -8570
  6. package/dist/es5/arcgis-webscene-loader.js +40 -0
  7. package/dist/es5/arcgis-webscene-loader.js.map +1 -0
  8. package/dist/es5/bundle.js +6 -0
  9. package/dist/es5/bundle.js.map +1 -0
  10. package/dist/es5/i3s-attribute-loader.js +195 -0
  11. package/dist/es5/i3s-attribute-loader.js.map +1 -0
  12. package/dist/es5/i3s-building-scene-layer-loader.js +46 -0
  13. package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -0
  14. package/dist/es5/i3s-content-loader.js +56 -0
  15. package/dist/es5/i3s-content-loader.js.map +1 -0
  16. package/dist/es5/i3s-loader.js +193 -0
  17. package/dist/es5/i3s-loader.js.map +1 -0
  18. package/dist/es5/i3s-node-page-loader.js +39 -0
  19. package/dist/es5/i3s-node-page-loader.js.map +1 -0
  20. package/dist/es5/i3s-slpk-loader.js +20 -0
  21. package/dist/es5/i3s-slpk-loader.js.map +1 -0
  22. package/dist/es5/index.js +68 -0
  23. package/dist/es5/index.js.map +1 -0
  24. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +312 -0
  25. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
  26. package/dist/es5/lib/parsers/constants.js +72 -0
  27. package/dist/es5/lib/parsers/constants.js.map +1 -0
  28. package/dist/es5/lib/parsers/parse-arcgis-webscene.js +158 -0
  29. package/dist/es5/lib/parsers/parse-arcgis-webscene.js.map +1 -0
  30. package/dist/es5/lib/parsers/parse-i3s-attribute.js +76 -0
  31. package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +1 -0
  32. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +65 -0
  33. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
  34. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +510 -0
  35. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -0
  36. package/dist/es5/lib/parsers/parse-i3s.js +116 -0
  37. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -0
  38. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +94 -0
  39. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
  40. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +112 -0
  41. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
  42. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +44 -0
  43. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -0
  44. package/dist/es5/lib/parsers/parse-zip/local-file-header.js +26 -0
  45. package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -0
  46. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +17 -0
  47. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
  48. package/dist/es5/lib/utils/customizeColors.js +159 -0
  49. package/dist/es5/lib/utils/customizeColors.js.map +1 -0
  50. package/dist/es5/lib/utils/url-utils.js +33 -0
  51. package/dist/es5/lib/utils/url-utils.js.map +1 -0
  52. package/dist/es5/types.js +26 -0
  53. package/dist/es5/types.js.map +1 -0
  54. package/dist/es5/workers/i3s-content-worker-node.js +7 -0
  55. package/dist/es5/workers/i3s-content-worker-node.js.map +1 -0
  56. package/dist/es5/workers/i3s-content-worker.js +6 -0
  57. package/dist/es5/workers/i3s-content-worker.js.map +1 -0
  58. package/dist/esm/arcgis-webscene-loader.js +16 -0
  59. package/dist/esm/arcgis-webscene-loader.js.map +1 -0
  60. package/dist/esm/bundle.js +4 -0
  61. package/dist/esm/bundle.js.map +1 -0
  62. package/dist/esm/i3s-attribute-loader.js +119 -0
  63. package/dist/esm/i3s-attribute-loader.js.map +1 -0
  64. package/dist/esm/i3s-building-scene-layer-loader.js +19 -0
  65. package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -0
  66. package/dist/esm/i3s-content-loader.js +30 -0
  67. package/dist/esm/i3s-content-loader.js.map +1 -0
  68. package/dist/esm/i3s-loader.js +87 -0
  69. package/dist/esm/i3s-loader.js.map +1 -0
  70. package/dist/esm/i3s-node-page-loader.js +15 -0
  71. package/dist/esm/i3s-node-page-loader.js.map +1 -0
  72. package/dist/esm/i3s-slpk-loader.js +13 -0
  73. package/dist/esm/i3s-slpk-loader.js.map +1 -0
  74. package/dist/esm/index.js +9 -0
  75. package/dist/esm/index.js.map +1 -0
  76. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +198 -0
  77. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
  78. package/dist/esm/lib/parsers/constants.js +57 -0
  79. package/dist/esm/lib/parsers/constants.js.map +1 -0
  80. package/dist/esm/lib/parsers/parse-arcgis-webscene.js +70 -0
  81. package/dist/esm/lib/parsers/parse-arcgis-webscene.js.map +1 -0
  82. package/dist/esm/lib/parsers/parse-i3s-attribute.js +60 -0
  83. package/dist/esm/lib/parsers/parse-i3s-attribute.js.map +1 -0
  84. package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js +39 -0
  85. package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
  86. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +435 -0
  87. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -0
  88. package/dist/esm/lib/parsers/parse-i3s.js +83 -0
  89. package/dist/esm/lib/parsers/parse-i3s.js.map +1 -0
  90. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +37 -0
  91. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
  92. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +58 -0
  93. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
  94. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +37 -0
  95. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +1 -0
  96. package/dist/esm/lib/parsers/parse-zip/local-file-header.js +19 -0
  97. package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +1 -0
  98. package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js +9 -0
  99. package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
  100. package/dist/esm/lib/utils/customizeColors.js +92 -0
  101. package/dist/esm/lib/utils/customizeColors.js.map +1 -0
  102. package/dist/esm/lib/utils/url-utils.js +28 -0
  103. package/dist/esm/lib/utils/url-utils.js.map +1 -0
  104. package/dist/esm/types.js +18 -0
  105. package/dist/esm/types.js.map +1 -0
  106. package/dist/esm/workers/i3s-content-worker-node.js +5 -0
  107. package/dist/esm/workers/i3s-content-worker-node.js.map +1 -0
  108. package/dist/esm/workers/i3s-content-worker.js +4 -0
  109. package/dist/esm/workers/i3s-content-worker.js.map +1 -0
  110. package/dist/i3s-attribute-loader.d.ts +9 -2
  111. package/dist/i3s-attribute-loader.d.ts.map +1 -1
  112. package/dist/i3s-attribute-loader.js +155 -132
  113. package/dist/i3s-building-scene-layer-loader.js +23 -18
  114. package/dist/i3s-content-loader.d.ts.map +1 -1
  115. package/dist/i3s-content-loader.js +29 -22
  116. package/dist/i3s-content-worker-node.js +197 -0
  117. package/dist/i3s-content-worker-node.js.map +7 -0
  118. package/dist/i3s-content-worker.js +1178 -1137
  119. package/dist/i3s-loader.d.ts +5 -0
  120. package/dist/i3s-loader.d.ts.map +1 -1
  121. package/dist/i3s-loader.js +88 -83
  122. package/dist/i3s-node-page-loader.d.ts +3 -2
  123. package/dist/i3s-node-page-loader.d.ts.map +1 -1
  124. package/dist/i3s-node-page-loader.js +20 -20
  125. package/dist/i3s-slpk-loader.d.ts +10 -0
  126. package/dist/i3s-slpk-loader.d.ts.map +1 -0
  127. package/dist/i3s-slpk-loader.js +20 -0
  128. package/dist/index.d.ts +5 -2
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +21 -6
  131. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +1 -0
  132. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -1
  133. package/dist/lib/helpers/i3s-nodepages-tiles.js +231 -228
  134. package/dist/lib/parsers/constants.js +85 -63
  135. package/dist/lib/parsers/parse-arcgis-webscene.d.ts +7 -0
  136. package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -0
  137. package/dist/lib/parsers/parse-arcgis-webscene.js +88 -0
  138. package/dist/lib/parsers/parse-i3s-attribute.d.ts +6 -4
  139. package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -1
  140. package/dist/lib/parsers/parse-i3s-attribute.js +87 -62
  141. package/dist/lib/parsers/parse-i3s-building-scene-layer.js +41 -40
  142. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +2 -2
  143. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  144. package/dist/lib/parsers/parse-i3s-tile-content.js +454 -454
  145. package/dist/lib/parsers/parse-i3s.d.ts +1 -1
  146. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  147. package/dist/lib/parsers/parse-i3s.js +92 -88
  148. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +4 -0
  149. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -0
  150. package/dist/lib/parsers/parse-slpk/parse-slpk.js +50 -0
  151. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +32 -0
  152. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -0
  153. package/dist/lib/parsers/parse-slpk/slpk-archieve.js +79 -0
  154. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +38 -0
  155. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +1 -0
  156. package/dist/lib/parsers/parse-zip/cd-file-header.js +48 -0
  157. package/dist/lib/parsers/parse-zip/local-file-header.d.ts +30 -0
  158. package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +1 -0
  159. package/dist/lib/parsers/parse-zip/local-file-header.js +28 -0
  160. package/dist/lib/utils/convert-i3s-obb-to-mbs.js +19 -8
  161. package/dist/lib/utils/customizeColors.d.ts +14 -0
  162. package/dist/lib/utils/customizeColors.d.ts.map +1 -0
  163. package/dist/lib/utils/customizeColors.js +94 -0
  164. package/dist/lib/utils/url-utils.js +41 -28
  165. package/dist/types.d.ts +518 -97
  166. package/dist/types.d.ts.map +1 -1
  167. package/dist/types.js +18 -19
  168. package/dist/workers/i3s-content-worker-node.d.ts +2 -0
  169. package/dist/workers/i3s-content-worker-node.d.ts.map +1 -0
  170. package/dist/workers/i3s-content-worker-node.js +7 -0
  171. package/dist/workers/i3s-content-worker.js +5 -4
  172. package/package.json +16 -14
  173. package/src/arcgis-webscene-loader.ts +31 -0
  174. package/src/i3s-attribute-loader.ts +9 -9
  175. package/src/i3s-content-loader.ts +17 -5
  176. package/src/i3s-loader.ts +22 -13
  177. package/src/i3s-node-page-loader.ts +6 -10
  178. package/src/i3s-slpk-loader.ts +25 -0
  179. package/src/index.ts +22 -5
  180. package/src/lib/helpers/i3s-nodepages-tiles.ts +14 -3
  181. package/src/lib/parsers/constants.ts +1 -1
  182. package/src/lib/parsers/parse-arcgis-webscene.ts +102 -0
  183. package/src/lib/parsers/parse-i3s-attribute.ts +21 -14
  184. package/src/lib/parsers/parse-i3s-tile-content.ts +99 -76
  185. package/src/lib/parsers/parse-i3s.ts +8 -3
  186. package/src/lib/parsers/parse-slpk/parse-slpk.ts +61 -0
  187. package/src/lib/parsers/parse-slpk/slpk-archieve.ts +108 -0
  188. package/src/lib/parsers/parse-zip/cd-file-header.ts +93 -0
  189. package/src/lib/parsers/parse-zip/local-file-header.ts +56 -0
  190. package/src/lib/utils/customizeColors.ts +134 -0
  191. package/src/types.ts +482 -33
  192. package/src/workers/i3s-content-worker-node.ts +6 -0
  193. package/dist/bundle.js.map +0 -1
  194. package/dist/i3s-attribute-loader.js.map +0 -1
  195. package/dist/i3s-building-scene-layer-loader.js.map +0 -1
  196. package/dist/i3s-content-loader.js.map +0 -1
  197. package/dist/i3s-loader.js.map +0 -1
  198. package/dist/i3s-node-page-loader.js.map +0 -1
  199. package/dist/index.js.map +0 -1
  200. package/dist/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
  201. package/dist/lib/parsers/constants.js.map +0 -1
  202. package/dist/lib/parsers/parse-i3s-attribute.js.map +0 -1
  203. package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
  204. package/dist/lib/parsers/parse-i3s-tile-content.js.map +0 -1
  205. package/dist/lib/parsers/parse-i3s.js.map +0 -1
  206. package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
  207. package/dist/lib/utils/url-utils.js.map +0 -1
  208. package/dist/types.js.map +0 -1
  209. package/dist/workers/i3s-content-worker.js.map +0 -1
@@ -1,4 +1,9 @@
1
1
  import type { LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ import { I3SParseOptions } from './types';
3
+ import { LoaderOptions } from './../../loader-utils/src/types';
4
+ export type I3SLoaderOptions = LoaderOptions & {
5
+ i3s?: I3SParseOptions;
6
+ };
2
7
  /**
3
8
  * Loader for I3S - Indexed 3D Scene Layer
4
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-loader.d.ts","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAc/D;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAsBvB,CAAC"}
1
+ {"version":3,"file":"i3s-loader.d.ts","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAK/D,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAW7D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAwBvB,CAAC"}
@@ -1,97 +1,102 @@
1
- import { load, parse } from '@loaders.gl/core';
2
- import { I3SContentLoader } from './i3s-content-loader';
3
- import { normalizeTileData, normalizeTilesetData } from './lib/parsers/parse-i3s';
4
- import { COORDINATE_SYSTEM } from './lib/parsers/constants';
5
- const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.I3SLoader = void 0;
4
+ const core_1 = require("@loaders.gl/core");
5
+ const i3s_content_loader_1 = require("./i3s-content-loader");
6
+ const parse_i3s_1 = require("./lib/parsers/parse-i3s");
7
+ const constants_1 = require("./lib/parsers/constants");
8
+ // __VERSION__ is injected by babel-plugin-version-inline
9
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
10
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
6
11
  const TILESET_REGEX = /layers\/[0-9]+$/;
7
12
  const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
8
13
  const SLPK_HEX = '504b0304';
9
- export const I3SLoader = {
10
- name: 'I3S (Indexed Scene Layers)',
11
- id: 'i3s',
12
- module: 'i3s',
13
- version: VERSION,
14
- mimeTypes: ['application/octet-stream'],
15
- parse: parseI3S,
16
- extensions: ['bin'],
17
- options: {
18
- i3s: {
19
- loadContent: true,
20
- token: null,
21
- isTileset: 'auto',
22
- isTileHeader: 'auto',
23
- tile: null,
24
- tileset: null,
25
- useDracoGeometry: true,
26
- useCompressedTextures: true,
27
- decodeTextures: true,
28
- coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS
14
+ const POINT_CLOUD = 'PointCloud';
15
+ /**
16
+ * Loader for I3S - Indexed 3D Scene Layer
17
+ */
18
+ exports.I3SLoader = {
19
+ name: 'I3S (Indexed Scene Layers)',
20
+ id: 'i3s',
21
+ module: 'i3s',
22
+ version: VERSION,
23
+ mimeTypes: ['application/octet-stream'],
24
+ parse: parseI3S,
25
+ extensions: ['bin'],
26
+ options: {
27
+ i3s: {
28
+ token: null,
29
+ isTileset: 'auto',
30
+ isTileHeader: 'auto',
31
+ tile: null,
32
+ tileset: null,
33
+ _tileOptions: null,
34
+ _tilesetOptions: null,
35
+ useDracoGeometry: true,
36
+ useCompressedTextures: true,
37
+ decodeTextures: true,
38
+ coordinateSystem: constants_1.COORDINATE_SYSTEM.METER_OFFSETS,
39
+ colorsByAttribute: null
40
+ }
29
41
  }
30
- }
31
42
  };
32
-
33
- async function parseI3S(data, options, context) {
34
- const url = context.url;
35
- options.i3s = options.i3s || {};
36
- const magicNumber = getMagicNumber(data);
37
-
38
- if (magicNumber === SLPK_HEX) {
39
- throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
40
- }
41
-
42
- let isTileset;
43
-
44
- if (options.i3s.isTileset === 'auto') {
45
- isTileset = TILESET_REGEX.test(url);
46
- } else {
47
- isTileset = options.i3s.isTileset;
48
- }
49
-
50
- let isTileHeader;
51
-
52
- if (options.isTileHeader === 'auto') {
53
- isTileHeader = TILE_HEADER_REGEX.test(url);
54
- } else {
55
- isTileHeader = options.i3s.isTileHeader;
56
- }
57
-
58
- if (isTileset) {
59
- data = await parseTileset(data, options, context);
60
- } else if (isTileHeader) {
61
- data = await parseTile(data, options, context);
62
-
63
- if (options.i3s.loadContent) {
64
- options.i3s.tile = data;
65
- await load(data.contentUrl, I3SLoader, options);
43
+ async function parseI3S(data, options = {}, context) {
44
+ const url = context.url;
45
+ options.i3s = options.i3s || {};
46
+ const magicNumber = getMagicNumber(data);
47
+ // check if file is slpk
48
+ if (magicNumber === SLPK_HEX) {
49
+ throw new Error('Files with .slpk extention currently are not supported by I3SLoader');
66
50
  }
67
- } else {
68
- data = await parseTileContent(data, options);
69
- }
70
-
71
- return data;
51
+ // auto detect file type based on url
52
+ let isTileset;
53
+ if (options.i3s.isTileset === 'auto') {
54
+ isTileset = TILESET_REGEX.test(url);
55
+ }
56
+ else {
57
+ isTileset = options.i3s.isTileset;
58
+ }
59
+ let isTileHeader;
60
+ if (options.isTileHeader === 'auto') {
61
+ isTileHeader = TILE_HEADER_REGEX.test(url);
62
+ }
63
+ else {
64
+ isTileHeader = options.i3s.isTileHeader;
65
+ }
66
+ if (isTileset) {
67
+ data = await parseTileset(data, options, context);
68
+ }
69
+ else if (isTileHeader) {
70
+ data = await parseTile(data, context);
71
+ }
72
+ else {
73
+ data = await parseTileContent(data, options);
74
+ }
75
+ return data;
72
76
  }
73
-
74
77
  async function parseTileContent(arrayBuffer, options) {
75
- return await parse(arrayBuffer, I3SContentLoader, options);
78
+ return await (0, core_1.parse)(arrayBuffer, i3s_content_loader_1.I3SContentLoader, options);
76
79
  }
77
-
78
80
  async function parseTileset(data, options, context) {
79
- const tilesetJson = JSON.parse(new TextDecoder().decode(data));
80
- tilesetJson.loader = I3SLoader;
81
- await normalizeTilesetData(tilesetJson, options, context);
82
- return tilesetJson;
81
+ const tilesetJson = JSON.parse(new TextDecoder().decode(data));
82
+ if (tilesetJson?.layerType === POINT_CLOUD) {
83
+ throw new Error('Point Cloud layers currently are not supported by I3SLoader');
84
+ }
85
+ // eslint-disable-next-line no-use-before-define
86
+ tilesetJson.loader = exports.I3SLoader;
87
+ await (0, parse_i3s_1.normalizeTilesetData)(tilesetJson, options, context);
88
+ return tilesetJson;
83
89
  }
84
-
85
- async function parseTile(data, options, context) {
86
- data = JSON.parse(new TextDecoder().decode(data));
87
- return normalizeTileData(data, options, context);
90
+ async function parseTile(data, context) {
91
+ data = JSON.parse(new TextDecoder().decode(data));
92
+ return (0, parse_i3s_1.normalizeTileData)(data, context);
88
93
  }
89
-
90
94
  function getMagicNumber(data) {
91
- if (data instanceof ArrayBuffer) {
92
- return [...new Uint8Array(data, 0, 4)].map(value => value.toString(16).padStart(2, '0')).join('');
93
- }
94
-
95
- return null;
95
+ if (data instanceof ArrayBuffer) {
96
+ // slice binary data (4 bytes from the beginning) and transform it to hexadecimal numeral system
97
+ return [...new Uint8Array(data, 0, 4)]
98
+ .map((value) => value.toString(16).padStart(2, '0'))
99
+ .join('');
100
+ }
101
+ return null;
96
102
  }
97
- //# sourceMappingURL=i3s-loader.js.map
@@ -1,6 +1,7 @@
1
- import type { LoaderWithParser } from '@loaders.gl/loader-utils';
1
+ import type { LoaderOptions, LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ import type { NodePage } from './types';
2
3
  /**
3
4
  * Loader for I3S node pages
4
5
  */
5
- export declare const I3SNodePageLoader: LoaderWithParser;
6
+ export declare const I3SNodePageLoader: LoaderWithParser<NodePage, never, LoaderOptions>;
6
7
  //# sourceMappingURL=i3s-node-page-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-node-page-loader.d.ts","sourceRoot":"","sources":["../src/i3s-node-page-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAU/D;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAS/B,CAAC"}
1
+ {"version":3,"file":"i3s-node-page-loader.d.ts","sourceRoot":"","sources":["../src/i3s-node-page-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAUtC;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAS9E,CAAC"}
@@ -1,22 +1,22 @@
1
- const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
2
-
3
- async function parseNodePage(data) {
4
- return JSON.parse(new TextDecoder().decode(data));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.I3SNodePageLoader = void 0;
4
+ // __VERSION__ is injected by babel-plugin-version-inline
5
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
7
+ async function parseNodePage(data, options) {
8
+ return JSON.parse(new TextDecoder().decode(data));
5
9
  }
6
-
7
- export const I3SNodePageLoader = {
8
- name: 'I3S Node Page',
9
- id: 'i3s-node-page',
10
- module: 'i3s',
11
- version: VERSION,
12
- mimeTypes: ['application/json'],
13
- parse,
14
- extensions: ['json'],
15
- options: {}
10
+ /**
11
+ * Loader for I3S node pages
12
+ */
13
+ exports.I3SNodePageLoader = {
14
+ name: 'I3S Node Page',
15
+ id: 'i3s-node-page',
16
+ module: 'i3s',
17
+ version: VERSION,
18
+ mimeTypes: ['application/json'],
19
+ parse: parseNodePage,
20
+ extensions: ['json'],
21
+ options: {}
16
22
  };
17
-
18
- async function parse(data) {
19
- data = parseNodePage(data);
20
- return data;
21
- }
22
- //# sourceMappingURL=i3s-node-page-loader.js.map
@@ -0,0 +1,10 @@
1
+ import { LoaderOptions, LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ export type SLPKLoaderOptions = LoaderOptions & {
3
+ path?: string;
4
+ mode?: 'http' | 'raw';
5
+ };
6
+ /**
7
+ * Loader for SLPK - Scene Layer Package
8
+ */
9
+ export declare const SLPKLoader: LoaderWithParser;
10
+ //# sourceMappingURL=i3s-slpk-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-slpk-loader.d.ts","sourceRoot":"","sources":["../src/i3s-slpk-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAOzE,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBASxB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SLPKLoader = void 0;
4
+ const parse_slpk_1 = require("./lib/parsers/parse-slpk/parse-slpk");
5
+ // __VERSION__ is injected by babel-plugin-version-inline
6
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
8
+ /**
9
+ * Loader for SLPK - Scene Layer Package
10
+ */
11
+ exports.SLPKLoader = {
12
+ name: 'I3S SLPK (Scene Layer Package)',
13
+ id: 'slpk',
14
+ module: 'i3s',
15
+ version: VERSION,
16
+ mimeTypes: ['application/octet-stream'],
17
+ parse: parse_slpk_1.parseSLPK,
18
+ extensions: ['slpk'],
19
+ options: {}
20
+ };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
+ export type { BoundingVolumes, Mbs, Obb, SceneLayer3D, AttributeStorageInfo, Field, ESRIField, PopupInfo, Node3DIndexDocument, LodSelection, NodeReference, Resource, MaxScreenThresholdSQ, NodeInPage, SharedResources, Attribute, Extent, FeatureAttribute, FieldInfo, I3SMaterialDefinition, TextureDefinitionInfo, MaterialDefinitionInfo, FullExtent, StatisticsInfo, StatsInfo, Histogram, ValueCount, BuildingSceneSublayer, DATA_TYPE, OperationalLayer } from './types';
2
+ export { COORDINATE_SYSTEM } from './lib/parsers/constants';
1
3
  export { I3SLoader } from './i3s-loader';
4
+ export { SLPKLoader } from './i3s-slpk-loader';
2
5
  export { I3SContentLoader } from './i3s-content-loader';
3
6
  export { I3SAttributeLoader, loadFeatureAttributes } from './i3s-attribute-loader';
4
7
  export { I3SBuildingSceneLayerLoader } from './i3s-building-scene-layer-loader';
5
- export type { BoundingVolumes, Mbs, Obb, SceneLayer3D, AttributeStorageInfo, Field, ESRIField, PopupInfo, Node3DIndexDocument, LodSelection, NodeReference, Resource, MaxScreenThresholdSQ, NodeInPage, SharedResources, Attribute, Extent, FeatureAttribute, FieldInfo, I3SMaterialDefinition } from './types';
6
- export { COORDINATE_SYSTEM } from './lib/parsers/constants';
8
+ export { I3SNodePageLoader } from './i3s-node-page-loader';
9
+ export { ArcGisWebSceneLoader } from './arcgis-webscene-loader';
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,eAAe,EACf,GAAG,EACH,GAAG,EACH,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,21 @@
1
- export { I3SLoader } from './i3s-loader';
2
- export { I3SContentLoader } from './i3s-content-loader';
3
- export { I3SAttributeLoader, loadFeatureAttributes } from './i3s-attribute-loader';
4
- export { I3SBuildingSceneLayerLoader } from './i3s-building-scene-layer-loader';
5
- export { COORDINATE_SYSTEM } from './lib/parsers/constants';
6
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ArcGisWebSceneLoader = exports.I3SNodePageLoader = exports.I3SBuildingSceneLayerLoader = exports.loadFeatureAttributes = exports.I3SAttributeLoader = exports.I3SContentLoader = exports.SLPKLoader = exports.I3SLoader = exports.COORDINATE_SYSTEM = void 0;
5
+ var constants_1 = require("./lib/parsers/constants");
6
+ Object.defineProperty(exports, "COORDINATE_SYSTEM", { enumerable: true, get: function () { return constants_1.COORDINATE_SYSTEM; } });
7
+ var i3s_loader_1 = require("./i3s-loader");
8
+ Object.defineProperty(exports, "I3SLoader", { enumerable: true, get: function () { return i3s_loader_1.I3SLoader; } });
9
+ var i3s_slpk_loader_1 = require("./i3s-slpk-loader");
10
+ Object.defineProperty(exports, "SLPKLoader", { enumerable: true, get: function () { return i3s_slpk_loader_1.SLPKLoader; } });
11
+ var i3s_content_loader_1 = require("./i3s-content-loader");
12
+ Object.defineProperty(exports, "I3SContentLoader", { enumerable: true, get: function () { return i3s_content_loader_1.I3SContentLoader; } });
13
+ var i3s_attribute_loader_1 = require("./i3s-attribute-loader");
14
+ Object.defineProperty(exports, "I3SAttributeLoader", { enumerable: true, get: function () { return i3s_attribute_loader_1.I3SAttributeLoader; } });
15
+ Object.defineProperty(exports, "loadFeatureAttributes", { enumerable: true, get: function () { return i3s_attribute_loader_1.loadFeatureAttributes; } });
16
+ var i3s_building_scene_layer_loader_1 = require("./i3s-building-scene-layer-loader");
17
+ Object.defineProperty(exports, "I3SBuildingSceneLayerLoader", { enumerable: true, get: function () { return i3s_building_scene_layer_loader_1.I3SBuildingSceneLayerLoader; } });
18
+ var i3s_node_page_loader_1 = require("./i3s-node-page-loader");
19
+ Object.defineProperty(exports, "I3SNodePageLoader", { enumerable: true, get: function () { return i3s_node_page_loader_1.I3SNodePageLoader; } });
20
+ var arcgis_webscene_loader_1 = require("./arcgis-webscene-loader");
21
+ Object.defineProperty(exports, "ArcGisWebSceneLoader", { enumerable: true, get: function () { return arcgis_webscene_loader_1.ArcGisWebSceneLoader; } });
@@ -17,6 +17,7 @@ export default class I3SNodePagesTiles {
17
17
  format: I3STextureFormat;
18
18
  name: string;
19
19
  } | null)[];
20
+ nodesInNodePages: number;
20
21
  private textureLoaderOptions;
21
22
  /**
22
23
  * @constructs
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-nodepages-tiles.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/i3s-nodepages-tiles.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAEhB,QAAQ,EACR,UAAU,EAIV,gBAAgB,EAEhB,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,gBAAgB,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAA;KAAC,EAAE,CAAM;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,EAAE,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC,EAAE,CAAM;IAC5F,OAAO,CAAC,oBAAoB,CAA4B;IAExD;;;;;OAKG;gBACS,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa;IAS7D;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBlD;;;OAGG;IAEG,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuD/D;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA6BrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;;;OAIG;IACH,OAAO,CAAC,wCAAwC;IA2BhD;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CAuBnC"}
1
+ {"version":3,"file":"i3s-nodepages-tiles.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/i3s-nodepages-tiles.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAEhB,QAAQ,EACR,UAAU,EAIV,gBAAgB,EAEhB,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,gBAAgB,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAA;KAAC,EAAE,CAAM;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,EAAE,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC,EAAE,CAAM;IAC5F,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,oBAAoB,CAA4B;IAExD;;;;;OAKG;gBACS,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa;IAU7D;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBlD;;;OAGG;IAEG,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4D/D;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA8BrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;;;OAIG;IACH,OAAO,CAAC,wCAAwC;IA2BhD;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CAwBnC"}