Skip to main content
Version : 2.0.0

Haply::Inverse::Unity::Inverse3

Hérite de DeviceBehaviour

Événements publics

Nom
Délégué à l'appareilDeviceStateChanged()
Événement déclenché à chaque image haptique.

Fonctions publiques

Nom
délégué videDeviceDelegate( dispositifInverse3 )
Représente une méthode qui gérera l'événement Inverse3.DeviceStateChanged d'un dispositif Inverse3.
videCursorSetLocalForce(in Vector3 force)
Définit la force appliquée au curseur en newtons (N) le long des axes x, y et z dans l'espace local de l'appareil.
videCursorSetLocalForce(float x, float y, float z)
videCursorSetForce(in Vector3 force)
Définit la force appliquée au curseur en newtons (N) dans l'espace mondial.
videCursorSetForce(float x, float y, float z)
videCursorSetLocalPosition(in Vector3 position)
Définit la position du curseur en mètres (m) le long des axes x, y et z dans l'espace local de l'appareil.
videCursorSetLocalPosition(float x, float y, float z)
videCursorSetPosition(in Vector3 position)
Définit la position du curseur en mètres (m) dans l'espace mondial.
videCursorSetPosition(float x, float y, float z)
videJointsSetTorque(in Vector3 torque)
Définit le couple souhaité en newton millimètres (Nmm) pour chaque articulation du dispositif Inverse3.
videJointsSetTorque(float x, float y, float z)
videJointsSetAngles(in Vector3 angles)
Définit les angles d'articulation souhaités en degrés (°) pour chaque articulation du dispositif Inverse3.
videJointsSetAngles(float x, float y, float z)
boolTryResetForce()
Tente de réinitialiser tous les contrôles de force et de position du curseur.
Vecteur3TransformPoint(Vector3 position)
Transforme une position de l'espace local de l'appareil ou du curseur vers l'espace mondial en utilisant la matrice LocalToWorldMatrix mise en cache.
Vecteur3TransformVector(Vector3 vector)
Transforme un vecteur de l'espace local de l'appareil ou du curseur vers l'espace mondial en utilisant la matrice LocalToWorldMatrix mise en cache.
Vecteur3InverseTransformPoint(Vector3 position)
Transforme une position de l'espace mondial vers l'espace local de l'appareil ou du curseur en utilisant la matrice WorldToLocalMatrix mise en cache.
Vecteur3InverseTransformVector(Vector3 vector)
Transforme un vecteur de l'espace mondial vers l'espace local de l'appareil ou du curseur en utilisant la matrice WorldToLocalMatrix mise en cache.
override stringToString()

Fonctions protégées

Nom
override voidMise en place()
override voidMise à jour fixe()
override voidAddClientListeners(Internal.ClientConnection clientConnection)
override voidRemoveClientListeners(ClientConnection interne client Connection)

Propriétés publiques

Nom
override DeviceTypeDeviceType
override CursorBehaviourCurseur
Vecteur3LocalPosition
Obtient la position du curseur Inverse3 en mètres (m) dans l'espace local de l'appareil.
Vecteur3Position
Obtient la position du curseur Inverse3 dans l'espace mondial à partir de LocalPosition et de LocalToWorldMatrix.
Vecteur3LocalVelocity
Obtient la vitesse du curseur Inverse3 en mètres par seconde (m/s) dans l'espace local de l'appareil.
Vecteur3Vélocité
Obtient la vitesse du curseur Inverse3 dans l'espace mondial à partir de LocalVelocity et de LocalToWorldMatrix.
Type de mainMain sélectionnée
Obtient ou définit le type de main souhaité pour le dispositif Inverse3.
Type de mainMain
Obtient le type de main de l'appareil au moment de l'exécution.
Vecteur3WorkspaceCenterLeft
Coordonnées locales du centre de l'espace de travail pour un appareil HandednessType.Left-handed.
Vecteur3WorkspaceCenterRight
Coordonnées locales du centre de l'espace de travail pour un appareil HandednessType.Right-handed.
Vecteur3Centre de l'espace de travail
Coordonnées locales du centre de l'espace de travail en fonction de la valeur Handedness.
Matrice4x4Matrice LocalToWorld
Matrice qui transforme l'espace du périphérique ou du curseur en espace mondial.
Matrice4x4Matrice WorldToLocal
Matrice qui transforme l'espace mondial en espace de l'appareil ou du curseur.

Propriétés protégées

Nom
TransformerSpaceTransformationReference
Transformation de référence utilisée pour la configuration des matrices LocalToWorldMatrix et WorldToLocalMatrix.

Documentation sur les événements publics

événement DeviceStateChanged

DeviceDelegate DeviceStateChanged()

Événement déclenché sur chaque image haptique.

Voir: ClientConfiguration.HapticFrequencyHz

