@loaders.gl/tile-converter 4.2.0-alpha.4 → 4.2.0-alpha.5

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 (144) hide show
  1. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +3 -3
  2. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  3. package/dist/3d-tiles-converter/3d-tiles-converter.js +329 -293
  4. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +257 -200
  5. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +14 -5
  6. package/dist/3d-tiles-converter/helpers/load-i3s.js +106 -75
  7. package/dist/3d-tiles-converter/helpers/texture-atlas.js +44 -21
  8. package/dist/3d-tiles-converter/json-templates/tileset.js +32 -33
  9. package/dist/constants.js +0 -1
  10. package/dist/converter-cli.js +255 -234
  11. package/dist/converter.min.cjs +80 -90
  12. package/dist/deps-installer/deps-installer.js +72 -58
  13. package/dist/i3s-converter/helpers/attribute-metadata-info.js +207 -153
  14. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +1 -1
  15. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  16. package/dist/i3s-converter/helpers/batch-ids-extensions.js +145 -103
  17. package/dist/i3s-converter/helpers/coordinate-converter.js +100 -65
  18. package/dist/i3s-converter/helpers/create-scene-server-path.js +14 -9
  19. package/dist/i3s-converter/helpers/feature-attributes.js +168 -105
  20. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +1 -1
  21. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  22. package/dist/i3s-converter/helpers/geometry-attributes.js +204 -212
  23. package/dist/i3s-converter/helpers/geometry-converter.d.ts +2 -2
  24. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  25. package/dist/i3s-converter/helpers/geometry-converter.js +1148 -829
  26. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +1 -1
  27. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  28. package/dist/i3s-converter/helpers/gltf-attributes.js +111 -97
  29. package/dist/i3s-converter/helpers/load-3d-tiles.js +103 -66
  30. package/dist/i3s-converter/helpers/node-debug.js +98 -54
  31. package/dist/i3s-converter/helpers/node-index-document.d.ts +3 -3
  32. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
  33. package/dist/i3s-converter/helpers/node-index-document.js +248 -177
  34. package/dist/i3s-converter/helpers/node-pages.d.ts +1 -1
  35. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  36. package/dist/i3s-converter/helpers/node-pages.js +299 -194
  37. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +1 -1
  38. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
  39. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +92 -60
  40. package/dist/i3s-converter/helpers/progress.js +134 -83
  41. package/dist/i3s-converter/helpers/tileset-traversal.d.ts +1 -1
  42. package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -1
  43. package/dist/i3s-converter/helpers/tileset-traversal.js +24 -13
  44. package/dist/i3s-converter/i3s-converter.d.ts +7 -7
  45. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  46. package/dist/i3s-converter/i3s-converter.js +1044 -898
  47. package/dist/i3s-converter/json-templates/geometry-definitions.js +70 -79
  48. package/dist/i3s-converter/json-templates/layers.js +120 -121
  49. package/dist/i3s-converter/json-templates/metadata.js +19 -20
  50. package/dist/i3s-converter/json-templates/node.js +73 -71
  51. package/dist/i3s-converter/json-templates/scene-server.js +25 -26
  52. package/dist/i3s-converter/json-templates/shared-resources.js +107 -108
  53. package/dist/i3s-converter/json-templates/store.js +96 -94
  54. package/dist/i3s-converter/types.js +35 -23
  55. package/dist/i3s-server/app.js +15 -12
  56. package/dist/i3s-server/bin/www.js +14 -7
  57. package/dist/i3s-server/controllers/index-controller.js +18 -15
  58. package/dist/i3s-server/controllers/slpk-controller.js +22 -11
  59. package/dist/i3s-server/routes/index.js +9 -8
  60. package/dist/i3s-server/routes/slpk-router.js +18 -17
  61. package/dist/i3s-server/utils/create-scene-server.js +15 -10
  62. package/dist/i3s-server/utils/server-utils.js +49 -32
  63. package/dist/index.cjs +292 -851
  64. package/dist/index.cjs.map +7 -0
  65. package/dist/index.d.ts +2 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +0 -1
  68. package/dist/lib/json-schemas/conversion-dump-json-schema.js +243 -421
  69. package/dist/lib/utils/cli-utils.js +63 -36
  70. package/dist/lib/utils/compress-util.js +20 -15
  71. package/dist/lib/utils/conversion-dump.d.ts +1 -1
  72. package/dist/lib/utils/conversion-dump.d.ts.map +1 -1
  73. package/dist/lib/utils/conversion-dump.js +209 -187
  74. package/dist/lib/utils/file-utils.js +122 -74
  75. package/dist/lib/utils/geometry-utils.js +13 -7
  76. package/dist/lib/utils/lod-conversion-utils.js +65 -33
  77. package/dist/lib/utils/queue.js +12 -13
  78. package/dist/lib/utils/statistic-utills.d.ts +6 -23
  79. package/dist/lib/utils/statistic-utills.js +64 -59
  80. package/dist/lib/utils/write-queue.d.ts +2 -2
  81. package/dist/lib/utils/write-queue.d.ts.map +1 -1
  82. package/dist/lib/utils/write-queue.js +68 -86
  83. package/dist/pgm-loader.js +16 -12
  84. package/dist/slpk-extractor/slpk-extractor.js +59 -50
  85. package/dist/slpk-extractor-cli.js +82 -59
  86. package/package.json +18 -18
  87. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  88. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  89. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  90. package/dist/3d-tiles-converter/helpers/load-i3s.js.map +0 -1
  91. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  92. package/dist/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  93. package/dist/constants.js.map +0 -1
  94. package/dist/converter-cli.js.map +0 -1
  95. package/dist/deps-installer/deps-installer.js.map +0 -1
  96. package/dist/i3s-converter/helpers/attribute-metadata-info.js.map +0 -1
  97. package/dist/i3s-converter/helpers/batch-ids-extensions.js.map +0 -1
  98. package/dist/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  99. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  100. package/dist/i3s-converter/helpers/feature-attributes.js.map +0 -1
  101. package/dist/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  102. package/dist/i3s-converter/helpers/geometry-converter.js.map +0 -1
  103. package/dist/i3s-converter/helpers/gltf-attributes.js.map +0 -1
  104. package/dist/i3s-converter/helpers/load-3d-tiles.js.map +0 -1
  105. package/dist/i3s-converter/helpers/node-debug.js.map +0 -1
  106. package/dist/i3s-converter/helpers/node-index-document.js.map +0 -1
  107. package/dist/i3s-converter/helpers/node-pages.js.map +0 -1
  108. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js.map +0 -1
  109. package/dist/i3s-converter/helpers/progress.js.map +0 -1
  110. package/dist/i3s-converter/helpers/tileset-traversal.js.map +0 -1
  111. package/dist/i3s-converter/i3s-converter.js.map +0 -1
  112. package/dist/i3s-converter/json-templates/geometry-definitions.js.map +0 -1
  113. package/dist/i3s-converter/json-templates/layers.js.map +0 -1
  114. package/dist/i3s-converter/json-templates/metadata.js.map +0 -1
  115. package/dist/i3s-converter/json-templates/node.js.map +0 -1
  116. package/dist/i3s-converter/json-templates/scene-server.js.map +0 -1
  117. package/dist/i3s-converter/json-templates/shared-resources.js.map +0 -1
  118. package/dist/i3s-converter/json-templates/store.js.map +0 -1
  119. package/dist/i3s-converter/types.js.map +0 -1
  120. package/dist/i3s-server/README.md +0 -63
  121. package/dist/i3s-server/app.js.map +0 -1
  122. package/dist/i3s-server/bin/www.js.map +0 -1
  123. package/dist/i3s-server/certs/cert.pem +0 -19
  124. package/dist/i3s-server/certs/key.pem +0 -27
  125. package/dist/i3s-server/controllers/index-controller.js.map +0 -1
  126. package/dist/i3s-server/controllers/slpk-controller.js.map +0 -1
  127. package/dist/i3s-server/routes/index.js.map +0 -1
  128. package/dist/i3s-server/routes/slpk-router.js.map +0 -1
  129. package/dist/i3s-server/utils/create-scene-server.js.map +0 -1
  130. package/dist/i3s-server/utils/server-utils.js.map +0 -1
  131. package/dist/index.js.map +0 -1
  132. package/dist/lib/json-schemas/conversion-dump-json-schema.js.map +0 -1
  133. package/dist/lib/utils/cli-utils.js.map +0 -1
  134. package/dist/lib/utils/compress-util.js.map +0 -1
  135. package/dist/lib/utils/conversion-dump.js.map +0 -1
  136. package/dist/lib/utils/file-utils.js.map +0 -1
  137. package/dist/lib/utils/geometry-utils.js.map +0 -1
  138. package/dist/lib/utils/lod-conversion-utils.js.map +0 -1
  139. package/dist/lib/utils/queue.js.map +0 -1
  140. package/dist/lib/utils/statistic-utills.js.map +0 -1
  141. package/dist/lib/utils/write-queue.js.map +0 -1
  142. package/dist/pgm-loader.js.map +0 -1
  143. package/dist/slpk-extractor/slpk-extractor.js.map +0 -1
  144. package/dist/slpk-extractor-cli.js.map +0 -1
