This was a nasty 🪲. To visualize a Vertex/VertexRGB object in a static viewer, the NParray.fromURL method in datamodel.js was using jQuery to fetch the numpy array with the data. However, jQuery by default serializes any type of data and so the binary buffer was automatically encoded as a string. This automatic serialization caused issues when a float32 array was saved (see below for an example.)
This PR completely rewrites the NParray.fromURL method to use an XMLHttpRequest instead of jQuery. In this way the buffer can be fetched as an arraybuffer, and all the portions of the buffer (header/data) can be decoded appropriately.
This was a nasty 🪲. To visualize a Vertex/VertexRGB object in a static viewer, the
NParray.fromURL
method indatamodel.js
was using jQuery to fetch the numpy array with the data. However, jQuery by default serializes any type of data and so the binary buffer was automatically encoded as a string. This automatic serialization caused issues when a float32 array was saved (see below for an example.)This PR completely rewrites the
NParray.fromURL
method to use anXMLHttpRequest
instead of jQuery. In this way the buffer can be fetched as an arraybuffer, and all the portions of the buffer (header/data) can be decoded appropriately.Example code
Before
After