Metadata property Vector3 - float32 throws exception when using noData

I’ve got a glTF 2.0 with Ext_Structural_Metadata, property ‘vector3’ has type=vec3, componentType=FLOAT32 and noData = [10.0,10.0,10.0]

image

There is 1 triangle with value for property ‘vector3’ equal to noData (10.0,10.0,10.0). When clicking the triangle there is an exception TypeError: Cannot read properties of undefined (reading ‘0’), something in the unpack function.

image

image

When changing the noData value to something else (like [0,0,0]) the value shows up as expected.

Live demo: https://bertt.github.io/cesium_issues/vector3_float32_nodata/

Code: cesium_issues/vector3_float32_nodata at main · bertt/cesium_issues · GitHub

Similar or related to Metadata Int64 - noData value not used : This is a bug in CesiumJS. I have opened Exception for vector- or matrix typed `noData` metadata values without `default` · Issue #11802 · CesiumGS/cesium · GitHub

Both issues seem to be small and easy to fix. Creating the proper test cases/coverage could be a bit of work, but manageable. (I’ll try to allocate some time and have a look at that - maybe fixes for that could go into the next (March) release).

BTW: I really appreciate the detailed reports and the test data for these cases. Regarding the screenshot and stack trace: It might be easier to figure out what’s wrong with the ‘unminified’ version of CesiumJS. (Whoever is going to fix the bug will have to run/check this locally anyhow, so this is just a hint for the case that you’re curious)

good suggestion, https://bertt.github.io/cesium_issues/vector3_float32_nodata/ now uses the unminified version