Il fournit des mises à jour en temps réel de la position et de la vitesse du curseur.

Cet événement est utile pour les applications qui nécessitent un suivi continu de l'état du curseur ou pour appliquer des commandes de contrôle en temps réel. Au cours de cet événement, vous pouvez utiliser des propriétés telles que Position, Velocity, LocalPosition ou LocalVelocity.

Et des méthodes de contrôle telles que :

La fréquence à laquelle cet événement est déclenché est déterminée par la fréquence de la boucle haptique, qui peut être configurée via ClientConfiguration.HapticFrequencyHz.

Documentation sur les fonctions publiques

fonction DeviceDelegate

delegate void DeviceDelegate(
Inverse3 device
)

Représente une méthode qui gère l'événement Inverse3.DeviceStateChanged d'un appareil Inverse3.

Paramètres:

  • device L'instance de dispositif Inverse3 à l'origine de l'événement.

fonction CursorSetLocalForce

void CursorSetLocalForce(
in Vector3 force
)

Définit la force appliquée au curseur en newtons (N) le long des axes x, y et z dans l'espace local de l'appareil.

Paramètres:

  • force Vecteur de la force souhaitée en newtons (N) dans l'espace local de l'appareil.

Exceptions:

  • InvalidOperationException Lancée lorsque la connexion du client n'est pas établie.
  • Exception déclenchée si une erreur inattendue est reçue du service.

Cette méthode envoie un vecteur de force non traité directement à l'appareil dans son espace local et ne doit être utilisée qu'en conjonction avec LocalPosition et LocalVelocity. Si le calcul de la force est basé sur les coordonnées de l'espace mondial(Position et Vélocité) et/ou implique un contrôleur transformé (position, rotation ou échelle), CursorSetForce doit être utilisé à la place.

Lorsque l'appareil génère des forces, sa LED devient verte. Le dispositif Inverse3 peut générer jusqu'à 10 N au total, bien que la force maximale atteignable varie selon l'espace de travail. Si la force demandée dépasse la capacité de l'appareil, celui-ci génère la force maximale possible dans la même direction ou, si la mise à l'échelle de la force est activée, s'ajuste pour fournir la force la plus élevée possible tout en conservant une direction similaire. Le fait de régler la force sur tous les axes à zéro ne génère aucune force nette sur le curseur, mais le curseur reste compensé par la gravité si cette option est activée.

fonction CursorSetLocalForce

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

fonction CursorSetForce

void CursorSetForce(
in Vector3 force
)

Définit la force appliquée au curseur en newtons (N) dans l'espace mondial.

Paramètres:

  • force Vecteur de la force souhaitée en newtons (N) dans l'espace mondial.

Voir: CursorSetLocalForce, InverseTransformVector

Cette méthode convertit le vecteur de force fourni de l'espace mondial à l'espace local de l'appareil avant de l'envoyer à l'appareil. Elle doit être utilisée lorsque le calcul de la force est basé sur les coordonnées de l'espace mondial. Pour un contrôle direct de l'espace local, utilisez plutôt CursorSetLocalForce.

fonction CursorSetForce

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

fonction CursorSetLocalPosition

void CursorSetLocalPosition(
in Vector3 position
)

Définit la position du curseur en mètres (m) le long des axes x, y et z dans l'espace local de l'appareil.

Paramètres:

  • position Vecteur de la position souhaitée en mètres (m) dans l'espace local de l'appareil.

Exceptions:

  • InvalidOperationException Lancée lorsque la connexion du client n'est pas établie.
  • Exception déclenchée si une erreur inattendue est reçue du service.

Voir: Espace de travail centré à gauche, Espace de travail centré à droite

Cette méthode définit une consigne de position qui déplace le curseur à la position spécifiée. Elle envoie une position non traitée directement à l'appareil dans son espace local. Si le calcul de la position est basé sur les coordonnées de l'espace mondial(position, vitesse) et/ou implique un contrôleur transformé (position, rotation ou échelle), la méthode CursorSetPosition doit être prise en compte.

La LED de l'appareil devient bleue lorsqu'il est en mode de contrôle de position. La définition d'une position inaccessible fait que les bras du dispositif Inverse3 descendent lentement ou restent dans leur position actuelle. Pour quitter le mode de contrôle de position, appliquez une force (qui peut être nulle), utilisez TryResetForce ou déconnectez l'appareil.

fonction CursorSetLocalPosition

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

fonction CursorSetPosition

void CursorSetPosition(
in Vector3 position
)

Définit la position du curseur en mètres (m) dans l'espace mondial.

Paramètres:

  • position Vecteur de la position souhaitée en mètres (m) dans l'espace mondial.

Voir: CursorSetLocalPosition, InverseTransformPoint

