Haply::Inverse::Unity::Inverse3
Erbt von DeviceBehaviour
Öffentliche Veranstaltungen
Name | |
---|---|
DeviceDelegate | DeviceStateChanged() Ereignis, das bei jedem haptischen Bild ausgelöst wird. |
Öffentliche Funktionen
Name | |
---|---|
delegieren ungültig | DeviceDelegate(Inverse3 device) Stellt eine Methode dar, die das Ereignis Inverse3.DeviceStateChanged eines Inverse3 Gerätes behandelt. |
void | CursorSetLocalForce(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. |
void | CursorSetLocalForce(float x, float y, float z) |
void | CursorSetForce(in Vector3 force) Setzt die Kraft, die auf den Cursor wirkt, in Newton (N) im Weltraum. |
void | CursorSetForce(float x, float y, float z) |
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. |
void | CursorSetLocalPosition(float x, float y, float z) |
void | CursorSetPosition(in Vector3 position) Setzt den Positionssollwert des Cursors in Metern (m) im Weltraum. |
void | CursorSetPosition(float x, float y, float z) |
void | JointsSetTorque(in Vector3 torque) Setzt das gewünschte Drehmoment in Newton Millimeter (Nmm) für jedes Gelenk des Inverse3 Gerätes. |
void | JointsSetTorque(Float x, Float y, Float z) |
void | JointsSetAngles(in Vector3 angles) Setzt die gewünschten Gelenkwinkel in Grad (°) für jedes Gelenk des Inverse3 Gerätes. |
void | JointsSetAngles(float x, float y, float z) |
bool | TryResetForce() Versucht, alle Kraft- und Positionskontrollen für den Cursor zurückzusetzen. |
Vektor3 | TransformPoint(Vector3 position) Transformiert eine Position aus dem lokalen Raum des Geräts oder des Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix. |
Vektor3 | TransformVector(Vector3 vector) Transformiert einen Vektor aus dem lokalen Raum des Geräts oder Cursors in den Weltraum unter Verwendung der zwischengespeicherten LocalToWorldMatrix. |
Vektor3 | InverseTransformPoint(Vector3 position) Transformiert eine Position vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix. |
Vektor3 | InverseTransformVector(Vector3 vector) Transformiert einen Vektor vom Weltraum zurück in den lokalen Raum des Geräts oder Cursors unter Verwendung der zwischengespeicherten WorldToLocalMatrix. |
override string | ToString() |
Geschützte Funktionen
Name | |
---|---|
override void | Einrichtung() |
override void | FixedUpdate() |
override void | AddClientListeners(Internal.ClientConnection clientConnection) |
override void | RemoveClientListeners(Internal.ClientConnection clientConnection) |
Öffentliche Immobilien
Name | |
---|---|
override DeviceType | Gerätetyp |
override CursorBehaviour | Cursor |
Vektor3 | LokalePosition Ermittelt die Position des Inverse3 Cursors in Metern (m) im lokalen Raum des Geräts. |
Vektor3 | Standort Ermittelt die Inverse3 Position des Cursors im Weltraum aus LocalPosition und LocalToWorldMatrix |
Vektor3 | LokaleGeschwindigkeit Ermittelt die Geschwindigkeit des Inverse3 Cursors in Metern pro Sekunde (m/s) im lokalen Raum des Geräts. |
Vektor3 | Geschwindigkeit Ermittelt die Inverse3 Geschwindigkeit des Cursors im Weltraum aus LocalVelocity und LocalToWorldMatrix |
HandednessType | SelectedHandedness Liest oder setzt den gewünschten Händigkeitstyp des Inverse3 Gerätes. |
HandednessType | Händigkeit Ruft den Händigkeitstyp des Geräts zur Laufzeit ab. |
Vektor3 | ArbeitsbereichZentrumLinks Lokale Koordinaten der Arbeitsbereichsmitte für ein Gerät vom Typ HandednessType.Left-handed. |
Vektor3 | ArbeitsbereichCenterRight Lokale Koordinaten für das Zentrum des Arbeitsbereichs für ein Gerät vom Typ HandednessType.Right (Rechtshänder). |
Vektor3 | ArbeitsbereichCenter Lokale Koordinaten des Arbeitsbereichszentrums in Abhängigkeit vom Handedness-Wert. |
Matrix4x4 | LocalToWorldMatrix Matrix, die den Geräte- oder Cursorraum in den Weltraum transformiert. |
Matrix4x4 | WorldToLocalMatrix Matrix, die vom Weltraum in den Geräte- oder Cursorraum zurücktransformiert. |
Geschützte Eigenschaften
Name | |
---|---|
Transformieren | SpaceTransformationReference 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:
- CursorSetForce, um eine Kraft auf den Cursor anzuwenden,
- CursorSetPosition, um die Position des Cursors festzulegen,
- JointsSetTorque, um ein Drehmoment auf die Gelenke des Geräts anzuwenden, oder
- JointsSetAngles, um die Winkel der Gelenke des Geräts einzustellen.
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
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.