Haply::Inverse::Unity::Inverse3
Hérite de DeviceBehaviour
Événements publics
Nom | |
---|---|
Délégué à l'appareil | DeviceStateChanged() Événement déclenché à chaque image haptique. |
Fonctions publiques
Nom | |
---|---|
délégué vide | DeviceDelegate( dispositifInverse3 ) Représente une méthode qui gérera l'événement Inverse3.DeviceStateChanged d'un dispositif Inverse3. |
vide | 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. |
vide | CursorSetLocalForce(float x, float y, float z) |
vide | CursorSetForce(in Vector3 force) Définit la force appliquée au curseur en newtons (N) dans l'espace mondial. |
vide | CursorSetForce(float x, float y, float z) |
vide | 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. |
vide | CursorSetLocalPosition(float x, float y, float z) |
vide | CursorSetPosition(in Vector3 position) Définit la position du curseur en mètres (m) dans l'espace mondial. |
vide | CursorSetPosition(float x, float y, float z) |
vide | JointsSetTorque(in Vector3 torque) Définit le couple souhaité en newton millimètres (Nmm) pour chaque articulation du dispositif Inverse3. |
vide | JointsSetTorque(float x, float y, float z) |
vide | JointsSetAngles(in Vector3 angles) Définit les angles d'articulation souhaités en degrés (°) pour chaque articulation du dispositif Inverse3. |
vide | JointsSetAngles(float x, float y, float z) |
bool | TryResetForce() Tente de réinitialiser tous les contrôles de force et de position du curseur. |
Vecteur3 | 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. |
Vecteur3 | 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. |
Vecteur3 | InverseTransformPoint(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. |
Vecteur3 | 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. |
override string | ToString() |
Fonctions protégées
Nom | |
---|---|
override void | Mise en place() |
override void | Mise à jour fixe() |
override void | AddClientListeners(Internal.ClientConnection clientConnection) |
override void | RemoveClientListeners(ClientConnection interne client Connection) |
Propriétés publiques
Nom | |
---|---|
override DeviceType | DeviceType |
override CursorBehaviour | Curseur |
Vecteur3 | LocalPosition Obtient la position du curseur Inverse3 en mètres (m) dans l'espace local de l'appareil. |
Vecteur3 | Position Obtient la position du curseur Inverse3 dans l'espace mondial à partir de LocalPosition et de LocalToWorldMatrix. |
Vecteur3 | LocalVelocity Obtient la vitesse du curseur Inverse3 en mètres par seconde (m/s) dans l'espace local de l'appareil. |
Vecteur3 | Vélocité Obtient la vitesse du curseur Inverse3 dans l'espace mondial à partir de LocalVelocity et de LocalToWorldMatrix. |
Type de main | Main sélectionnée Obtient ou définit le type de main souhaité pour le dispositif Inverse3. |
Type de main | Main Obtient le type de main de l'appareil au moment de l'exécution. |
Vecteur3 | WorkspaceCenterLeft Coordonnées locales du centre de l'espace de travail pour un appareil HandednessType.Left-handed. |
Vecteur3 | WorkspaceCenterRight Coordonnées locales du centre de l'espace de travail pour un appareil HandednessType.Right-handed. |
Vecteur3 | Centre de l'espace de travail Coordonnées locales du centre de l'espace de travail en fonction de la valeur Handedness. |
Matrice4x4 | Matrice LocalToWorld Matrice qui transforme l'espace du périphérique ou du curseur en espace mondial. |
Matrice4x4 | Matrice WorldToLocal Matrice qui transforme l'espace mondial en espace de l'appareil ou du curseur. |
Propriétés protégées
Nom | |
---|---|
Transformer | SpaceTransformationReference 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 :
- CursorSetForce pour appliquer une force au curseur,
- CursorSetPosition pour définir la position du curseur,
- JointsSetTorque pour appliquer un couple aux articulations du dispositif, ou
- JointsSetAngles pour définir les angles des articulations du dispositif.
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.
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é.