Cette méthode convertit la position fournie de l'espace mondial à l'espace local de l'appareil avant de définir la valeur de consigne de la position. Elle doit être utilisée lorsque le calcul de la position est basé sur les coordonnées de l'espace mondial. Pour un contrôle direct de l'espace local, utilisez plutôt CursorSetLocalPosition.

fonction CursorSetPosition

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

fonction JointsSetTorque

void JointsSetTorque(
in Vector3 torque
)

Définit le couple souhaité en newton millimètres (Nmm) pour chaque articulation du dispositif Inverse3.

Paramètres:

  • torque Vecteur de couple souhaité en newton millimètres (Nmm).

Exceptions:

  • InvalidOperationException Lancée lorsque throwException est vrai et que la connexion du client n'est pas établie.
  • Exception déclenchée si une erreur inattendue est reçue du service.

Lorsque le couple est généré, la LED de l'appareil devient verte.

Le dispositif Inverse3 peut générer jusqu'à 1000 Nmm de couple à chaque articulation. Si le couple souhaité dépasse cette limite, l'appareil génère le couple maximum à la place.

  • L'articulation 1 contrôle la tête du dispositif.
  • L'articulation 2 contrôle l'articulation intérieure des bras.
  • L'articulation 3 contrôle l'articulation extérieure des bras.

fonction JointsSetTorque

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

fonction JointsSetAngles

void JointsSetAngles(
in Vector3 angles
)

Définit les angles d'articulation souhaités en degrés (°) pour chaque articulation du dispositif Inverse3.

Paramètres:

  • angles Vecteur des angles d'articulation souhaités en degrés (°).

Exceptions:

  • InvalidOperationException Lancée lorsque throwException est vrai et que la connexion du client n'est pas établie.
  • Exception déclenchée si une erreur inattendue est reçue du service.

Définit les angles d'articulation souhaités pour l'appareil. La définition d'un angle impossible à atteindre amènera l'appareil à la configuration physiquement la plus proche. Par exemple, le réglage de (-90, 180, 0) déplace l'appareil dans une position où la tête est parallèle et les bras perpendiculaires au corps.

  • L'articulation 1 contrôle la tête du dispositif.
  • L'articulation 2 contrôle l'articulation intérieure des bras.
  • L'articulation 3 contrôle l'articulation extérieure des bras.

fonction JointsSetAngles

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

fonction TryResetForce

bool TryResetForce()

Tente de réinitialiser tous les contrôles de force et de position du curseur.

Retourne: Vrai si la réinitialisation forcée a réussi ; faux si la connexion client n'est pas établie ou si une erreur inattendue s'est produite.

Cette méthode ne lève pas d'exception si la connexion client est déjà fermée, ce qui permet de l'utiliser lors de l'arrêt du programme ou dans les événements OnDisable. Elle renvoie un message faux si la connexion client n'est pas établie ou si une erreur inattendue est reçue du service lors de la réinitialisation du contrôle de la force et de la position.

fonction TransformPoint

Vector3 TransformPoint(
Vector3 position
)

Transforme une position de l'espace local de l'appareil ou du curseur vers l'espace mondial en utilisant la matrice LocalToWorldMatrix mise en cache.

Paramètres:

  • position Position locale.

Voir: LocalToWorldMatrix

Retour: Position mondiale.

Vous pouvez effectuer la conversion inverse, de l'espace mondial à l'espace local, en utilisant InverseTransformPoint.

fonction TransformVector

Vector3 TransformVector(
Vector3 vector
)

Transforme un vecteur de l'espace local de l'appareil ou du curseur vers l'espace mondial en utilisant la matrice LocalToWorldMatrix mise en cache.

Paramètres:

  • vecteur Vecteur local.

Voir: LocalToWorldMatrix

Retour: Vecteur mondial.

Vous pouvez effectuer la conversion inverse, de l'espace mondial à l'espace local, en utilisant InverseTransformVector.

fonction InverseTransformPoint

Vector3 InverseTransformPoint(
Vector3 position
)

Transforme une position de l'espace mondial en espace local de l'appareil ou du curseur en utilisant la matrice WorldToLocalMatrix mise en cache.

Paramètres:

  • position Position mondiale.

Voir: Matrice WorldToLocal

Retour: Position locale.

Le contraire de TransformPoint.

fonction InverseTransformVector

Vector3 InverseTransformVector(
Vector3 vector
)

Transforme un vecteur de l'espace mondial vers l'espace local de l'appareil ou du curseur en utilisant la matrice WorldToLocalMatrix mise en cache.

Paramètres:

  • vecteur Monde.

Voir: Matrice WorldToLocal

Retour: vecteur local.

Le contraire de TransformVector.

fonction ToString

override string ToString()

Documentation sur les fonctions protégées

fonction Setup

override void Setup()

fonction FixedUpdate

override void FixedUpdate()

fonction AddClientListeners

