Senseurs
La plupart des senseurs permettent de détecter une activité de l'utilisateur et de provoquer une réaction de l'environnement virtuel.
TouchSensor
Ce type de senseur détecte si l'utilisateur clique sur un objet. Dans ce cas, un évenement de sortie touchTime est généré, celui-ci pouvant être routé sur un évenement d'entrée d'un autre objet.
#VRML V2.0 utf8 NavigationInfo
{ Viewpoint
{ Viewpoint
{
Transform
{ ROUTE ecran.touchTime TO movie.startTime |
PlaneSensor
Ce senseur permet de déplacer des objets dans un plan X Y. Un évenement translation_changed, vecteur 3D, est généré lorsque un mouvement est détecté sur ce senseur, cet évenement peut être routé sur la position d'un objet pour le déplacer. Ce senseur possèdent, entre autres, les champs suivants :
CylinderSensor
Le noeud CylinderSensor définit un senseur envoyant un évenement de sortie rotation_changed, sur l'axe Y, lorsqu'il est utilisé. Cet évenement peut être routé vers un évenement d'entrée set_rotation d'un objet pour modifier son orientation. Il existe en particulier les champs suivants dans un noeud CylinderSensor :
SphereSensor
Ce senseur agit de la même manière que CylinderSensor à l'exception qu'il génère une rotation 3D pouvant également être routé vers un évenement set_rotation d'un objet.
#VRML V2.0 utf8 Viewpoint
{ DEF
forme Transform { Transform
{ Transform
{ Transform
{
|
Anchor
Le noeud Anchor permet de rediriger l'utilisateur sur une autre page Web lors d'un clic sur la forme définie dans ce noeud. Les champs principaux sont children définissant les enfants de l'Anchor et url liant avec la page Web ciblée.
#VRML V2.0 utf8 Viewpoint
{ Anchor
{
|
Collision
Le noeud Collision permet de détecter une collision entre l'utilisateur et les objets décrits dans son champ children. Ce noeud génère alors un évenement de sortie collideTime qui peut être routé pour lancer une animation. Le champs collide du noeud Collision spécifie si les objets enfants peuvent être traversés ou non.
#VRML V2.0 utf8 Viewpoint { position 0 0 2 } DEF
sphere Collision {
url "javascript:
directOutput TRUE
|
TimeSensor
Un noeud TimeSensor spécifie une animation dépendant d'un timing, celle-ci est cyclique si le champ loop du noeud est à TRUE. Le champs cycleInterval détermine la durée d'un cycle en secondes. Ce noeud possède également les champs startTime et stopTime définissant les temps de départ et de fin absolus de l'animation. Ces champs, exposedField, peuvent être utilisé lors d'un routage.
#VRML V2.0 utf8 NavigationInfo { type "EXAMINE" } DEF
timer TimeSensor { DEF
boite Transform { DEF
rotation OrientationInterpolator { DEF
color ColorInterpolator { ROUTE
timer.fraction_changed TO rotation.set_fraction |
Il existe également les noeuds ProximitySensor et VisibilitySensor qui respectivement détectent la proximité de l'utilisateur avec un objet et la visibilité qu'à l'utilisateur d'une zone rectangulaire.