Zum Hauptinhalt springen

Gemeinsame Typen

Alle JSON-Payloads verwenden diese Typen konsistent über die Schnittstellen WebSocket und HTTP hinweg.

vec3​

Ein 3D-Vektor. Wird für Positionen (Meter), Geschwindigkeiten (m/s), Kräfte (N) und Skalierungsfaktoren verwendet.

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

quaternion​

Ein Einheitsquaternion, das eine Drehung darstellt. w steht in der internen Darstellung des Dienstes an erster Stelle, aber in JSON sind alle vier Komponenten als benannte Schlüssel angegeben, daher spielt die Reihenfolge keine Rolle.

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

Ein Identitätsquaternion (w=1, x=y=z=0) bedeutet „keine Drehung“.

angles3​

Gelenkwinkel in Grad (nicht Radiant). Sie werden für die Winkelposition und Winkelgeschwindigkeit der drei Gelenke von Inverse3 verwendet.

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

transform​

Eine Kombination aus Position, Drehung und Skalierung. Wird für Mount-Transformationen, Workspace-Transformationen und die Platzierung von SDF-Effekten verwendet.

{
"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 }
}

Die Identitätstransformation (oben dargestellt) lässt alles unverändert: Nullposition, keine Drehung, Skalierung 1.

hinweis
Befehl vs. Snapshot-Struktur für mount

Beim Senden eines Mounts über configure.mount wird die Transformation in einen Schlüssel "transform" eingeschlossen: { "mount": { "transform": { … } } }. Beim Lesen von mount aus einem Geräte-Snapshot erscheint er flach: { "mount": { "position": …, "rotation": …, "scale": … } }. Diese Asymmetrie ist beabsichtigt – siehe Mount & Workspace.