Zum Hauptinhalt springen
Version: 2.0.0

Haply::Inverse::Unity::Inverse3

Erbt von DeviceBehaviour

Öffentliche Veranstaltungen

Name
DeviceDelegateDeviceStateChanged()
Ereignis, das bei jedem haptischen Bild ausgelöst wird.

Öffentliche Funktionen

Name
delegieren ungültigDeviceDelegate(Inverse3 device)
Stellt eine Methode dar, die das Ereignis Inverse3.DeviceStateChanged eines Inverse3 Gerätes behandelt.
voidCursorSetLocalForce(in Vector3 force)
Setzt die auf den Cursor wirkende Kraft in Newton (N) entlang der x-, y- und z-Achse im lokalen Raum des Geräts.
voidCursorSetLocalForce(float x, float y, float z)
voidCursorSetForce(in Vector3 force)
Setzt die Kraft, die auf den Cursor wirkt, in Newton (N) im Weltraum.
voidCursorSetForce(float x, float y, float z)
voidCursorSetLocalPosition(in Vector3 position)
Setzt den Positionssollwert des Cursors in Metern (m) entlang der x-, y- und z-Achse im lokalen Raum des Geräts.
voidCursorSetLocalPosition(float x, float y, float z)
voidCursorSetPosition(in Vector3 position)
Setzt den Positionssollwert des Cursors in Metern (m) im Weltraum.
voidCursorSetPosition(float x, float y, float z)
voidJointsSetTorque(in Vector3 torque)
Setzt das gewünschte Drehmoment in Newton Millimeter (Nmm) für jedes Gelenk des Inverse3 Gerätes.
voidJointsSetTorque(Float x, Float y, Float z)
voidJointsSetAngles(in Vector3 angles)
Setzt die gewünschten Gelenkwinkel in Grad (°) für jedes Gelenk des Inverse3 Gerätes.
voidJointsSetAngles(float x, float y, float z)
boolTryResetForce()
Versucht, alle Kraft- und Positionskontrollen für den Cursor zurückzusetzen.
Vektor3TransformPoint(Vector3 position)
Transformiert eine Position aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.
Vektor3TransformVector(Vector3 vector)
Transformiert einen Vektor aus dem lokalen Raum des Geräts oder Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.
Vektor3InverseTransformPoint(Vector3 position)
Transformiert eine Position vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.
Vektor3InverseTransformVector(Vector3 vector)
Transformiert einen Vektor vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.
override stringToString()

Geschützte Funktionen

Name
override voidEinrichtung()
override voidFixedUpdate()
override voidAddClientListeners(Internal.ClientConnection clientConnection)
override voidRemoveClientListeners(Internal.ClientConnection clientConnection)

Öffentliche Immobilien

Name
override DeviceTypeGerätetyp
override CursorBehaviourCursor
Vektor3LokalePosition
Ermittelt die Position des Inverse3 Cursors in Metern (m) im lokalen Raum des Geräts.
Vektor3Standort
Ermittelt die Inverse3 Position des Cursors im Weltraum aus LocalPosition und LocalToWorldMatrix
Vektor3LokaleGeschwindigkeit
Ermittelt die Geschwindigkeit des Inverse3 Cursors in Metern pro Sekunde (m/s) im lokalen Raum des Geräts.
Vektor3Geschwindigkeit
Ermittelt die Inverse3 Geschwindigkeit des Cursors im Weltraum aus LocalVelocity und LocalToWorldMatrix
HandednessTypeSelectedHandedness
Liest oder setzt den gewünschten Händigkeitstyp des Inverse3 Gerätes.
HandednessTypeHändigkeit
Ruft den Händigkeitstyp des Geräts zur Laufzeit ab.
Vektor3ArbeitsbereichZentrumLinks
Lokale Koordinaten der Arbeitsbereichsmitte für ein Gerät vom Typ HandednessType.Left-handed.
Vektor3ArbeitsbereichCenterRight
Lokale Koordinaten für das Zentrum des Arbeitsbereichs für ein Gerät vom Typ HandednessType.Right (Rechtshänder).
Vektor3ArbeitsbereichCenter
Lokale Koordinaten des Arbeitsbereichszentrums in Abhängigkeit vom Handedness-Wert.
Matrix4x4LocalToWorldMatrix
Matrix, die den Geräte- oder Cursorraum in den Weltraum transformiert.
Matrix4x4WorldToLocalMatrix
Matrix, die vom Weltraum in den Geräte- oder Cursorraum zurücktransformiert.