@@ -1,123 +1,122 @@
1
1
  import transform from 'json-map-transform';
2
2
  const MATERIAL_DEFINITION_INFO_PARAMS = () => ({
3
- renderMode: {
4
- path: 'renderMode',
5
- default: 'solid'
6
- },
7
- shininess: {
8
- path: 'shininess',
9
- default: 1
10
- },
11
- reflectivity: {
12
- path: 'reflectivity',
13
- default: 0
14
- },
15
- ambient: {
16
- path: 'ambient',
17
- default: [1, 1, 1]
18
- },
19
- diffuse: {
20
- path: 'diffuse',
21
- default: [1, 1, 1]
22
- },
23
- specular: {
24
- path: 'specular',
25
- default: [0, 0, 0]
26
- },
27
- useVertexColorAlpha: {
28
- path: 'useVertexColorAlpha',
29
- default: false
30
- },
31
- vertexRegions: {
32
- path: 'vertexRegions',
33
- default: false
34
- },
35
- vertexColors: {
36
- path: 'vertexColors',
37
- default: true
38
- }
3
+ renderMode: {
4
+ path: 'renderMode',
5
+ default: 'solid'
6
+ },
7
+ shininess: {
8
+ path: 'shininess',
9
+ default: 1
10
+ },
11
+ reflectivity: {
12
+ path: 'reflectivity',
13
+ default: 0
14
+ },
15
+ ambient: {
16
+ path: 'ambient',
17
+ default: [1, 1, 1]
18
+ },
19
+ diffuse: {
20
+ path: 'diffuse',
21
+ default: [1, 1, 1]
22
+ },
23
+ specular: {
24
+ path: 'specular',
25
+ default: [0, 0, 0]
26
+ },
27
+ useVertexColorAlpha: {
28
+ path: 'useVertexColorAlpha',
29
+ default: false
30
+ },
31
+ vertexRegions: {
32
+ path: 'vertexRegions',
33
+ default: false
34
+ },
35
+ vertexColors: {
36
+ path: 'vertexColors',
37
+ default: true
38
+ }
39
39
  });
