|
|
|
Membre de ClickFR, Reseau francophone Paie-Par-Click |
|
|
Pré requis : Utilisation de DEF et USE, ROUTE, PlaneSensor
Type | Champ | Defaut | Borne | Utilisation |
SFBool | autoOffset | TRUE | - | Mémorise ou pas la dernière position du pointeur de l'utilisateur |
SFFloat | DiskAngle | 0.262 | 0 - 2PI | Delta d'angle minimum envoyé par la rotation_Changed |
SFBool | enabled | TRUE | - | Active le CylinderSensor |
SFFloat | maxAngle | -1 | -2PI - 2PI | Limite les valeurs envoyés par le rotation_Changed |
SFFloat | minAngle | 0 | -2PI - 2PI | Limite les valeurs envoyés par le rotation_Changed |
SFFloat | offset | 0 | - | Permet d'ajouter des valeurs à l'événement rotation_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. | |
SFRotation | rotation_changed | - | Retourne l'angle de rotation relatif, par rapport à l'emplacement initial du pointeur | |
SFVect3f | trackPoint_changed | - | Retourne le point d'intersection entre le pointeur et de cylindre |
Le CylinderSensor permet de récupérer le déplacement du pointeur de la souris sur un axe horizontal et de la transformer en angle de rotation, pour cela il utilise un cylindre (ou un disque) invisible de taille 1 sur l'axe Y ("Debout" par rapport à l'utilisateur).
Le Cylindre utilisé par le CylinderSensor 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 cylindre grâce au noeud Transform.
Les événements générés par le CylinderSensor sont propagés aux noeuds du groupe et à ses fils.
En gardant le bouton de la souris appuyé, déplacez la souris sur le cylindre. L'angle de rotation généré est appliqué au cube
Voir le résultat - Voir la source
trackPoint_Changed permet de récupérer l'intersection entre le pointeur et le cylindre utilisé par le CylinderSensor
Ici, on déplace une petite sphère à droite sur le cylindre de droite (ceci est possible grace au noeud transform, qui permet de changer le repère de la scène) pour montrer le point d'intersection entre le pointeur et le cylindre de gauche.
En gardant le bouton de la souris appuyé, déplacez le curseur sur le cylindre de gauche.
Voir le résultat - Voir la source
Lorsque autoOffset est à TRUE, à la fin d'un déplacement, le translation_changed est recopié dans offset. Ainsi, une nouvelle action de l'utilisateur part au dernier angle envoyé par le rotation_changed, et non depuis 0 (voir exemple 1).
Lorsque Offset est à FALSE, offset reste toujours à 0 0 0. La rotation repart donc toujours de l'origine du clique.
L'utilisation de l'autoOffset est illustré pour le noeud PlaneSensor.
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 |