@loaders.gl/tile-converter 3.1.0-beta.2 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +2413 -1590
- package/dist/converter.min.js +20 -20
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +429 -189
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +306 -209
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +8 -4
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +13 -13
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js +51 -32
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +61 -17
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +55 -16
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +33 -9
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +103 -93
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +5 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +547 -336
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-debug.js +27 -31
- package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +209 -101
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +1645 -700
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/layers.js +213 -177
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/metadata.js +24 -20
- package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/node.js +92 -74
- package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/scene-server.js +34 -28
- package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +162 -107
- package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/store.js +4 -2
- package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
- package/dist/es5/i3s-converter/types.js +2 -0
- package/dist/es5/i3s-converter/types.js.map +1 -0
- package/dist/es5/i3s-server/app.js +6 -6
- package/dist/es5/i3s-server/app.js.map +1 -1
- package/dist/es5/i3s-server/controllers/index-controller.js +60 -20
- package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/es5/i3s-server/routes/index.js +41 -14
- package/dist/es5/i3s-server/routes/index.js.map +1 -1
- package/dist/es5/index.js +4 -4
- package/dist/es5/lib/utils/{compress-utils.d.ts → compress-util.d.ts} +0 -0
- package/dist/es5/lib/utils/compress-util.js +345 -123
- package/dist/es5/lib/utils/compress-util.js.map +1 -1
- package/dist/es5/lib/utils/file-utils.js +98 -20
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +9 -9
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/lib/utils/statistic-utills.js +152 -41
- package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
- package/dist/es5/pgm-loader.js +31 -4
- package/dist/es5/pgm-loader.js.map +1 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +7 -6
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +7 -0
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +1 -1
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js +12 -9
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +2 -6
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js +35 -3
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +2 -2
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +5 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +50 -16
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-debug.js +2 -4
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js +15 -4
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +147 -62
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/layers.js +37 -27
- package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/metadata.js +2 -2
- package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/node.js +16 -12
- package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/scene-server.js +2 -2
- package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/shared-resources.js +19 -14
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
- package/dist/esm/i3s-converter/types.js +2 -0
- package/dist/esm/i3s-converter/types.js.map +1 -0
- package/dist/esm/lib/utils/{compress-utils.d.ts → compress-util.d.ts} +0 -0
- package/dist/esm/pgm-loader.js +3 -3
- package/dist/esm/pgm-loader.js.map +1 -1
- package/package.json +16 -14
- package/src/3d-tiles-converter/3d-tiles-converter.ts +21 -20
- package/src/3d-tiles-converter/helpers/{b3dm-converter.js → b3dm-converter.ts} +19 -2
- package/src/3d-tiles-converter/helpers/{i3s-obb-to-3d-tiles-obb.js → i3s-obb-to-3d-tiles-obb.ts} +16 -1
- package/src/3d-tiles-converter/helpers/texture-atlas.ts +4 -4
- package/src/3d-tiles-converter/json-templates/{tileset.js → tileset.ts} +9 -9
- package/src/deps-installer/deps-installer.js +2 -2
- package/src/i3s-converter/helpers/coordinate-converter.ts +62 -9
- package/src/i3s-converter/helpers/{create-scene-server-path.js → create-scene-server-path.ts} +2 -2
- package/src/i3s-converter/helpers/{geometry-attributes.js → geometry-attributes.ts} +4 -4
- package/src/i3s-converter/helpers/geometry-converter.d.ts +5 -1
- package/src/i3s-converter/helpers/geometry-converter.js +63 -13
- package/src/i3s-converter/helpers/{node-debug.js → node-debug.ts} +3 -2
- package/src/i3s-converter/helpers/{node-pages.js → node-pages.ts} +41 -26
- package/src/i3s-converter/i3s-converter.ts +204 -133
- package/src/i3s-converter/json-templates/{layers.js → layers.ts} +29 -27
- package/src/i3s-converter/json-templates/{metadata.js → metadata.ts} +2 -2
- package/src/i3s-converter/json-templates/{node.js → node.ts} +12 -12
- package/src/i3s-converter/json-templates/{scene-server.js → scene-server.ts} +2 -2
- package/src/i3s-converter/json-templates/{shared-resources.js → shared-resources.ts} +14 -14
- package/src/i3s-converter/json-templates/{store.js → store.ts} +0 -0
- package/src/i3s-converter/types.ts +14 -0
- package/src/lib/utils/{compress-utils.d.ts → compress-util.d.ts} +0 -0
- package/src/pgm-loader.ts +2 -2
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
- package/dist/es5/i3s-converter/helpers/node-pages.d.ts +0 -144
- package/dist/es5/lib/geoid-height-model.d.ts +0 -41
- package/dist/es5/lib/geoid-height-model.js +0 -149
- package/dist/es5/lib/geoid-height-model.js.map +0 -1
- package/dist/es5/lib/pgm-parser.d.ts +0 -14
- package/dist/es5/lib/pgm-parser.js +0 -192
- package/dist/es5/lib/pgm-parser.js.map +0 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
- package/dist/esm/i3s-converter/helpers/node-pages.d.ts +0 -144
- package/dist/esm/lib/geoid-height-model.d.ts +0 -41
- package/dist/esm/lib/geoid-height-model.js +0 -140
- package/dist/esm/lib/geoid-height-model.js.map +0 -1
- package/dist/esm/lib/pgm-parser.d.ts +0 -14
- package/dist/esm/lib/pgm-parser.js +0 -183
- package/dist/esm/lib/pgm-parser.js.map +0 -1
- package/src/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
- package/src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
- package/src/i3s-converter/helpers/node-pages.d.ts +0 -144
- package/src/lib/geoid-height-model.d.ts +0 -41
- package/src/lib/geoid-height-model.js +0 -239
- package/src/lib/pgm-parser.d.ts +0 -14
- package/src/lib/pgm-parser.js +0 -179
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
import transform from 'json-map-transform';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
const COORDINATES = () => ({
|
|
3
4
|
mbs: {
|
|
4
5
|
path: 'mbs'
|
|
5
6
|
},
|
|
6
7
|
obb: {
|
|
7
8
|
path: 'obb'
|
|
8
9
|
}
|
|
9
|
-
};
|
|
10
|
-
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const HREF = () => ({
|
|
11
13
|
href: {
|
|
12
14
|
path: 'href'
|
|
13
15
|
}
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const PARENT_NODE = () => ({
|
|
16
19
|
id: {
|
|
17
20
|
path: 'id'
|
|
18
21
|
},
|
|
19
|
-
...
|
|
20
|
-
...COORDINATES
|
|
21
|
-
};
|
|
22
|
-
|
|
22
|
+
...HREF(),
|
|
23
|
+
...COORDINATES()
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export const NODE = () => ({
|
|
23
27
|
version: {
|
|
24
28
|
path: 'version'
|
|
25
29
|
},
|
|
@@ -32,7 +36,7 @@ export const NODE = {
|
|
|
32
36
|
level: {
|
|
33
37
|
path: 'level'
|
|
34
38
|
},
|
|
35
|
-
...COORDINATES,
|
|
39
|
+
...COORDINATES(),
|
|
36
40
|
lodSelection: {
|
|
37
41
|
path: 'lodSelection',
|
|
38
42
|
default: [{
|
|
@@ -53,7 +57,7 @@ export const NODE = {
|
|
|
53
57
|
},
|
|
54
58
|
parentNode: {
|
|
55
59
|
path: 'parentNode',
|
|
56
|
-
transform: val => transform(val, PARENT_NODE),
|
|
60
|
+
transform: val => transform(val, PARENT_NODE()),
|
|
57
61
|
default: null
|
|
58
62
|
},
|
|
59
63
|
sharedResource: {
|
|
@@ -76,5 +80,5 @@ export const NODE = {
|
|
|
76
80
|
path: 'attributeData',
|
|
77
81
|
default: null
|
|
78
82
|
}
|
|
79
|
-
};
|
|
83
|
+
});
|
|
80
84
|
//# sourceMappingURL=node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/node.
|
|
1
|
+
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/node.ts"],"names":["transform","COORDINATES","mbs","path","obb","HREF","href","PARENT_NODE","id","NODE","version","level","lodSelection","default","metricType","maxError","children","neighbors","parentNode","val","sharedResource","featureData","geometryData","textureData","attributeData"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,oBAAtB;;AAEA,MAAMC,WAAW,GAAG,OAAO;AACzBC,EAAAA,GAAG,EAAE;AACHC,IAAAA,IAAI,EAAE;AADH,GADoB;AAIzBC,EAAAA,GAAG,EAAE;AACHD,IAAAA,IAAI,EAAE;AADH;AAJoB,CAAP,CAApB;;AASA,MAAME,IAAI,GAAG,OAAO;AAClBC,EAAAA,IAAI,EAAE;AACJH,IAAAA,IAAI,EAAE;AADF;AADY,CAAP,CAAb;;AAMA,MAAMI,WAAW,GAAG,OAAO;AACzBC,EAAAA,EAAE,EAAE;AACFL,IAAAA,IAAI,EAAE;AADJ,GADqB;AAIzB,KAAGE,IAAI,EAJkB;AAKzB,KAAGJ,WAAW;AALW,CAAP,CAApB;;AAQA,OAAO,MAAMQ,IAAI,GAAG,OAAO;AACzBC,EAAAA,OAAO,EAAE;AACPP,IAAAA,IAAI,EAAE;AADC,GADgB;AAIzBK,EAAAA,EAAE,EAAE;AACFL,IAAAA,IAAI,EAAE;AADJ,GAJqB;AAOzBA,EAAAA,IAAI,EAAE;AACJA,IAAAA,IAAI,EAAE;AADF,GAPmB;AAUzBQ,EAAAA,KAAK,EAAE;AACLR,IAAAA,IAAI,EAAE;AADD,GAVkB;AAazB,KAAGF,WAAW,EAbW;AAczBW,EAAAA,YAAY,EAAE;AACZT,IAAAA,IAAI,EAAE,cADM;AAEZU,IAAAA,OAAO,EAAE,CACP;AACEC,MAAAA,UAAU,EAAE,sBADd;AAEEC,MAAAA,QAAQ,EAAE;AAFZ,KADO,EAKP;AACED,MAAAA,UAAU,EAAE,oBADd;AAEEC,MAAAA,QAAQ,EAAE;AAFZ,KALO;AAFG,GAdW;AA2BzBC,EAAAA,QAAQ,EAAE;AACRb,IAAAA,IAAI,EAAE,UADE;AAERU,IAAAA,OAAO,EAAE;AAFD,GA3Be;AA+BzBI,EAAAA,SAAS,EAAE;AACTd,IAAAA,IAAI,EAAE,WADG;AAETU,IAAAA,OAAO,EAAE;AAFA,GA/Bc;AAmCzBK,EAAAA,UAAU,EAAE;AACVf,IAAAA,IAAI,EAAE,YADI;AAEVH,IAAAA,SAAS,EAAGmB,GAAD,IAASnB,SAAS,CAACmB,GAAD,EAAMZ,WAAW,EAAjB,CAFnB;AAGVM,IAAAA,OAAO,EAAE;AAHC,GAnCa;AAwCzBO,EAAAA,cAAc,EAAE;AACdjB,IAAAA,IAAI,EAAE,gBADQ;AAEdU,IAAAA,OAAO,EAAE;AAFK,GAxCS;AA4CzBQ,EAAAA,WAAW,EAAE;AACXlB,IAAAA,IAAI,EAAE,aADK;AAEXU,IAAAA,OAAO,EAAE;AAFE,GA5CY;AAgDzBS,EAAAA,YAAY,EAAE;AACZnB,IAAAA,IAAI,EAAE,cADM;AAEZU,IAAAA,OAAO,EAAE;AAFG,GAhDW;AAoDzBU,EAAAA,WAAW,EAAE;AACXpB,IAAAA,IAAI,EAAE,aADK;AAEXU,IAAAA,OAAO,EAAE;AAFE,GApDY;AAwDzBW,EAAAA,aAAa,EAAE;AACbrB,IAAAA,IAAI,EAAE,eADO;AAEbU,IAAAA,OAAO,EAAE;AAFI;AAxDU,CAAP,CAAb","sourcesContent":["import transform from 'json-map-transform';\n\nconst COORDINATES = () => ({\n mbs: {\n path: 'mbs'\n },\n obb: {\n path: 'obb'\n }\n});\n\nconst HREF = () => ({\n href: {\n path: 'href'\n }\n});\n\nconst PARENT_NODE = () => ({\n id: {\n path: 'id'\n },\n ...HREF(),\n ...COORDINATES()\n});\n\nexport const NODE = () => ({\n version: {\n path: 'version'\n },\n id: {\n path: 'id'\n },\n path: {\n path: 'path'\n },\n level: {\n path: 'level'\n },\n ...COORDINATES(),\n lodSelection: {\n path: 'lodSelection',\n default: [\n {\n metricType: 'maxScreenThresholdSQ',\n maxError: 196349.54374999998\n },\n {\n metricType: 'maxScreenThreshold',\n maxError: 999.99999999999994\n }\n ]\n },\n children: {\n path: 'children',\n default: null\n },\n neighbors: {\n path: 'neighbors',\n default: null\n },\n parentNode: {\n path: 'parentNode',\n transform: (val) => transform(val, PARENT_NODE()),\n default: null\n },\n sharedResource: {\n path: 'sharedResource',\n default: null\n },\n featureData: {\n path: 'featureData',\n default: null\n },\n geometryData: {\n path: 'geometryData',\n default: null\n },\n textureData: {\n path: 'textureData',\n default: null\n },\n attributeData: {\n path: 'attributeData',\n default: null\n }\n});\n"],"file":"node.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const SCENE_SERVER = () => ({
|
|
2
2
|
serviceItemId: {
|
|
3
3
|
path: 'serviceItemId'
|
|
4
4
|
},
|
|
@@ -24,5 +24,5 @@ export const SCENE_SERVER_TEMPLATE = {
|
|
|
24
24
|
path: 'layers0',
|
|
25
25
|
transform: layers0 => [layers0]
|
|
26
26
|
}
|
|
27
|
-
};
|
|
27
|
+
});
|
|
28
28
|
//# sourceMappingURL=scene-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/scene-server.
|
|
1
|
+
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/scene-server.ts"],"names":["SCENE_SERVER","serviceItemId","path","serviceName","name","currentVersion","default","serviceVersion","supportedBindings","layers","transform","layers0"],"mappings":"AAAA,OAAO,MAAMA,YAAY,GAAG,OAAO;AACjCC,EAAAA,aAAa,EAAE;AACbC,IAAAA,IAAI,EAAE;AADO,GADkB;AAIjCC,EAAAA,WAAW,EAAE;AACXD,IAAAA,IAAI,EAAE;AADK,GAJoB;AAOjCE,EAAAA,IAAI,EAAE;AACJF,IAAAA,IAAI,EAAE;AADF,GAP2B;AAUjCG,EAAAA,cAAc,EAAE;AACdH,IAAAA,IAAI,EAAE,gBADQ;AAEdI,IAAAA,OAAO,EAAE;AAFK,GAViB;AAcjCC,EAAAA,cAAc,EAAE;AACdL,IAAAA,IAAI,EAAE,gBADQ;AAEdI,IAAAA,OAAO,EAAE;AAFK,GAdiB;AAkBjCE,EAAAA,iBAAiB,EAAE;AACjBN,IAAAA,IAAI,EAAE,mBADW;AAEjBI,IAAAA,OAAO,EAAE,CAAC,MAAD;AAFQ,GAlBc;AAsBjCG,EAAAA,MAAM,EAAE;AACNP,IAAAA,IAAI,EAAE,SADA;AAENQ,IAAAA,SAAS,EAAGC,OAAD,IAAa,CAACA,OAAD;AAFlB;AAtByB,CAAP,CAArB","sourcesContent":["export const SCENE_SERVER = () => ({\n serviceItemId: {\n path: 'serviceItemId'\n },\n serviceName: {\n path: 'layerName'\n },\n name: {\n path: 'layerName'\n },\n currentVersion: {\n path: 'currentVersion',\n default: 10.7\n },\n serviceVersion: {\n path: 'serviceVersion',\n default: '1.8'\n },\n supportedBindings: {\n path: 'supportedBindings',\n default: ['REST']\n },\n layers: {\n path: 'layers0',\n transform: (layers0) => [layers0]\n }\n});\n"],"file":"scene-server.js"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import transform from 'json-map-transform';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
const MATERIAL_DEFINITION_INFO_PARAMS = () => ({
|
|
3
4
|
renderMode: {
|
|
4
5
|
path: 'renderMode',
|
|
5
6
|
default: 'solid'
|
|
@@ -36,8 +37,9 @@ const MATERIAL_DEFINITION_INFO_PARAMS = {
|
|
|
36
37
|
path: 'vertexColors',
|
|
37
38
|
default: true
|
|
38
39
|
}
|
|
39
|
-
};
|
|
40
|
-
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const MATERIAL_DEFINITION_INFO = () => ({
|
|
41
43
|
name: {
|
|
42
44
|
path: 'name',
|
|
43
45
|
default: 'standard'
|
|
@@ -48,10 +50,11 @@ const MATERIAL_DEFINITION_INFO = {
|
|
|
48
50
|
},
|
|
49
51
|
params: {
|
|
50
52
|
path: 'params',
|
|
51
|
-
transform: (val, thisObject, originalObject) => transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS)
|
|
53
|
+
transform: (val, thisObject, originalObject) => transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())
|
|
52
54
|
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const TEXTURE_DEFINITION_IMAGE = () => ({
|
|
55
58
|
id: {
|
|
56
59
|
path: 'id'
|
|
57
60
|
},
|
|
@@ -65,8 +68,9 @@ const TEXTURE_DEFINITION_IMAGE = {
|
|
|
65
68
|
length: {
|
|
66
69
|
path: 'length'
|
|
67
70
|
}
|
|
68
|
-
};
|
|
69
|
-
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
const TEXTURE_DEFINITION_INFO = () => ({
|
|
70
74
|
encoding: {
|
|
71
75
|
path: 'encoding'
|
|
72
76
|
},
|
|
@@ -88,10 +92,11 @@ const TEXTURE_DEFINITION_INFO = {
|
|
|
88
92
|
},
|
|
89
93
|
images: {
|
|
90
94
|
path: 'images',
|
|
91
|
-
transform: (val, thisObject, originalObject) => val.map(image => transform(image, TEXTURE_DEFINITION_IMAGE))
|
|
95
|
+
transform: (val, thisObject, originalObject) => val.map(image => transform(image, TEXTURE_DEFINITION_IMAGE()))
|
|
92
96
|
}
|
|
93
|
-
};
|
|
94
|
-
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
export const SHARED_RESOURCES = () => ({
|
|
95
100
|
materialDefinitions: {
|
|
96
101
|
path: 'materialDefinitionInfos',
|
|
97
102
|
transform: transfromMaterialDefinitions
|
|
@@ -100,13 +105,13 @@ export const SHARED_RESOURCES_TEMPLATE = {
|
|
|
100
105
|
path: 'textureDefinitionInfos',
|
|
101
106
|
transform: transfromTextureDefinitions
|
|
102
107
|
}
|
|
103
|
-
};
|
|
108
|
+
});
|
|
104
109
|
|
|
105
110
|
function transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {
|
|
106
111
|
const result = {};
|
|
107
112
|
|
|
108
113
|
for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {
|
|
109
|
-
result["Mat".concat(originalObject.nodePath).concat(index)] = transform(materialDefinitionInfo, MATERIAL_DEFINITION_INFO);
|
|
114
|
+
result["Mat".concat(originalObject.nodePath).concat(index)] = transform(materialDefinitionInfo, MATERIAL_DEFINITION_INFO());
|
|
110
115
|
}
|
|
111
116
|
|
|
112
117
|
return result;
|
|
@@ -122,7 +127,7 @@ function transfromTextureDefinitions(textureDefinitionInfos, thisObject, origina
|
|
|
122
127
|
for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {
|
|
123
128
|
const imageIndex = "".concat(originalObject.nodePath).concat(index);
|
|
124
129
|
textureDefinitionInfo.imageIndex = imageIndex;
|
|
125
|
-
result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO);
|
|
130
|
+
result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/shared-resources.
|
|
1
|
+
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/shared-resources.ts"],"names":["transform","MATERIAL_DEFINITION_INFO_PARAMS","renderMode","path","default","shininess","reflectivity","ambient","diffuse","specular","useVertexColorAlpha","vertexRegions","vertexColors","MATERIAL_DEFINITION_INFO","name","type","params","val","thisObject","originalObject","TEXTURE_DEFINITION_IMAGE","id","size","href","length","TEXTURE_DEFINITION_INFO","encoding","wrap","atlas","uvSet","channels","images","map","image","SHARED_RESOURCES","materialDefinitions","transfromMaterialDefinitions","textureDefinitions","transfromTextureDefinitions","materialDefinitionInfos","result","index","materialDefinitionInfo","entries","nodePath","textureDefinitionInfos","textureDefinitionInfo","imageIndex"],"mappings":"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","sourcesContent":["import transform from 'json-map-transform';\n\nconst MATERIAL_DEFINITION_INFO_PARAMS = () => ({\n renderMode: {\n path: 'renderMode',\n default: 'solid'\n },\n shininess: {\n path: 'shininess',\n default: 1\n },\n reflectivity: {\n path: 'reflectivity',\n default: 0\n },\n ambient: {\n path: 'ambient',\n default: [1, 1, 1, 1]\n },\n diffuse: {\n path: 'diffuse',\n default: [1, 1, 1, 1]\n },\n specular: {\n path: 'specular',\n default: [0, 0, 0, 0]\n },\n useVertexColorAlpha: {\n path: 'useVertexColorAlpha',\n default: false\n },\n vertexRegions: {\n path: 'vertexRegions',\n default: false\n },\n vertexColors: {\n path: 'vertexColors',\n default: true\n }\n});\n\nconst MATERIAL_DEFINITION_INFO = () => ({\n name: {\n path: 'name',\n default: 'standard'\n },\n type: {\n path: 'type',\n default: 'standard'\n },\n params: {\n path: 'params',\n transform: (val, thisObject, originalObject) =>\n transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())\n }\n});\n\nconst TEXTURE_DEFINITION_IMAGE = () => ({\n id: {\n path: 'id'\n },\n size: {\n path: 'size'\n },\n href: {\n path: 'href',\n default: ['../textures/0']\n },\n length: {\n path: 'length'\n }\n});\n\nconst TEXTURE_DEFINITION_INFO = () => ({\n encoding: {\n path: 'encoding'\n },\n wrap: {\n path: 'wrap',\n default: ['none']\n },\n atlas: {\n path: 'atlas',\n default: false\n },\n uvSet: {\n path: 'uvSet',\n default: 'uv0'\n },\n channels: {\n path: 'channels',\n default: 'rgb'\n },\n images: {\n path: 'images',\n transform: (val, thisObject, originalObject) =>\n val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE()))\n }\n});\n\nexport const SHARED_RESOURCES = () => ({\n materialDefinitions: {\n path: 'materialDefinitionInfos',\n transform: transfromMaterialDefinitions\n },\n textureDefinitions: {\n path: 'textureDefinitionInfos',\n transform: transfromTextureDefinitions\n }\n});\n\nfunction transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {\n const result = {};\n for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {\n result[`Mat${originalObject.nodePath}${index}`] = transform(\n materialDefinitionInfo,\n MATERIAL_DEFINITION_INFO()\n );\n }\n return result;\n}\n\nfunction transfromTextureDefinitions(textureDefinitionInfos, thisObject, originalObject) {\n if (!textureDefinitionInfos) {\n return null;\n }\n const result = {};\n for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {\n const imageIndex = `${originalObject.nodePath}${index}`;\n textureDefinitionInfo.imageIndex = imageIndex;\n result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());\n }\n return result;\n}\n"],"file":"shared-resources.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/store.
|
|
1
|
+
{"version":3,"sources":["../../../../src/i3s-converter/json-templates/store.ts"],"names":["STORE","id","path","transform","val","toUpperCase","profile","default","version","resourcePattern","rootNode","extent","indexCRS","vertexCRS","normalReferenceFrame","attributeEncoding","textureEncoding","lodType","lodModel","defaultGeometrySchema","geometryType","header","property","type","topology","ordering","vertexAttributes","position","valueType","valuesPerElement","normal","uv0","color","featureAttributeOrder","featureAttributes","faceRange"],"mappings":"AAAA,OAAO,MAAMA,KAAK,GAAG;AACnBC,EAAAA,EAAE,EAAE;AACFC,IAAAA,IAAI,EAAE,IADJ;AAEFC,IAAAA,SAAS,EAAGC,GAAD,IAASA,GAAG,CAACC,WAAJ;AAFlB,GADe;AAKnBC,EAAAA,OAAO,EAAE;AACPJ,IAAAA,IAAI,EAAE,SADC;AAEPK,IAAAA,OAAO,EAAE;AAFF,GALU;AASnBC,EAAAA,OAAO,EAAE;AACPN,IAAAA,IAAI,EAAE,SADC;AAEPK,IAAAA,OAAO,EAAE;AAFF,GATU;AAanBE,EAAAA,eAAe,EAAE;AACfP,IAAAA,IAAI,EAAE,iBADS;AAEfK,IAAAA,OAAO,EAAE,CAAC,qBAAD,EAAwB,YAAxB,EAAsC,gBAAtC,EAAwD,UAAxD;AAFM,GAbE;AAiBnBG,EAAAA,QAAQ,EAAE;AACRR,IAAAA,IAAI,EAAE,UADE;AAERK,IAAAA,OAAO,EAAE;AAFD,GAjBS;AAqBnBI,EAAAA,MAAM,EAAE;AACNT,IAAAA,IAAI,EAAE;AADA,GArBW;AAwBnBU,EAAAA,QAAQ,EAAE;AACRV,IAAAA,IAAI,EAAE,UADE;AAERK,IAAAA,OAAO,EAAE;AAFD,GAxBS;AA4BnBM,EAAAA,SAAS,EAAE;AACTX,IAAAA,IAAI,EAAE,WADG;AAETK,IAAAA,OAAO,EAAE;AAFA,GA5BQ;AAgCnBO,EAAAA,oBAAoB,EAAE;AACpBZ,IAAAA,IAAI,EAAE,sBADc;AAEpBK,IAAAA,OAAO,EAAE;AAFW,GAhCH;AAoCnBQ,EAAAA,iBAAiB,EAAE;AACjBb,IAAAA,IAAI,EAAE,mBADW;AAEjBK,IAAAA,OAAO,EAAE;AAFQ,GApCA;AAwCnBS,EAAAA,eAAe,EAAE;AACfd,IAAAA,IAAI,EAAE,iBADS;AAEfK,IAAAA,OAAO,EAAE,CAAC,YAAD,EAAe,YAAf;AAFM,GAxCE;AA4CnBU,EAAAA,OAAO,EAAE;AACPf,IAAAA,IAAI,EAAE,SADC;AAEPK,IAAAA,OAAO,EAAE;AAFF,GA5CU;AAgDnBW,EAAAA,QAAQ,EAAE;AACRhB,IAAAA,IAAI,EAAE,UADE;AAERK,IAAAA,OAAO,EAAE;AAFD,GAhDS;AAoDnBY,EAAAA,qBAAqB,EAAE;AACrBjB,IAAAA,IAAI,EAAE,uBADe;AAErBK,IAAAA,OAAO,EAAE;AACPa,MAAAA,YAAY,EAAE,WADP;AAEPC,MAAAA,MAAM,EAAE,CACN;AACEC,QAAAA,QAAQ,EAAE,aADZ;AAEEC,QAAAA,IAAI,EAAE;AAFR,OADM,EAKN;AACED,QAAAA,QAAQ,EAAE,cADZ;AAEEC,QAAAA,IAAI,EAAE;AAFR,OALM,CAFD;AAYPC,MAAAA,QAAQ,EAAE,mBAZH;AAaPC,MAAAA,QAAQ,EAAE,CAAC,UAAD,EAAa,QAAb,EAAuB,KAAvB,EAA8B,OAA9B,CAbH;AAcPC,MAAAA,gBAAgB,EAAE;AAChBC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,SAAS,EAAE,SADH;AAERC,UAAAA,gBAAgB,EAAE;AAFV,SADM;AAKhBC,QAAAA,MAAM,EAAE;AACNF,UAAAA,SAAS,EAAE,SADL;AAENC,UAAAA,gBAAgB,EAAE;AAFZ,SALQ;AAShBE,QAAAA,GAAG,EAAE;AACHH,UAAAA,SAAS,EAAE,SADR;AAEHC,UAAAA,gBAAgB,EAAE;AAFf,SATW;AAahBG,QAAAA,KAAK,EAAE;AACLJ,UAAAA,SAAS,EAAE,OADN;AAELC,UAAAA,gBAAgB,EAAE;AAFb;AAbS,OAdX;AAgCPI,MAAAA,qBAAqB,EAAE,CAAC,IAAD,EAAO,WAAP,CAhChB;AAiCPC,MAAAA,iBAAiB,EAAE;AACjBjC,QAAAA,EAAE,EAAE;AACF2B,UAAAA,SAAS,EAAE,QADT;AAEFC,UAAAA,gBAAgB,EAAE;AAFhB,SADa;AAKjBM,QAAAA,SAAS,EAAE;AACTP,UAAAA,SAAS,EAAE,QADF;AAETC,UAAAA,gBAAgB,EAAE;AAFT;AALM;AAjCZ;AAFY;AApDJ,CAAd","sourcesContent":["export const STORE = {\n id: {\n path: 'id',\n transform: (val) => val.toUpperCase()\n },\n profile: {\n path: 'profile',\n default: 'meshpyramids'\n },\n version: {\n path: 'version',\n default: '1.8'\n },\n resourcePattern: {\n path: 'resourcePattern',\n default: ['3dNodeIndexDocument', 'Attributes', 'SharedResource', 'Geometry']\n },\n rootNode: {\n path: 'rootNode',\n default: './nodes/root'\n },\n extent: {\n path: 'extent'\n },\n indexCRS: {\n path: 'indexCRS',\n default: 'http://www.opengis.net/def/crs/EPSG/0/4326'\n },\n vertexCRS: {\n path: 'vertexCRS',\n default: 'http://www.opengis.net/def/crs/EPSG/0/4326'\n },\n normalReferenceFrame: {\n path: 'normalReferenceFrame',\n default: 'east-north-up'\n },\n attributeEncoding: {\n path: 'attributeEncoding',\n default: 'application/octet-stream; version=1.6'\n },\n textureEncoding: {\n path: 'textureEncoding',\n default: ['image/jpeg', 'image/ktx2']\n },\n lodType: {\n path: 'lodType',\n default: 'MeshPyramid'\n },\n lodModel: {\n path: 'lodModel',\n default: 'node-switching'\n },\n defaultGeometrySchema: {\n path: 'defaultGeometrySchema',\n default: {\n geometryType: 'triangles',\n header: [\n {\n property: 'vertexCount',\n type: 'UInt32'\n },\n {\n property: 'featureCount',\n type: 'UInt32'\n }\n ],\n topology: 'PerAttributeArray',\n ordering: ['position', 'normal', 'uv0', 'color'],\n vertexAttributes: {\n position: {\n valueType: 'Float32',\n valuesPerElement: 3\n },\n normal: {\n valueType: 'Float32',\n valuesPerElement: 3\n },\n uv0: {\n valueType: 'Float32',\n valuesPerElement: 2\n },\n color: {\n valueType: 'UInt8',\n valuesPerElement: 4\n }\n },\n featureAttributeOrder: ['id', 'faceRange'],\n featureAttributes: {\n id: {\n valueType: 'UInt64',\n valuesPerElement: 1\n },\n faceRange: {\n valueType: 'UInt32',\n valuesPerElement: 2\n }\n }\n }\n }\n};\n"],"file":"store.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
|
|
File without changes
|
package/dist/esm/pgm-loader.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const VERSION = typeof "3.1.
|
|
2
|
-
import {
|
|
1
|
+
const VERSION = typeof "3.1.1" !== 'undefined' ? "3.1.1" : 'latest';
|
|
2
|
+
import { parsePGM } from '@math.gl/geoid';
|
|
3
3
|
export const PGMLoader = {
|
|
4
4
|
name: 'PGM - Netpbm grayscale image format',
|
|
5
5
|
id: 'pgm',
|
|
6
6
|
module: 'tile-converter',
|
|
7
7
|
version: VERSION,
|
|
8
8
|
mimeTypes: ['image/x-portable-graymap'],
|
|
9
|
-
parse: (arrayBuffer, options) =>
|
|
9
|
+
parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),
|
|
10
10
|
extensions: ['pgm'],
|
|
11
11
|
options: {
|
|
12
12
|
cubic: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pgm-loader.ts"],"names":["VERSION","
|
|
1
|
+
{"version":3,"sources":["../../src/pgm-loader.ts"],"names":["VERSION","parsePGM","PGMLoader","name","id","module","version","mimeTypes","parse","arrayBuffer","options","Uint8Array","extensions","cubic"],"mappings":"AAIA,MAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AAEA,SAAQC,QAAR,QAAuB,gBAAvB;AAKA,OAAO,MAAMC,SAA2B,GAAG;AACzCC,EAAAA,IAAI,EAAE,qCADmC;AAEzCC,EAAAA,EAAE,EAAE,KAFqC;AAGzCC,EAAAA,MAAM,EAAE,gBAHiC;AAIzCC,EAAAA,OAAO,EAAEN,OAJgC;AAKzCO,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAL8B;AAMzCC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCT,QAAQ,CAAC,IAAIU,UAAJ,CAAeF,WAAf,CAAD,EAA8BC,OAA9B,CANN;AAOzCE,EAAAA,UAAU,EAAE,CAAC,KAAD,CAP6B;AAQzCF,EAAAA,OAAO,EAAE;AAEPG,IAAAA,KAAK,EAAE;AAFA;AARgC,CAApC","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nimport {parsePGM} from '@math.gl/geoid';\n\n/**\n * Loader for PGM - Netpbm grayscale image format\n */\nexport const PGMLoader: LoaderWithParser = {\n name: 'PGM - Netpbm grayscale image format',\n id: 'pgm',\n module: 'tile-converter',\n version: VERSION,\n mimeTypes: ['image/x-portable-graymap'],\n parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),\n extensions: ['pgm'],\n options: {\n // TODO - use pgm namespace\n cubic: false\n }\n};\n"],"file":"pgm-loader.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/tile-converter",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "Converter",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -40,20 +40,22 @@
|
|
|
40
40
|
"build-bin": "BABEL_ENV=es5 babel scripts --config-file ../../babel.config.js --out-dir dist/scripts"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@loaders.gl/3d-tiles": "3.1.
|
|
44
|
-
"@loaders.gl/crypto": "3.1.
|
|
45
|
-
"@loaders.gl/draco": "3.1.
|
|
46
|
-
"@loaders.gl/gltf": "3.1.
|
|
47
|
-
"@loaders.gl/i3s": "3.1.
|
|
48
|
-
"@loaders.gl/images": "3.1.
|
|
49
|
-
"@loaders.gl/loader-utils": "3.1.
|
|
50
|
-
"@loaders.gl/polyfills": "3.1.
|
|
51
|
-
"@loaders.gl/
|
|
52
|
-
"@loaders.gl/
|
|
53
|
-
"@loaders.gl/
|
|
43
|
+
"@loaders.gl/3d-tiles": "3.1.1",
|
|
44
|
+
"@loaders.gl/crypto": "3.1.1",
|
|
45
|
+
"@loaders.gl/draco": "3.1.1",
|
|
46
|
+
"@loaders.gl/gltf": "3.1.1",
|
|
47
|
+
"@loaders.gl/i3s": "3.1.1",
|
|
48
|
+
"@loaders.gl/images": "3.1.1",
|
|
49
|
+
"@loaders.gl/loader-utils": "3.1.1",
|
|
50
|
+
"@loaders.gl/polyfills": "3.1.1",
|
|
51
|
+
"@loaders.gl/textures": "3.1.1",
|
|
52
|
+
"@loaders.gl/tiles": "3.1.1",
|
|
53
|
+
"@loaders.gl/worker-utils": "3.1.1",
|
|
54
|
+
"@loaders.gl/zip": "3.1.1",
|
|
54
55
|
"@luma.gl/engine": "^8.5.4",
|
|
55
56
|
"@math.gl/core": "^3.5.1",
|
|
56
57
|
"@math.gl/culling": "^3.5.1",
|
|
58
|
+
"@math.gl/geoid": "^3.5.1",
|
|
57
59
|
"@math.gl/geospatial": "^3.5.1",
|
|
58
60
|
"archiver": "^5.0.0",
|
|
59
61
|
"cors": "^2.8.5",
|
|
@@ -67,7 +69,7 @@
|
|
|
67
69
|
"uuid": "^8.1.0"
|
|
68
70
|
},
|
|
69
71
|
"peerDependencies": {
|
|
70
|
-
"@loaders.gl/core": "3.1.0
|
|
72
|
+
"@loaders.gl/core": "3.1.0"
|
|
71
73
|
},
|
|
72
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "ed3c238bcb68ab5a2d4ddc64319f6f4c02a20df7"
|
|
73
75
|
}
|
|
@@ -7,6 +7,7 @@ import transform from 'json-map-transform';
|
|
|
7
7
|
import {load} from '@loaders.gl/core';
|
|
8
8
|
import {I3SLoader, I3SAttributeLoader, COORDINATE_SYSTEM} from '@loaders.gl/i3s';
|
|
9
9
|
import {Tileset3D, Tile3D} from '@loaders.gl/tiles';
|
|
10
|
+
import {Geoid} from '@math.gl/geoid';
|
|
10
11
|
|
|
11
12
|
import {PGMLoader} from '../pgm-loader';
|
|
12
13
|
import {i3sObbTo3dTilesObb} from './helpers/i3s-obb-to-3d-tiles-obb';
|
|
@@ -16,7 +17,6 @@ import {calculateFilesSize, timeConverter} from '../lib/utils/statistic-utills';
|
|
|
16
17
|
import {TILESET as tilesetTemplate} from './json-templates/tileset';
|
|
17
18
|
import B3dmConverter from './helpers/b3dm-converter';
|
|
18
19
|
import {createObbFromMbs} from '../i3s-converter/helpers/coordinate-converter';
|
|
19
|
-
import {GeoidHeightModel} from '../lib/geoid-height-model';
|
|
20
20
|
|
|
21
21
|
const I3S = 'I3S';
|
|
22
22
|
|
|
@@ -28,9 +28,9 @@ export default class Tiles3DConverter {
|
|
|
28
28
|
tilesetPath: string;
|
|
29
29
|
vertexCounter: number;
|
|
30
30
|
conversionStartTime: [number, number];
|
|
31
|
-
geoidHeightModel:
|
|
32
|
-
sourceTileset: Tileset3D;
|
|
33
|
-
attributeStorageInfo: AttributeStorageInfo;
|
|
31
|
+
geoidHeightModel: Geoid | null;
|
|
32
|
+
sourceTileset: Tileset3D | null;
|
|
33
|
+
attributeStorageInfo: AttributeStorageInfo | null;
|
|
34
34
|
|
|
35
35
|
constructor() {
|
|
36
36
|
this.options = {};
|
|
@@ -51,7 +51,7 @@ export default class Tiles3DConverter {
|
|
|
51
51
|
* @param options.egmFilePath location of *.pgm file to convert heights from ellipsoidal to gravity-related format
|
|
52
52
|
* @param options.maxDepth The max tree depth of conversion
|
|
53
53
|
*/
|
|
54
|
-
|
|
54
|
+
public async convert(options: {
|
|
55
55
|
inputUrl: string;
|
|
56
56
|
outputPath: string;
|
|
57
57
|
tilesetName: string;
|
|
@@ -71,8 +71,9 @@ export default class Tiles3DConverter {
|
|
|
71
71
|
loadOptions: {i3s: {coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS}}
|
|
72
72
|
});
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
const rootNode = this.sourceTileset.root!;
|
|
75
|
+
if (!rootNode.header.obb) {
|
|
76
|
+
rootNode.header.obb = createObbFromMbs(rootNode.header.mbs);
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
this.tilesetPath = join(`${outputPath}`, `${tilesetName}`);
|
|
@@ -86,15 +87,15 @@ export default class Tiles3DConverter {
|
|
|
86
87
|
|
|
87
88
|
const rootTile: Node3D = {
|
|
88
89
|
boundingVolume: {
|
|
89
|
-
box: i3sObbTo3dTilesObb(
|
|
90
|
+
box: i3sObbTo3dTilesObb(rootNode.header.obb, this.geoidHeightModel)
|
|
90
91
|
},
|
|
91
|
-
geometricError: convertScreenThresholdToGeometricError(
|
|
92
|
+
geometricError: convertScreenThresholdToGeometricError(rootNode),
|
|
92
93
|
children: []
|
|
93
94
|
};
|
|
94
95
|
|
|
95
|
-
await this._addChildren(
|
|
96
|
+
await this._addChildren(rootNode, rootTile, 1);
|
|
96
97
|
|
|
97
|
-
const tileset = transform({root: rootTile}, tilesetTemplate);
|
|
98
|
+
const tileset = transform({root: rootTile}, tilesetTemplate());
|
|
98
99
|
await writeFile(this.tilesetPath, JSON.stringify(tileset), 'tileset.json');
|
|
99
100
|
|
|
100
101
|
this._finishConversion({slpk: false, outputPath, tilesetName});
|
|
@@ -118,10 +119,10 @@ export default class Tiles3DConverter {
|
|
|
118
119
|
const sourceChild = await this._loadChildNode(parentSourceNode, childNodeInfo);
|
|
119
120
|
parentSourceNode.children.push(sourceChild);
|
|
120
121
|
if (sourceChild.contentUrl) {
|
|
121
|
-
await this.sourceTileset
|
|
122
|
+
await this.sourceTileset!._loadTile(sourceChild);
|
|
122
123
|
this.vertexCounter += sourceChild.content.vertexCount;
|
|
123
124
|
|
|
124
|
-
let attributes = null;
|
|
125
|
+
let attributes: FeatureAttribute | null = null;
|
|
125
126
|
if (this.attributeStorageInfo) {
|
|
126
127
|
attributes = await this._loadChildAttributes(sourceChild, this.attributeStorageInfo);
|
|
127
128
|
}
|
|
@@ -163,18 +164,18 @@ export default class Tiles3DConverter {
|
|
|
163
164
|
*/
|
|
164
165
|
private async _loadChildNode(parentNode: Tile3D, childNodeInfo: NodeReference): Promise<Tile3D> {
|
|
165
166
|
let header;
|
|
166
|
-
if (this.sourceTileset
|
|
167
|
+
if (this.sourceTileset!.tileset.nodePages) {
|
|
167
168
|
console.log(`Node conversion: ${childNodeInfo.id}`); // eslint-disable-line no-console,no-undef
|
|
168
|
-
header = await this.sourceTileset
|
|
169
|
+
header = await this.sourceTileset!.tileset.nodePagesTile.formTileFromNodePages(
|
|
169
170
|
childNodeInfo.id
|
|
170
171
|
);
|
|
171
172
|
} else {
|
|
172
|
-
const {loader} = this.sourceTileset
|
|
173
|
-
const nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href);
|
|
173
|
+
const {loader} = this.sourceTileset!;
|
|
174
|
+
const nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href!);
|
|
174
175
|
// load metadata
|
|
175
176
|
const options = {
|
|
176
177
|
i3s: {
|
|
177
|
-
...this.sourceTileset
|
|
178
|
+
...this.sourceTileset!.loadOptions,
|
|
178
179
|
isTileHeader: true,
|
|
179
180
|
loadContent: false
|
|
180
181
|
}
|
|
@@ -183,7 +184,7 @@ export default class Tiles3DConverter {
|
|
|
183
184
|
console.log(`Node conversion: ${nodeUrl}`); // eslint-disable-line no-console,no-undef
|
|
184
185
|
header = await load(nodeUrl, loader, options);
|
|
185
186
|
}
|
|
186
|
-
return new Tile3D(this.sourceTileset
|
|
187
|
+
return new Tile3D(this.sourceTileset!, header, parentNode);
|
|
187
188
|
}
|
|
188
189
|
|
|
189
190
|
/**
|
|
@@ -218,7 +219,7 @@ export default class Tiles3DConverter {
|
|
|
218
219
|
sourceChild: Tile3D,
|
|
219
220
|
attributeStorageInfo: AttributeStorageInfo
|
|
220
221
|
): Promise<FeatureAttribute> {
|
|
221
|
-
const promises = [];
|
|
222
|
+
const promises: any[] = [];
|
|
222
223
|
const {attributeUrls} = sourceChild.header;
|
|
223
224
|
|
|
224
225
|
for (let index = 0; index < attributeUrls.length; index++) {
|
|
@@ -9,8 +9,20 @@ import {convertTextureAtlas} from './texture-atlas';
|
|
|
9
9
|
const Z_UP_TO_Y_UP_MATRIX = new Matrix4([1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1]);
|
|
10
10
|
const scratchVector = new Vector3();
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Converts content of an I3S node to *.b3dm's file content
|
|
14
|
+
*/
|
|
12
15
|
export default class B3dmConverter {
|
|
13
|
-
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
rtcCenter: Float32Array;
|
|
18
|
+
i3sTile: any;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The starter of content conversion
|
|
22
|
+
* @param i3sTile - Tile3D instance for I3S node
|
|
23
|
+
* @returns - encoded content
|
|
24
|
+
*/
|
|
25
|
+
async convert(i3sTile: Object, attributes: any = null): Promise<ArrayBuffer> {
|
|
14
26
|
this.i3sTile = i3sTile;
|
|
15
27
|
const gltf = await this.buildGltf(i3sTile);
|
|
16
28
|
const b3dm = encodeSync(
|
|
@@ -25,7 +37,12 @@ export default class B3dmConverter {
|
|
|
25
37
|
return b3dm;
|
|
26
38
|
}
|
|
27
39
|
|
|
28
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Build and encode gltf
|
|
42
|
+
* @param i3sTile - Tile3D instance for I3S node
|
|
43
|
+
* @returns - encoded glb content
|
|
44
|
+
*/
|
|
45
|
+
async buildGltf(i3sTile): Promise<ArrayBuffer> {
|
|
29
46
|
const {
|
|
30
47
|
material,
|
|
31
48
|
attributes,
|
package/src/3d-tiles-converter/helpers/{i3s-obb-to-3d-tiles-obb.js → i3s-obb-to-3d-tiles-obb.ts}
RENAMED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import {Vector3} from '@math.gl/core';
|
|
2
2
|
import {Ellipsoid} from '@math.gl/geospatial';
|
|
3
3
|
import {OrientedBoundingBox} from '@math.gl/culling';
|
|
4
|
+
// @ts-expect-error
|
|
5
|
+
import {GeoidHeightModel} from '@loaders.gl/tile-converter/lib/geoid-height-model';
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Convert quaternion-based OBB to half-axes-based OBB
|
|
9
|
+
* @param i3SObb quaternion based OBB
|
|
10
|
+
* @param geoidHeightModel the Earth Gravity Model instance
|
|
11
|
+
* @returns number[12] 3DTiles OBB https://github.com/CesiumGS/3d-tiles/tree/master/specification#box
|
|
12
|
+
*/
|
|
13
|
+
export function i3sObbTo3dTilesObb(
|
|
14
|
+
i3SObb: {
|
|
15
|
+
center: number[];
|
|
16
|
+
halfSize: number[];
|
|
17
|
+
quaternion: number[];
|
|
18
|
+
},
|
|
19
|
+
geoidHeightModel: GeoidHeightModel
|
|
20
|
+
): number[] {
|
|
6
21
|
const tiles3DCenter = [
|
|
7
22
|
i3SObb.center[0],
|
|
8
23
|
i3SObb.center[1],
|
|
@@ -13,7 +13,7 @@ export function convertTextureAtlas(texCoords: Float32Array, uvRegions: Uint16Ar
|
|
|
13
13
|
const uv = texCoords.subarray(index, index + 2);
|
|
14
14
|
const regions = normalisedRegions.slice(index * 2, index * 2 + 4);
|
|
15
15
|
// fract(texCoords)
|
|
16
|
-
const fractatedUV = fract(uv);
|
|
16
|
+
const fractatedUV = fract([uv[0], uv[1]]);
|
|
17
17
|
// (uvRegions.zw - uvRegions.xy)
|
|
18
18
|
const subtracted = [regions[2] - regions[0], regions[3] - regions[1]];
|
|
19
19
|
// fract(texCoords) * (uvRegions.zw - uvRegions.xy)
|
|
@@ -35,7 +35,7 @@ export function convertTextureAtlas(texCoords: Float32Array, uvRegions: Uint16Ar
|
|
|
35
35
|
* Do fractation of UV array.
|
|
36
36
|
* @param uv
|
|
37
37
|
*/
|
|
38
|
-
function fract(uv: number
|
|
38
|
+
function fract(uv: [number, number]): [number, number] {
|
|
39
39
|
return [uv[0] - Math.floor(uv[0]), uv[1] - Math.floor(uv[1])];
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -43,9 +43,9 @@ function fract(uv: number[2]): number[2] {
|
|
|
43
43
|
* Normalize uvRegions by dividing by the maximum Uint16 value
|
|
44
44
|
* @param regions
|
|
45
45
|
*/
|
|
46
|
-
function normalizeRegions(regions: Uint16Array): number[
|
|
46
|
+
function normalizeRegions(regions: Uint16Array): number[] {
|
|
47
47
|
const MAX_UINT_16_VALUE = 65535;
|
|
48
|
-
const normalizedRegions = [];
|
|
48
|
+
const normalizedRegions: number[] = [];
|
|
49
49
|
|
|
50
50
|
for (let index = 0; index < regions.length; index++) {
|
|
51
51
|
normalizedRegions[index] = regions[index] / MAX_UINT_16_VALUE;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import transform from 'json-map-transform';
|
|
2
2
|
|
|
3
|
-
const ASSET = {
|
|
3
|
+
const ASSET = () => ({
|
|
4
4
|
version: {
|
|
5
5
|
path: 'version',
|
|
6
6
|
default: '1.0'
|
|
7
7
|
}
|
|
8
|
-
};
|
|
8
|
+
});
|
|
9
9
|
|
|
10
|
-
const TILE = {
|
|
10
|
+
const TILE = () => ({
|
|
11
11
|
boundingVolume: {
|
|
12
12
|
path: 'boundingVolume'
|
|
13
13
|
},
|
|
@@ -19,14 +19,14 @@ const TILE = {
|
|
|
19
19
|
},
|
|
20
20
|
children: {
|
|
21
21
|
path: 'children',
|
|
22
|
-
transform: (val) => val.map((tile) => transform(tile, TILE))
|
|
22
|
+
transform: (val) => val.map((tile) => transform(tile, TILE()))
|
|
23
23
|
}
|
|
24
|
-
};
|
|
24
|
+
});
|
|
25
25
|
|
|
26
|
-
export const TILESET = {
|
|
26
|
+
export const TILESET = () => ({
|
|
27
27
|
asset: {
|
|
28
28
|
path: 'asset',
|
|
29
|
-
transform: (val) => transform(val, ASSET)
|
|
29
|
+
transform: (val) => transform(val, ASSET())
|
|
30
30
|
},
|
|
31
31
|
geometricError: {
|
|
32
32
|
path: 'root',
|
|
@@ -34,6 +34,6 @@ export const TILESET = {
|
|
|
34
34
|
},
|
|
35
35
|
root: {
|
|
36
36
|
path: 'root',
|
|
37
|
-
transform: (val) => transform(val, TILE)
|
|
37
|
+
transform: (val) => transform(val, TILE())
|
|
38
38
|
}
|
|
39
|
-
};
|
|
39
|
+
});
|
|
@@ -3,12 +3,12 @@ import {ZipLoader} from '@loaders.gl/zip';
|
|
|
3
3
|
import {writeFile} from '../lib/utils/file-utils';
|
|
4
4
|
import {join} from 'path';
|
|
5
5
|
|
|
6
|
-
const PGM_LINK = 'https://
|
|
6
|
+
const PGM_LINK = 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/egm/egm2008-5.zip';
|
|
7
7
|
|
|
8
8
|
export class DepsInstaller {
|
|
9
9
|
async install(path = '') {
|
|
10
10
|
console.log('Installing "EGM2008-5" model...'); // eslint-disable-line no-console
|
|
11
|
-
const fileMap = await load(PGM_LINK, ZipLoader, {
|
|
11
|
+
const fileMap = await load(PGM_LINK, ZipLoader, {});
|
|
12
12
|
|
|
13
13
|
let depsPath = process.cwd();
|
|
14
14
|
if (path) {
|