VRML Worlds, Mondes VRML

Membre de ClickFR, Reseau francophone Paie-Par-Click

Récupérer les mouvements de la souris : Le PlaneSensor

Pré requis : Utilisation de DEF et USE, ROUTE

Type Champ Defaut Borne Utilisation
SFBool autoOffset TRUE - Mémorise ou pas la dernière position du pointeur de l'utilisateur
SFBool enabled TRUE - Active le PlaneSensor
SFVect2f maxPosition -1 -1 - Limite les valeurs envoyés par le translation_changed
SFVect2f minPosition 0 0 - Limite les valeurs envoyés par le translation_changed
SFVect3f offset 0 0 0 - Permet d'ajouter des valeurs à l'événement translation_changed.
SFBool isActive   - Envoie un événement lorsque l'utilisateur commence à déplacer son pointeur et lorsqu'il arrête de déplacer ce pointeur.
SFVect3f trackPoint_changed   - Retourne la position du pointeur (non limitée par maxPosition et minPosition) sur le plan d'intersection
SFVect3f translation_changed   - Retourne la position du pointeur relative à la première initiale du pointeur.

Le PlaneSensor permet de récupérer le mouvement de la souris sur un plan de la scène. Les coordonnées du pointeur se déplaçant sur ce plan sont en deux dimensions.

Le PlaneSensor utilise le plan Z=0, c'est le plan qui est parallèle à la fois à l'axe X et Y, le plan qui se trouve par défaut face à un utilisateur regardant "Tout droit", "vers le nord".

Le plan utilisé par le PlaneSensor est lié aux coordonnées du système dans lequel le noeud se trouve. C'est à dire que vous pouvez déplacer ou tourner ce plan grâce au noeud Transform.

Les événements générés par le PlaneSensor sont propagés aux noeuds du groupe et à ses fils.

Exemple 1 - Utilisation de translation_changed

Premier exemple très simple, on déplace une sphere sur un tapis, en fonction du déplacement du pointeur de l'utilisateur.

Voir le résultat - Voir la source

Exemple 2 - Utilisation de trackPoint_changed

C'est le même exemple que le premier, avec l'utilisation de trackPoint_changed. Vous remarquerez que la position n'est plus relative à la première position du pointeur, vous déplacez la sphère à l'endroit excat où vous cliquez. Vous remarquez aussi que le déplacement n'est pas limité par les maxPosition et minPosition.

Voir le résultat - Voir la source

Exemple 3 - Utilisation de autoOffset et translation_changed

Le même exemple que le premier, mais avec autoOffset à FALSE.

Lorsque autoOffset est à TRUE, à la fin d'un déplacement, le translation_changed est recopié dans offset. Ainsi, un nouveau déplacement repart de la dernière position de la sphere (voir exemple 1).

Lorsque Offset est à FALSE, offset reste toujours à 0 0 0. Dans l'exemple, vous verrez que la sphere repart toujours du centre du carré.

Voir le résultat - Voir la source

Exemple 4 - Jouer avec le noeud Tranform

Dans cette exemple, vous pouvez utiliser la carré comme un tapis souris pour déplacer la sphère rouge, à gauche

Voir le résultat - Voir la source

Vous voila prêts à utiliser les PlaneSensor !

Retour au tutorials


 Accueil de VRML Worlds   CHAT 3D   Autres technologies Web3D 
 Des textures   Apprendre le VRML   Autres mondes multi-user 
 Les objets du chat   Outils pour le VRML   Autres sites 3D 

Réagir, nous proposer un site, participer ...