Skip to main content
Version : 2.0.0

Haply::Inverse::Unité: :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é videDélégué à l'appareil(Inverse3 device)
Représente une méthode qui gérera l'événement Inverse3.DeviceStateChanged d'un Inverse3 appareil.
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 de l'appareil. Inverse3 dispositif.
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 de l'appareil. Inverse3 dispositif.
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
Vecteur3Position locale
Obtient la position du curseur en mètres (m) dans l'espace local de l'appareil. Inverse3 curseur en mètres (m) dans l'espace local de l'appareil.
Vecteur3Position
Obtient la position de l'espace mondial du Inverse3 position du curseur dans l'espace mondial à partir de LocalPosition et de LocalToWorldMatrix
Vecteur3Vitesse locale
Obtient la vitesse du curseur en mètres par seconde (m/s) dans l'espace local de l'appareil. Inverse3 curseur en mètres par seconde (m/s) dans l'espace local de l'appareil.
Vecteur3Vélocité
Obtient la vitesse du curseur dans l'espace mondial à partir de LocalVelocity Inverse3 vitesse du curseur dans l'espace mondial à partir de LocalVelocity et LocalToWorldMatrix
Type de mainMain sélectionnée
Obtient ou définit le type de main souhaité pour le Inverse3 dispositif.
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 traitera l'événement Inverse3.DeviceStateChanged d'un Inverse3 appareil.

Paramètres:

  • appareil L'instance d'appareil Inverse3 l'instance de l'appareil à 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 diode électroluminescente devient verte. L'appareil peut générer jusqu'à 10 N au total. Inverse3 peut générer jusqu'à 10 N au total, bien que la force maximale réalisable varie en fonction de l'espace de travail. Si la force demandée dépasse les capacités 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. Le réglage d'une position inaccessible fait que les bras de l'appareil Inverse3 Les bras de l'appareil s'abaissent 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-vous de 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 de l'appareil. Inverse3 de l'appareil.

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.

L'appareil peut générer jusqu'à 1000 Nmm de couple à chaque articulation. Inverse3 L'appareil 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 de l'appareil. Inverse3 de l'appareil.

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 en mètres (m) dans l'espace local de l'appareil. Inverse3 curseur 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 de l'espace mondial du Inverse3 position du curseur dans l'espace mondial à partir de LocalPosition et de LocalToWorldMatrix

Voir: Transform.position, TransformPoint

propriété LocalVelocity​

Vector3 LocalVelocity;

Obtient la vitesse du curseur en mètres par seconde (m/s) dans l'espace local de l'appareil. Inverse3 curseur 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 dans l'espace mondial à partir de LocalVelocity Inverse3 vitesse du curseur dans l'espace mondial à partir de LocalVelocity et LocalToWorldMatrix

Vecteur de transformation

propriété SelectedHandedness​

HandednessType SelectedHandedness;

Obtient ou définit le type de main souhaité pour le Inverse3 dispositif.

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é.