Интересный, актуальный вопрос... Поддерживаю способ "4 флоата"... Хотя не совсем поддерживаю... Потому как чтобы получить искомые 4 флоата из:
x,y,z
Pitch,Yaw,Roll
нужно малех помудриться, объединяя значения углов вот таким волшебным образом:
Pitch = 100
Yaw = 128
Roll = 256
Result = Pitch*1000000 + Yaw*1000 + Roll
Поскольку при 360-тиградусной целочисленной форме представления углов (а, ИМХО, это оптимальное) для каждого угла _всегда_ будет достаточно 3-х знаков. Особенно прихоливым можно модифицировать код, получив доступ еще и к одному знаку после запятой, но ИМХО это лишнее...
Как вытаскивать значения, думаю, догадаетесь (;
P.S.
Решил вас не мучать, и заодно подсказать начинающим и тем, кто не знает, как их вытащить:
Result = 100128256
; все данные углов просто _обязаны_ быть целочисленными. Иначе напроситесь... На совсем небольшое смещение
Pitch = Result*0.000001
Yaw = Result*0.001 - Pitch*1000
Roll = Result - Pitch*1000000 - Yaw*1000