Common structures

These are reoccuring data structures that you’ll see reused throughout Mdl, Vvd and Vtx.

Unless stated otherwise, every structure in this documentation is little-endian and follows natural 4 byte alignment, with no implicit padding. Valve wrote the studio formats to be memcpy-able straight into memory, so every field lands on its natural boundary and every sub-byte field is explicitly balanced out to a multiple of 4. The one exception is Vtx, which is byte-packed.

struct valvemdl.structs.common.Quaternion
x(float)<parsed from float>
y(float)<parsed from float>
z(float)<parsed from float>
w(float)<parsed from float>
struct valvemdl.structs.common.QAngle
x(float)<parsed from float>
y(float)<parsed from float>
z(float)<parsed from float>
struct valvemdl.structs.common.RadianEuler
x(float)<parsed from float>
y(float)<parsed from float>
z(float)<parsed from float>
struct valvemdl.structs.common.Vector4D
x(float)<parsed from float>
y(float)<parsed from float>
z(float)<parsed from float>
w(float)<parsed from float>
struct valvemdl.structs.common.Vector2D
x(float)<parsed from float>
y(float)<parsed from float>
struct valvemdl.structs.common.Vector
x(float)<parsed from float>
y(float)<parsed from float>
z(float)<parsed from float>