40
40
  const MATERIAL_DEFINITION_INFO = () => ({
41
- name: {
42
- path: 'name',
43
- default: 'standard'
44
- },
45
- type: {
46
- path: 'type',
47
- default: 'standard'
48
- },
49
- params: {
50
- path: 'params',
51
- transform: (val, thisObject, originalObject) => transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())
52
- }
41
+ name: {
42
+ path: 'name',
43
+ default: 'standard'
44
+ },
45
+ type: {
46
+ path: 'type',
47
+ default: 'standard'
48
+ },
49
+ params: {
50
+ path: 'params',
51
+ transform: (val, thisObject, originalObject) => transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())
52
+ }
53
53
  });
54
54
  const TEXTURE_DEFINITION_IMAGE = () => ({
55
- id: {
56
- path: 'id'
57
- },
58
- size: {
59
- path: 'size'
60
- },
61
- href: {
62
- path: 'href',
63
- default: ['../textures/0']
64
- },
65
- length: {
66
- path: 'length'
67
- }
55
+ id: {
56
+ path: 'id'
57
+ },
58
+ size: {
59
+ path: 'size'
60
+ },
61
+ href: {
62
+ path: 'href',
63
+ default: ['../textures/0']
64
+ },
65
+ length: {
66
+ path: 'length'
67
+ }
68
68
  });