Geschützte Eigenschaften

Name
TransformierenSpaceTransformationReference
Referenztransformation, die für die Einrichtung von LocalToWorldMatrix und WorldToLocalMatrix verwendet wird.

Öffentliche Veranstaltungen Dokumentation

Ereignis DeviceStateChanged

DeviceDelegate DeviceStateChanged()

Ereignis, das bei jedem haptischen Bild ausgelöst wird.

Siehe: ClientConfiguration.HapticFrequencyHz

Es bietet Echtzeit-Updates der Position und Geschwindigkeit des Cursors.

Dieses Ereignis ist nützlich für Anwendungen, die eine kontinuierliche Verfolgung des Cursor-Status erfordern, oder für die Anwendung von Steuerbefehlen in Echtzeit. Während dieses Ereignisses können Sie Eigenschaften wie Position, Velocity, LocalPosition oder LocalVelocity verwenden.

Und Kontrollmethoden wie:

Die Frequenz, mit der dieses Ereignis ausgelöst wird, wird durch die Frequenz der haptischen Schleife bestimmt, die über ClientConfiguration.HapticFrequencyHz konfiguriert werden kann.

Öffentliche Funktionen Dokumentation

Funktion DeviceDelegate

delegate void DeviceDelegate(
Inverse3 device
)

Stellt eine Methode dar, die das Ereignis Inverse3.DeviceStateChanged eines Inverse3 Gerätes behandelt.

Parameter:

  • Gerät Die Inverse3 Geräteinstanz, die das Ereignis auslöst.

Funktion CursorSetLocalForce

void CursorSetLocalForce(
in Vector3 force
)

Legt die auf den Cursor wirkende Kraft in Newton (N) entlang der x-, y- und z-Achse im lokalen Raum des Geräts fest.

Parameter:

  • force Der gewünschte Kraftvektor in Newton (N) im lokalen Raum des Geräts.

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Diese Methode sendet einen nicht verarbeiteten Kraftvektor direkt an das Gerät in seinem lokalen Raum und sollte nur in Verbindung mit LocalPosition und LocalVelocity verwendet werden. Wenn die Kraftberechnung auf Weltraumkoordinaten(Position und Velocity) basiert und/oder einen transformierten (Position, Rotation oder Skalierung) Controller beinhaltet, sollte stattdessen CursorSetForce verwendet werden.

Wenn Kräfte erzeugt werden, leuchtet die LED des Geräts grün. Das Inverse3 Gerät kann insgesamt bis zu 10 N erzeugen, wobei die maximal erreichbare Kraft über den Arbeitsbereich variiert. Wenn die angeforderte Kraft die Fähigkeit des Geräts übersteigt, erzeugt es entweder die maximal mögliche Kraft in der gleichen Richtung oder, wenn die Kraftskalierung aktiviert ist, passt es sich an, um die höchste erreichbare Kraft zu erzeugen, während eine ähnliche Richtung beibehalten wird. Wenn Sie die Kraft entlang aller Achsen auf Null setzen, wird keine Nettokraft auf den Cursor ausgeübt, aber der Cursor bleibt schwerkraftkompensiert, falls dies aktiviert ist.

Funktion CursorSetLocalForce

void CursorSetLocalForce(
float x,
float y,
float z
)

Funktion CursorSetForce

void CursorSetForce(
in Vector3 force
)

Legt die auf den Cursor wirkende Kraft in Newton (N) im Weltraum fest.

Parameter:

  • force Der gewünschte Kraftvektor in Newton (N) im Weltraum.

Siehe: CursorSetLocalForce, InverseTransformVector

Diese Methode wandelt den bereitgestellten Kraftvektor vom Weltraum in den lokalen Raum des Geräts um, bevor er an das Gerät gesendet wird. Sie sollte verwendet werden, wenn die Kraftberechnung auf Weltraumkoordinaten basiert. Für die direkte Steuerung im lokalen Raum verwenden Sie stattdessen CursorSetLocalForce.

Funktion CursorSetForce

void CursorSetForce(
float x,
float y,
float z
)