override void AddClientListeners(
Internal.ClientConnection clientConnection
)

fonction RemoveClientListeners

override void RemoveClientListeners(
Internal.ClientConnection clientConnection
)

Documentation sur les biens publics

propriété DeviceType

override DeviceType DeviceType;

propriété Cursor

override CursorBehaviour Cursor;

Cette propriété remplace la propriété de base DeviceBehaviour.Cursor et peut être transformée en toute sécurité en Inverse3Cursor. La définition de cette propriété met également à jour l'indicateur DeviceBehaviour._performSetup.

propriété LocalPosition

Vector3 LocalPosition;

Obtient la position du curseur Inverse3 en mètres (m) dans l'espace local de l'appareil.

Le DeviceBehaviour.ConnectionState de l'appareil doit d'abord être DeviceConnectionState.Opened pour obtenir une valeur cohérente.

propriété Position

Vector3 Position;

Obtient la position du curseur Inverse3 dans l'espace mondial à partir de LocalPosition et de LocalToWorldMatrix.

Voir: Transform.position, TransformPoint

propriété LocalVelocity

Vector3 LocalVelocity;

Obtient la vitesse du curseur Inverse3 en mètres par seconde (m/s) dans l'espace local de l'appareil.

La vitesse fournie est calculée à l'aide d'algorithmes d'estimation de la vitesse et ne nécessite pas de filtrage ou de traitement supplémentaire.

Le DeviceBehaviour.ConnectionState de l'appareil doit d'abord être DeviceConnectionState.Opened pour obtenir une valeur cohérente.

propriété Velocity

Vector3 Velocity;

Obtient la vitesse du curseur Inverse3 dans l'espace mondial à partir de LocalVelocity et de LocalToWorldMatrix.

Vecteur de transformation

propriété SelectedHandedness

HandednessType SelectedHandedness;

Permet d'obtenir ou de définir le type de main souhaité pour le dispositif Inverse3.

S'il vaut HandednessType.Nil, le premier appareil trouvé sera sélectionné à l'exécution par le DeviceMapper.

Utilisez Handedness pour connaître la main réelle de l'appareil au moment de l'exécution.

propriété Handedness

HandednessType Handedness;

Obtient le type de main de l'appareil au moment de l'exécution.

propriété WorkspaceCenterLeft

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

Coordonnées locales du centre de travail pour un appareil HandednessType.Left-handed.

Voir: CursorSetLocalPosition, SelectedHandedness

En plaçant le curseur à cette position, l'appareil sera déplacé de manière à ce que la tête soit parallèle et les bras perpendiculaires au corps.

propriété WorkspaceCenterRight

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

Coordonnées locales du centre de l'espace de travail pour un appareil HandednessType.Right-handed.

Voir: CursorSetLocalPosition, SelectedHandedness

En plaçant le curseur à cette position, l'appareil sera déplacé de manière à ce que la tête soit parallèle et les bras perpendiculaires au corps.

propriété WorkspaceCenter

Vector3 WorkspaceCenter;

Coordonnées locales du centre de l'espace de travail en fonction de la valeur Handedness.

Voir: CursorSetLocalPosition, SelectedHandedness

Renvoie WorkspaceCenterRight si la main est HandednessType.Nil.

En plaçant le curseur à cette position, l'appareil sera déplacé de manière à ce que la tête soit parallèle et les bras perpendiculaires au corps.

propriété LocalToWorldMatrix

Matrix4x4 LocalToWorldMatrix;

Matrice qui transforme l'espace du dispositif ou du curseur en espace mondial.

Voir: SpaceTransformationReference, TransformPoint, TransformVector

La matrice dépend de la SpaceTransformationReference.

Cette matrice peut être utilisée pour convertir les positions et les vitesses de l'espace local de l'appareil ou du curseur à l'espace mondial. Elle permet d'effectuer des calculs haptiques précis dans des environnements où les données du composant Transform ne sont pas directement accessibles.

propriété WorldToLocalMatrix

Matrix4x4 WorldToLocalMatrix;

Matrice qui transforme l'espace mondial en espace de l'appareil ou du curseur.

Voir: SpaceTransformationReference, InverseTransformPoint, InverseTransformVector

La matrice dépend de la SpaceTransformationReference.

Cette matrice peut être utilisée pour convertir les forces calculées de l'espace mondial à l'espace local du dispositif ou du curseur. Elle permet d'effectuer des calculs haptiques précis dans des environnements où les données du composant Transform ne sont pas directement accessibles.

Documentation sur les biens protégés

propriété SpaceTransformationReference

Transform SpaceTransformationReference;

Transformée de référence utilisée pour la configuration de LocalToWorldMatrix et WorldToLocalMatrix.

Si le curseur est défini, son parent est utilisé. Dans le cas contraire, c'est le périphérique actuel qui est transformé.