69
69
  const TEXTURE_DEFINITION_INFO = () => ({
70
- encoding: {
71
- path: 'encoding'
72
- },
73
- wrap: {
74
- path: 'wrap',
75
- default: ['none']
76
- },
77
- atlas: {
78
- path: 'atlas',
79
- default: false
80
- },
81
- uvSet: {
82
- path: 'uvSet',
83
- default: 'uv0'
84
- },
85
- channels: {
86
- path: 'channels',
87
- default: 'rgb'
88
- },
89
- images: {
90
- path: 'images',
91
- transform: (val, thisObject, originalObject) => val.map(image => transform(image, TEXTURE_DEFINITION_IMAGE()))
92
- }
70
+ encoding: {
71
+ path: 'encoding'
72
+ },
73
+ wrap: {
74
+ path: 'wrap',
75
+ default: ['none']
76
+ },
77
+ atlas: {
78
+ path: 'atlas',
79
+ default: false
80
+ },
81
+ uvSet: {
82
+ path: 'uvSet',
83
+ default: 'uv0'
84
+ },
85
+ channels: {
86
+ path: 'channels',
87
+ default: 'rgb'
88
+ },
89
+ images: {
90
+ path: 'images',
91
+ transform: (val, thisObject, originalObject) => val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE()))
92
+ }
93
93
  });
94
94
  export const SHARED_RESOURCES = () => ({
95
- materialDefinitions: {
96
- path: 'materialDefinitionInfos',
97
- transform: transfromMaterialDefinitions
98
- },
99
- textureDefinitions: {
100
- path: 'textureDefinitionInfos',
101
- transform: transfromTextureDefinitions
102
- }
95
+ materialDefinitions: {
96
+ path: 'materialDefinitionInfos',
97
+ transform: transfromMaterialDefinitions
98
+ },
99
+ textureDefinitions: {
100
+ path: 'textureDefinitionInfos',
101
+ transform: transfromTextureDefinitions
102
+ }
103
103
  });
104
104
  function transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {
105
- const result = {};
106
- for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {
107
- result[`Mat${originalObject.nodePath}${index}`] = transform(materialDefinitionInfo, MATERIAL_DEFINITION_INFO());
108
- }
109
- return result;
105
+ const result = {};
106
+ for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {
107
+ result[`Mat${originalObject.nodePath}${index}`] = transform(materialDefinitionInfo, MATERIAL_DEFINITION_INFO());
108
+ }
109
+ return result;
110
110
  }
111
111
  function transfromTextureDefinitions(textureDefinitionInfos, thisObject, originalObject) {
112
- if (!textureDefinitionInfos) {
113
- return null;
114
- }
115
- const result = {};
116
- for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {
117
- const imageIndex = `${originalObject.nodePath}${index}`;
118
- textureDefinitionInfo.imageIndex = imageIndex;
119
- result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());
120
- }
121
- return result;
112
+ if (!textureDefinitionInfos) {
113
+ return null;
114
+ }
115
+ const result = {};
116
+ for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {
117
+ const imageIndex = `${originalObject.nodePath}${index}`;
118
+ textureDefinitionInfo.imageIndex = imageIndex;
119
+ result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());
120
+ }
121
+ return result;
122
122
  }
