Aller au contenu principal

Types communs

Toutes les charges utiles JSON utilisent ces types de manière cohérente, tant via l'interface WebSocket que via l'interface HTTP.

vec3​

Un vecteur 3D. Utilisé pour les positions (en mètres), les vitesses (en m/s), les forces (en N) et les facteurs d'échelle.

{ "x": 0.0, "y": 0.0, "z": 0.0 }

quaternion​

Un quaternion unitaire représentant une rotation. w occupe la première place dans la présentation interne du service, mais en JSON, les quatre composants sont tous spécifiés sous forme de clés nommées ; l'ordre n'a donc aucune importance.

{ "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 }

Un quaternion d'identité (w=1, x=y=z=0) signifie « pas de rotation ».

angles3​

Angles d'articulation en degrés (et non en radians). Ils sont utilisés pour la position angulaire et la vitesse angulaire des trois articulations d'Inverse3 .

{ "a0": 0.0, "a1": 0.0, "a2": 0.0 }

transformer​

Combinaison de position, de rotation et de mise à l'échelle. Utilisée pour les transformations de montage, les transformations de l'espace de travail et le placement d'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 d'identité (illustrée ci-dessus) ne modifie rien : position zéro, aucune rotation, échelle 1.

Remarque
Commande vs. structure de snapshot pour mount

Chez Envoyer un des monts au-dessus de configure.mount la transformation en une clé "transform" Inclus : { "mount": { "transform": { … } } }. Chez Lire Lorsqu'on le monte à partir d'un instantané de périphérique, il apparaît comme plat : { "mount": { "position": …, "rotation": …, "scale": … } }. Cette asymétrie est voulue – voir Support et espace de travail.