Funktion CursorSetLocalPosition

void CursorSetLocalPosition(
in Vector3 position
)

Setzt den Positionssollwert des Cursors in Metern (m) entlang der x-, y- und z-Achse im lokalen Raum des Geräts.

Parameter:

  • position Der gewünschte Positionsvektor in Metern (m) im lokalen Raum des Geräts.

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Siehe: ArbeitsbereichZentrumLinks, ArbeitsbereichZentrumRechts

Diese Methode setzt einen Positionssollwert, der den Cursor an die angegebene Position bewegt. Sie sendet eine unbearbeitete Position direkt an das Gerät in seinem lokalen Raum. Wenn die Positionsberechnung auf Weltraumkoordinaten(Position, Geschwindigkeit) basiert und/oder einen transformierten (Position, Drehung oder Skalierung) Controller beinhaltet, sollte CursorSetPosition in Betracht gezogen werden.

Die LED des Geräts leuchtet blau, wenn es sich im Lageregelungsmodus befindet. Die Einstellung einer nicht erreichbaren Position bewirkt, dass die Inverse3 Arme des Geräts langsam nach unten fallen oder in ihrer aktuellen Position verbleiben. Um den Positionskontrollmodus zu beenden, wenden Sie eine Kraft an (die Null sein kann), verwenden Sie TryResetForce oder trennen Sie die Verbindung zum Gerät.

Funktion CursorSetLocalPosition

void CursorSetLocalPosition(
float x,
float y,
float z
)

Funktion CursorSetPosition

void CursorSetPosition(
in Vector3 position
)

Setzt den Positionssollwert des Cursors in Metern (m) im Weltraum.

Parameter:

  • position Der gewünschte Positionsvektor in Metern (m) im Weltraum.

Siehe: CursorSetLocalPosition, InverseTransformPoint

Diese Methode wandelt die angegebene Position vom Weltraum in den lokalen Raum des Geräts um, bevor der Positionssollwert festgelegt wird. Sie sollte verwendet werden, wenn die Positionsberechnung auf Weltraumkoordinaten basiert. Für die direkte Steuerung im lokalen Raum ist stattdessen CursorSetLocalPosition zu verwenden.

Funktion CursorSetPosition

void CursorSetPosition(
float x,
float y,
float z
)

Funktion JointsSetTorque

void JointsSetTorque(
in Vector3 torque
)

Stellt das gewünschte Drehmoment in Newton-Millimeter (Nmm) für jedes Gelenk des Inverse3 Gerätes ein.

Parameter:

  • torque Der gewünschte Drehmomentvektor in Newton-Millimeter (Nmm).

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn throwException wahr ist und die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Wenn ein Drehmoment erzeugt wird, leuchtet die LED des Geräts grün.

Die Inverse3 Das Gerät kann an jedem Gelenk ein Drehmoment von bis zu 1000 Nmm erzeugen. Wenn das gewünschte Drehmoment diese Grenze überschreitet, erzeugt das Gerät stattdessen das maximale Drehmoment.

  • Das Gelenk 1 steuert den Kopf des Geräts.
  • Gelenk 2 steuert das innere Gelenk der Arme.
  • Gelenk 3 steuert das äußere Gelenk der Arme.

Funktion JointsSetTorque

void JointsSetTorque(
float x,
float y,
float z
)

Funktion JointsSetAngles

void JointsSetAngles(
in Vector3 angles
)

Stellt die gewünschten Gelenkwinkel in Grad (°) für jedes Gelenk des Inverse3 Gerätes ein.

Parameter:

  • angles Der gewünschte Gelenkwinkelvektor in Grad (°).

Ausnahmen:

  • InvalidOperationException Wird ausgelöst, wenn throwException wahr ist und die Client-Verbindung nicht hergestellt werden kann.
  • Exception Wird ausgelöst, wenn ein unerwarteter Fehler vom Dienst empfangen wird.

Legt einen gewünschten Gelenkwinkel für das Gerät fest. Wenn Sie einen nicht erreichbaren Winkel einstellen, wird das Gerät in die nächstmögliche physikalisch erreichbare Konfiguration gebracht. Zum Beispiel, die Einstellung (-90, 180, 0) bringt das Gerät in eine Position, in der der Kopf parallel und die Arme rechtwinklig zum Körper sind.

  • Das Gelenk 1 steuert den Kopf des Geräts.
  • Gelenk 2 steuert das innere Gelenk der Arme.
  • Gelenk 3 steuert das äußere Gelenk der Arme.