123
- //# sourceMappingURL=shared-resources.js.map
@@ -1,98 +1,100 @@
1
1
  export const STORE = {
2
- id: {
3
- path: 'id',
4
- transform: val => val.toUpperCase()
5
- },
6
- profile: {
7
- path: 'profile',
8
- default: 'meshpyramids'
9
- },
10
- version: {
11
- path: 'version',
12
- default: '1.8'
13
- },
14
- resourcePattern: {
15
- path: 'resourcePattern',
16
- default: ['3dNodeIndexDocument', 'Attributes', 'SharedResource', 'Geometry']
17
- },
18
- rootNode: {
19
- path: 'rootNode',
20
- default: './nodes/root'
21
- },
22
- extent: {
23
- path: 'extent'
24
- },
25
- indexCRS: {
26
- path: 'indexCRS',
27
- default: 'http://www.opengis.net/def/crs/EPSG/0/4326'
28
- },
29
- vertexCRS: {
30
- path: 'vertexCRS',
31
- default: 'http://www.opengis.net/def/crs/EPSG/0/4326'
32
- },
33
- normalReferenceFrame: {
34
- path: 'normalReferenceFrame',
35
- default: 'east-north-up'
36
- },
37
- attributeEncoding: {
38
- path: 'attributeEncoding',
39
- default: 'application/octet-stream; version=1.6'
40
- },
41
- textureEncoding: {
42
- path: 'textureEncoding',
43
- default: ['image/jpeg', 'image/ktx2']
44
- },
45
- lodType: {
46
- path: 'lodType',
47
- default: 'MeshPyramid'
48
- },
49
- lodModel: {
50
- path: 'lodModel',
51
- default: 'node-switching'
52
- },
53
- defaultGeometrySchema: {
54
- path: 'defaultGeometrySchema',
55
- default: {
56
- geometryType: 'triangles',
57
- header: [{
58
- property: 'vertexCount',
59
- type: 'UInt32'
60
- }, {
61
- property: 'featureCount',
62
- type: 'UInt32'
63
- }],
64
- topology: 'PerAttributeArray',
65
- ordering: ['position', 'normal', 'uv0', 'color'],
66
- vertexAttributes: {
67
- position: {
68
- valueType: 'Float32',
69
- valuesPerElement: 3
70
- },
71
- normal: {
72
- valueType: 'Float32',
73
- valuesPerElement: 3
74
- },
75
- uv0: {
76
- valueType: 'Float32',
77
- valuesPerElement: 2
78
- },
79
- color: {
80
- valueType: 'UInt8',
81
- valuesPerElement: 4
2
+ id: {
3
+ path: 'id',
4
+ transform: (val) => val.toUpperCase()
5
+ },
6
+ profile: {
7
+ path: 'profile',
8
+ default: 'meshpyramids'
9
+ },
10
+ version: {
11
+ path: 'version',
12
+ default: '1.8'
13
+ },
14
+ resourcePattern: {
15
+ path: 'resourcePattern',
16
+ default: ['3dNodeIndexDocument', 'Attributes', 'SharedResource', 'Geometry']
17
+ },
18
+ rootNode: {
19
+ path: 'rootNode',
20
+ default: './nodes/root'
21
+ },
22
+ extent: {
23
+ path: 'extent'
24
+ },
25
+ indexCRS: {
26
+ path: 'indexCRS',
27
+ default: 'http://www.opengis.net/def/crs/EPSG/0/4326'
28
+ },
29
+ vertexCRS: {
30
+ path: 'vertexCRS',
31
+ default: 'http://www.opengis.net/def/crs/EPSG/0/4326'
32
+ },
33
+ normalReferenceFrame: {
34
+ path: 'normalReferenceFrame',
35
+ default: 'east-north-up'
36
+ },
37
+ attributeEncoding: {
38
+ path: 'attributeEncoding',
39
+ default: 'application/octet-stream; version=1.6'
40
+ },
41
+ textureEncoding: {
42
+ path: 'textureEncoding',
43
+ default: ['image/jpeg', 'image/ktx2']
44
+ },
45
+ lodType: {
46
+ path: 'lodType',
47
+ default: 'MeshPyramid'
48
+ },
49
+ lodModel: {
50
+ path: 'lodModel',
51
+ default: 'node-switching'
52
+ },
53
+ defaultGeometrySchema: {
54
+ path: 'defaultGeometrySchema',
55
+ default: {
56
+ geometryType: 'triangles',
57
+ header: [
58
+ {
59
+ property: 'vertexCount',
60
+ type: 'UInt32'
61
+ },
62
+ {
63
+ property: 'featureCount',
64
+ type: 'UInt32'
65
+ }
66
+ ],
67
+ topology: 'PerAttributeArray',
68
+ ordering: ['position', 'normal', 'uv0', 'color'],
69
+ vertexAttributes: {
70
+ position: {
71
+ valueType: 'Float32',
72
+ valuesPerElement: 3
73
+ },
74
+ normal: {
75
+ valueType: 'Float32',
76
+ valuesPerElement: 3
77
+ },
78
+ uv0: {
79
+ valueType: 'Float32',
80
+ valuesPerElement: 2
81
+ },
82
+ color: {
83
+ valueType: 'UInt8',
84
+ valuesPerElement: 4
85
+ }
86
+ },
87
+ featureAttributeOrder: ['id', 'faceRange'],
88
+ featureAttributes: {
89
+ id: {
90
+ valueType: 'UInt64',
91
+ valuesPerElement: 1
92
+ },
93
+ faceRange: {
94
+ valueType: 'UInt32',
95
+ valuesPerElement: 2
96
+ }
97
+ }
82
98
  }
83
- },
84
- featureAttributeOrder: ['id', 'faceRange'],
85
- featureAttributes: {
86
- id: {
87
- valueType: 'UInt64',
88
- valuesPerElement: 1
89
- },
90
- faceRange: {
91
- valueType: 'UInt32',
92
- valuesPerElement: 2
93
- }
94
- }
95
99
  }
96
- }
97
100
  };
98
- //# sourceMappingURL=store.js.map
@@ -1,25 +1,37 @@
1
- export let GLTFPrimitiveModeString = function (GLTFPrimitiveModeString) {
2
- GLTFPrimitiveModeString["POINTS"] = "POINTS";
3
- GLTFPrimitiveModeString["LINES"] = "LINES";
4
- GLTFPrimitiveModeString["LINE_LOOP"] = "LINE_LOOP";
5
- GLTFPrimitiveModeString["LINE_STRIP"] = "LINE_STRIP";
6
- GLTFPrimitiveModeString["TRIANGLES"] = "TRIANGLES";
7
- GLTFPrimitiveModeString["TRIANGLE_STRIP"] = "TRIANGLE_STRIP";
8
- GLTFPrimitiveModeString["TRIANGLE_FAN"] = "TRIANGLE_FAN";
9
- return GLTFPrimitiveModeString;
10
- }({});
1
+ /**
2
+ * glTF primitive modes (mesh topology types)
3
+ * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
4
+ */
5
+ export var GLTFPrimitiveModeString;
6
+ (function (GLTFPrimitiveModeString) {
7
+ GLTFPrimitiveModeString["POINTS"] = "POINTS";
8
+ GLTFPrimitiveModeString["LINES"] = "LINES";
9
+ GLTFPrimitiveModeString["LINE_LOOP"] = "LINE_LOOP";
10
+ GLTFPrimitiveModeString["LINE_STRIP"] = "LINE_STRIP";
11
+ GLTFPrimitiveModeString["TRIANGLES"] = "TRIANGLES";
12
+ GLTFPrimitiveModeString["TRIANGLE_STRIP"] = "TRIANGLE_STRIP";
13
+ GLTFPrimitiveModeString["TRIANGLE_FAN"] = "TRIANGLE_FAN";
14
+ })(GLTFPrimitiveModeString || (GLTFPrimitiveModeString = {}));
15
+ /**
16
+ * I3S' types difine the following:
17
+ * type Attribute = 'OBJECTID' | 'string' | 'double' | 'Int32' | string;
18
+ * The AttributeType contains the string values of the Attribute type.
19
+ */
11
20
  export const AttributeType = {
12
- OBJECT_ID_TYPE: 'OBJECTID',
13
- STRING_TYPE: 'string',
14
- DOUBLE_TYPE: 'double',
15
- SHORT_INT_TYPE: 'Int32'
21
+ /** Type of attribute that is linked with feature ids */
22
+ OBJECT_ID_TYPE: 'OBJECTID',
23
+ /** String data type name for feature attributes */
24
+ STRING_TYPE: 'string',
25
+ /** Double data type name for feature attributes */
26
+ DOUBLE_TYPE: 'double',
27
+ /** Integer data type name for feature attributes */
28
+ SHORT_INT_TYPE: 'Int32'
16
29
  };
17
- export let ResourceType = function (ResourceType) {
18
- ResourceType["ATTRIBUTES"] = "ATTRIBUTES";
19
- ResourceType["DRACO_GEOMETRY"] = "DRACO_GEOMETRY";
20
- ResourceType["GEOMETRY"] = "GEOMETRY";
21
- ResourceType["SHARED"] = "SHARED";
22
- ResourceType["TEXTURE"] = "TEXTURE";
23
- return ResourceType;
24
- }({});
25
- //# sourceMappingURL=types.js.map
30
+ export var ResourceType;
31
+ (function (ResourceType) {
32
+ ResourceType["ATTRIBUTES"] = "ATTRIBUTES";
33
+ ResourceType["DRACO_GEOMETRY"] = "DRACO_GEOMETRY";
34
+ ResourceType["GEOMETRY"] = "GEOMETRY";
35
+ ResourceType["SHARED"] = "SHARED";
36
+ ResourceType["TEXTURE"] = "TEXTURE";
37
+ })(ResourceType || (ResourceType = {}));
@@ -2,24 +2,27 @@ import express from 'express';
2
2
  import path from 'path';
3
3
  import logger from 'morgan';
4
4
  import cors from 'cors';
5
+ // For local debug
6
+ // import {fileURLToPath} from 'url';
5
7
  import { loadArchive } from "./controllers/slpk-controller.js";
6
- import { router as indexRouter } from "./routes/index.js";
8
+ import { router as indexRouter } from "./routes.js";
7
9
  import { sceneServerRouter, router } from "./routes/slpk-router.js";
8
- const I3S_LAYER_PATH = process.env.I3sLayerPath || '';
9
- const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH);
10
+ // For local debug
11
+ // const __filename = fileURLToPath(import.meta.url);
12
+ // const __dirname = path.dirname(__filename);
13
+ const I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef
14
+ const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH); // eslint-disable-line no-undef
10
15
  export const app = express();
