Open Data Description Language
Created on 2022-08-08T09:36:54-05:00
All values have explicit type tags.
Some types are primitive storage types (as in C) while others are defined by the application using the format.
Sort of looks like Ring or the derivative of Ring used by Qt's QML.
Unknown types are valid syntax but the block must be ignored if the reader doesn't understand the type.
Structures can be given names and referred to later; this encodes pointer relationships between objects.
Structures are allowed to have properties which are stored up in the header. Stated examples are for specifying different level of details of a mesh or an alternative place to store an object's name.
States
Arrays of arrays are allowed to have state tags. This is an identifier prefixed to the subarray which has some special meaning.
An example from the PDF is that a path is encoded as an array of XY coordinates while states are used to indicate when a pen is moved, draws straight lines, or creates cubic Bezier curves across points.