Funktion JointsSetAngles

void JointsSetAngles(
float x,
float y,
float z
)

Funktion TryResetForce

bool TryResetForce()

Versucht, die gesamte Kraft- und Positionssteuerung für den Cursor zurückzusetzen.

Rückgabe: True, wenn der Force-Reset erfolgreich war; false, wenn die Client-Verbindung nicht hergestellt werden konnte oder ein unerwarteter Fehler aufgetreten ist.

Diese Methode löst keine Ausnahme aus, wenn die ClientConnection bereits geschlossen ist, so dass sie sich für die Verwendung während der Programmbeendigung oder in OnDisable-Ereignissen eignet. Sie gibt false zurück, wenn die Client-Verbindung nicht hergestellt wurde oder wenn beim Zurücksetzen der Kraft- und Positionskontrolle ein unerwarteter Fehler vom Dienst empfangen wurde.

Funktion TransformPoint

Vector3 TransformPoint(
Vector3 position
)

Transformiert eine Position aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.

Parameter:

  • Position Lokale Position.

Siehe: LocalToWorldMatrix

Rückkehr: Weltweite Position.

Sie können die umgekehrte Konvertierung von der Welt in den lokalen Raum mit InverseTransformPoint durchführen.

Funktion TransformVektor

Vector3 TransformVector(
Vector3 vector
)

Transformiert einen Vektor aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix.

Parameter:

  • vector Lokaler Vektor.

Siehe: LocalToWorldMatrix

Rückkehr: Weltvektor.

Sie können die umgekehrte Konvertierung von der Welt in den lokalen Raum mit InverseTransformVector durchführen.

Funktion InverseTransformPoint

Vector3 InverseTransformPoint(
Vector3 position
)

Transformiert eine Position aus dem Weltraum zurück in den lokalen Raum des Geräts oder des Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.

Parameter:

  • Position Weltposition.

Siehe: WorldToLocalMatrix

Rückkehr: Lokale Position.

Das Gegenteil von TransformPoint.

Funktion InverseTransformationVektor

Vector3 InverseTransformVector(
Vector3 vector
)

Transformiert einen Vektor aus dem Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix.

Parameter:

  • Vektor Welt Vektor.

Siehe: WorldToLocalMatrix

Rückgabe: Lokaler Vektor.

Das Gegenteil von TransformVector.

Funktion ToString

override string ToString()

Geschützte Funktionen Dokumentation

Funktion Einrichten

override void Setup()

Funktion FixedUpdate

override void FixedUpdate()

Funktion AddClientListeners

override void AddClientListeners(
Internal.ClientConnection clientConnection
)

Funktion RemoveClientListeners

override void RemoveClientListeners(
Internal.ClientConnection clientConnection
)

Dokumentation über öffentliches Eigentum

Eigenschaft DeviceType

override DeviceType DeviceType;

Eigenschaft Cursor

override CursorBehaviour Cursor;

Diese Eigenschaft hat Vorrang vor der Basiseigenschaft DeviceBehaviour.Cursor und kann sicher auf Inverse3Cursor übertragen werden. Das Setzen dieser Eigenschaft aktualisiert auch das Flag DeviceBehaviour._performSetup.

Eigenschaft LocalPosition

Vector3 LocalPosition;

Ermittelt die Position des Inverse3 Cursors in Metern (m) im lokalen Raum des Geräts.

Das Gerät DeviceBehaviour.ConnectionState muss zuerst DeviceConnectionState.Opened sein, um einen einheitlichen Wert zu erhalten.

Eigenschaft Position

Vector3 Position;

Ermittelt die Inverse3 Position des Cursors im Weltraum aus LocalPosition und LocalToWorldMatrix

Siehe: Transform.position, TransformPoint

Eigenschaft LocalVelocity

Vector3 LocalVelocity;

Ermittelt die Geschwindigkeit des Inverse3 Cursors in Metern pro Sekunde (m/s) im lokalen Raum des Geräts.