11
16
  app.use(logger('dev'));
12
17
  app.use(express.json());
13
- app.use(express.urlencoded({
14
- extended: false
15
- }));
18
+ app.use(express.urlencoded({ extended: false }));
16
19
  app.use(express.static(path.join(__dirname, 'public')));
17
20
  app.use(cors());
18
21
  if (/\.slpk$/.test(I3S_LAYER_PATH)) {
19
- loadArchive(FULL_LAYER_PATH);
20
- app.use('/SceneServer/layers/0', router);
21
- app.use('/SceneServer', sceneServerRouter);
22
- } else {
23
- app.use('/', indexRouter);
22
+ loadArchive(FULL_LAYER_PATH);
23
+ app.use('/SceneServer/layers/0', router);
24
+ app.use('/SceneServer', sceneServerRouter);
25
+ }
26
+ else {
27
+ app.use('/', indexRouter);
24
28
  }
25
- //# sourceMappingURL=app.js.map
@@ -4,27 +4,34 @@ import https from 'https';
4
4
  import http from 'http';
5
5
  import fs from 'fs';
6
6
  import path from 'path';
7
+ // For local debug
8
+ // import {fileURLToPath} from 'url';
7
9
  import { formErrorHandler, formListeningHandler, normalizePort } from "../utils/server-utils.js";
