I am having some difficulty understanding the boundingVolume box. All of the examples in the 3d-tiles-samples repo appear somewhere near Philadelphia. For example, the TilesetWithTreeBillboards has coordinates in radians, that once multipled by PI/180 yield the lat/lon coordinates of 40.041, -75.612.
However, in the TilesetWithDiscreteLOD, https://github.com/AnalyticalGraphicsInc/3d-tiles-samples/blob/master/tilesets/TilesetWithDiscreteLOD/tileset.json, which appears in the same place near Philadelphia, there is a boundingVolume Box:
"boundingVolume": {
"box": [
0,
0,
0,
7.0955,
0,
0,
0,
3.1405,
0,
0,
0,
5.0375
]
}
and a transform:
"transform": [
96.86356343768793,
24.848542777253734,
0,
0,
-15.986465724980844,
62.317780594908875,
76.5566922962899,
0,
19.02322243409411,
-74.15554020821229,
64.3356267137516,
0,
1215107.7612304366,
-4736682.902037748,
4081926.095098698,
1
]
I can see that this is a rotation, and translation matrix (scale being 0), but what are the units and how do these two matrices in conjunction resolve to a lat/lon (or ECEF) equivalent somewhere near Philadelphia. I have tried various linear algebra combinations, and Cesium.transforms but am drawing a blank.
I have looked at the Javascript code in https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#tile-transforms. But this has not helped at all, as the normalTransform calculated there, is not used in the rest of the code.
Apologies for what is no doubt a very daft question, but, I have only worked in projected coordinate systems in the past.