Die bereitgestellte Geschwindigkeit wird mithilfe von Algorithmen zur Geschwindigkeitsschätzung berechnet und erfordert keine weitere Filterung oder Verarbeitung.

Das Gerät DeviceBehaviour.ConnectionState muss zuerst DeviceConnectionState.Opened sein, um einen einheitlichen Wert zu erhalten.

Eigenschaft Velocity

Vector3 Velocity;

Ermittelt die Inverse3 Geschwindigkeit des Cursors im Weltraum aus LocalVelocity und LocalToWorldMatrix

TransformVektor

Eigenschaft SelectedHandedness

HandednessType SelectedHandedness;

Liest oder setzt den gewünschten Händigkeitstyp des Inverse3 Gerätes.

Ist dieser Wert auf HandednessType.Nil gesetzt, wird das erste gefundene Gerät zur Laufzeit vom DeviceMapper ausgewählt.

Verwenden Sie Handedness, um die tatsächliche Händigkeit des Geräts zur Laufzeit zu erfahren.

Eigenschaft Händigkeit

HandednessType Handedness;

Ruft den Händigkeitstyp des Geräts zur Laufzeit ab.

Eigenschaft WorkspaceCenterLeft

static Vector3 WorkspaceCenterLeft = new(-0.05f, 0.15f, -0.12f);

Lokale Koordinaten der Arbeitsbereichsmitte für ein Gerät vom Typ HandednessType.Left-handed.

Siehe: CursorSetLocalPosition, SelectedHandedness

Wenn Sie den Cursor auf diese Position setzen, wird das Gerät so bewegt, dass der Kopf parallel und die Arme senkrecht zum Körper stehen.

Eigenschaft WorkspaceCenterRight

static Vector3 WorkspaceCenterRight = new(0.05f, 0.15f, -0.12f);

Lokale Koordinaten des Arbeitsbereichszentrums für ein Gerät vom Typ HandednessType.Right-handed.

Siehe: CursorSetLocalPosition, SelectedHandedness

Wenn Sie den Cursor auf diese Position setzen, wird das Gerät so bewegt, dass der Kopf parallel und die Arme senkrecht zum Körper stehen.

Eigenschaft WorkspaceCenter

Vector3 WorkspaceCenter;

Lokale Koordinaten des Arbeitsbereichszentrums in Abhängigkeit vom Wert für die Handlichkeit.

Siehe: CursorSetLocalPosition, SelectedHandedness

Gibt WorkspaceCenterRight zurück, wenn Handedness gleich HandednessType.Nil ist.

Wenn Sie den Cursor auf diese Position setzen, wird das Gerät so bewegt, dass der Kopf parallel und die Arme senkrecht zum Körper stehen.

Eigenschaft LocalToWorldMatrix

Matrix4x4 LocalToWorldMatrix;

Matrix, die den Geräte- oder Cursorraum in den Weltraum transformiert.

Siehe: SpaceTransformationReference, TransformPoint, TransformVector

Die Matrix hängt von der SpaceTransformationReference ab.

Diese Matrix kann für die Konvertierung von Positionen und Geschwindigkeiten aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum verwendet werden. Damit können haptikbezogene Berechnungen in Umgebungen, in denen die Daten der Transform-Komponente nicht direkt zugänglich sind, genau durchgeführt werden.

Eigenschaft WorldToLocalMatrix

Matrix4x4 WorldToLocalMatrix;

Matrix, die vom Weltraum in den Geräte- oder Cursorraum zurücktransformiert.

Siehe: SpaceTransformationReference, InverseTransformPoint, InverseTransformVector

Die Matrix hängt von der SpaceTransformationReference ab.

Diese Matrix kann verwendet werden, um berechnete Kräfte aus dem Weltraum in den lokalen Raum des Geräts oder des Cursors zu konvertieren. Damit können haptikbezogene Berechnungen in Umgebungen, in denen die Daten der Transform-Komponente nicht direkt zugänglich sind, genau durchgeführt werden.

Geschütztes Eigentum Dokumentation

Eigenschaft SpaceTransformationReference

Transform SpaceTransformationReference;

Referenztransformation für die Einrichtung von LocalToWorldMatrix und WorldToLocalMatrix.

Wenn Cursor gesetzt ist, wird sein Elternteil verwendet. Andernfalls wird das aktuelle Gerät transformiert.