10
+ // For local debug
11
+ // const __filename = fileURLToPath(import.meta.url);
12
+ // const __dirname = path.dirname(__filename);
13
+ /** Get port from environment and store in Express. */
8
14
  const httpPort = normalizePort(process.env.PORT || '80');
9
15
  if (httpPort === false) {
10
- console.error(`Incorrect HTTP port`);
11
- process.exit(1);
16
+ console.error(`Incorrect HTTP port`);
17
+ process.exit(1);
12
18
  }
13
19
  const httpsPort = normalizePort(process.env.HTTPS_PORT || '443');
14
20
  if (httpsPort === false) {
15
- console.error(`Incorrect HTTPs port`);
16
- process.exit(1);
21
+ console.error(`Incorrect HTTPs port`);
22
+ process.exit(1);
17
23
  }
24
+ /** Create HTTP server. */
18
25
  const options = {
19
- key: fs.readFileSync(path.join(__dirname, '../certs/key.pem')),
20
- cert: fs.readFileSync(path.join(__dirname, '../certs/cert.pem'))
26
+ key: fs.readFileSync(path.join(__dirname, '../certs/key.pem')),
27
+ cert: fs.readFileSync(path.join(__dirname, '../certs/cert.pem'))
21
28
  };
22
29
  const httpServer = http.createServer(app);
