Types communs
Toutes les charges utiles JSON utilisent ces types de manière cohérente dans les interfaces WebSocket et HTTP.
vec3
Un vecteur 3D. Utilisé pour les positions (en mètres), les vitesses (m/s), les forces (N) et les facteurs d'échelle.
{ "x": 0.0, "y": 0.0, "z": 0.0 }
quaternion
Un quaternion unitaire représentant une rotation. w vient en premier dans la représentation interne du service,
mais dans JSON les quatre composantes sont des clés nommées, donc l'ordre n'a pas d'importance.
{ "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 }
Un quaternion identité (w=1, x=y=z=0) signifie « aucune rotation ».
angles3
Angles d'articulation en degrés (et non en radians). Utilisé pour la position angulaire et la vitesse angulaire des trois articulations de Inverse3.
{ "a0": 0.0, "a1": 0.0, "a2": 0.0 }
transform
Une combinaison de position, de rotation et d'échelle. Utilisé pour les transformations de montage, les transformations de l'espace de travail et le placement des effets SDF.
{
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
La transformation identité (illustrée ci-dessus) ne modifie rien : position nulle, aucune rotation, échelle unitaire.
mountLors de l'envoi d'un montage via configure.mount, la transformation est enveloppée dans une
clé "transform" : { "mount": { "transform": { … } } }.
Lors de la lecture du montage depuis un instantané d'appareil, il apparaît à plat :
{ "mount": { "position": …, "rotation": …, "scale": … } }.
Cette asymétrie est intentionnelle — voir Montage et espace de travail.