23
30
  const httpsServer = https.createServer(options, app);
31
+ /** Listen on provided port, on all network interfaces. */
24
32
  httpServer.listen(httpPort);
25
33
  httpServer.on('error', formErrorHandler(httpPort));
26
34
  httpServer.on('listening', formListeningHandler(httpServer));
27
35
  httpsServer.listen(httpsPort);
28
36
  httpsServer.on('error', formErrorHandler(httpsPort));
29
37
  httpsServer.on('listening', formListeningHandler(httpsServer));
30
- //# sourceMappingURL=www.js.map
@@ -1,21 +1,24 @@
1
1
  import path from 'path';
2
2
  import fs from 'fs';
3
- const {
4
- promises
5
- } = fs;
3
+ const { promises } = fs;
6
4
  const I3S_LAYER_PATH = process.env.I3sLayerPath || '';
5
+ /**
6
+ * Get local file name by input HTTP URL
7
+ * @param url - I3S HTTP service url
8
+ * @returns - local file name
9
+ */
7
10
  export async function getFileNameByUrl(url) {
8
- const extensions = ['json', 'bin', 'jpg', 'jpeg', 'png', 'bin.dds', 'ktx2'];
9
- const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH);
10
- for (const ext of extensions) {
11
- const fileName = `${FULL_LAYER_PATH}${url}/index.${ext}`;
12
- try {
13
- await promises.access(fileName);
14
- return fileName;
15
- } catch {
16
- continue;
11
+ const extensions = ['json', 'bin', 'jpg', 'jpeg', 'png', 'bin.dds', 'ktx2'];
12
+ const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH);
13
+ for (const ext of extensions) {
14
+ const fileName = `${FULL_LAYER_PATH}${url}/index.${ext}`;
15
+ try {
16
+ await promises.access(fileName);
17
+ return fileName;
18
+ }
19
+ catch {
20
+ continue; // eslint-disable-line no-continue
21
+ }
17
22
  }
18
- }
19
- return null;
23
+ return null;
20
24
  }
21
- //# sourceMappingURL=index-controller.js.map
@@ -2,18 +2,29 @@ import '@loaders.gl/polyfills';
2
2
  import { parseSLPKArchive } from '@loaders.gl/i3s';
3
3
  import { FileHandleFile } from '@loaders.gl/loader-utils';
4
4
  let slpkArchive;
5
+ /**
6
+ * Open SLPK file for reading and load HASH file
7
+ * @param fullLayerPath - full path to SLPK file
8
+ */
5
9
  export async function loadArchive(fullLayerPath) {
6
- slpkArchive = await parseSLPKArchive(new FileHandleFile(fullLayerPath), msg => console.log(msg));
7
- console.log('The server is ready to use');
10
+ slpkArchive = await parseSLPKArchive(new FileHandleFile(fullLayerPath), (msg) => console.log(msg));
11
+ console.log('The server is ready to use');
8
12
  }
13
+ /**
14
+ * Get a file from SLPK
15
+ * @param url - I3S HTTP URL
16
+ * @returns - file content
17
+ */
9
18
  export async function getFileByUrl(url) {
10
- const trimmedPath = /^\/?(.*)\/?$/.exec(url);
11
- if (trimmedPath) {
12
- try {
13
- const uncompressedFile = await slpkArchive.getFile(trimmedPath[1], 'http');
14
- return uncompressedFile;
15
- } catch {}
16
- }
17
- return null;
19
+ const trimmedPath = /^\/?(.*)\/?$/.exec(url);
20
+ if (trimmedPath) {
21
+ try {
22
+ const uncompressedFile = await slpkArchive.getFile(trimmedPath[1], 'http');
23
+ return uncompressedFile;
24
+ }
25
+ catch {
26
+ // TODO - log error?
27
+ }
28
+ }
29
+ return null;
18
30
  }
19
- //# sourceMappingURL=slpk-controller.js.map