advancedtouch

Description :

Le noeud advancedTouch est un touchSensor plus sophistiqué. Sa particularité est de pouvoir détecter les "simple clic" et les "double clics"

Télécharger

Syntaxe :

advancedTouch {
	exposedField 	SFTime 		latence 	0.3 
	eventOut 	SFBool 		sensB
	eventOut 	SFInt32		sensN
	# propriété commune avec un touchSensor standard...
	exposedField	SFBool		enabled 	TRUE 
	eventOut 	SFVec3f 		hitNormal_changed
	eventOut 	SFVec3f 		hitPoint_changed
	eventOut 	SFVec2f 		hitTexCoord_changed
	eventOut 	SFBool 		isActive
	eventOut 	SFBool 		isOver 
}

Propriétés :

C'est un dérivé du touchSensor standard. Il a donc une majorité de propriétés communes. Il en possède toutefois 3 nouvelles qui lui sont propres :

latence : exposedField de type SFTime, elle permet de régler la "vitesse" du double clic. Par défaut; le temps maxi entre 2 clics est de 0.3 seconde.
sensB : eventOut de type SFBool, renvoie un évènement TRUE ou FALSE.
TRUE signifie un doube clic, FALSE un simple clic.
sensN : eventOut de typ SFInt32, renvoie un évènement valant 1 ou -1.
1 signifie un double clic, -1 un simple clic.

Particularités :

Ce noeud ne renvois pas d'évènement explicite touchTime. Mais ce touchTime est implicitement créé par les eventOut sensB et sensN. Pour récupérer la valeur du touchTime utilisez un script de ce genre :

DEF moncapteur advancedTouch{
	}
DEF monscript Script {
	eventIn SFBool touchB	#ou bien...
	eventIn SFBool touchN
	eventOut SFTime touchtime
	url "javascript:
		function touchB(val,t){
			touchtime = t ;
		}
		#ou bien...
		function touchN(val,t){
			touchtime = t ;
		}
	"
}
ROUTE moncapteur.sensB TO monscript.touchB
#ou bien...
ROUTE moncapteur.sensN TO monscript.touchN
ROUTE monscript.touchtime TO autrenoeud.propriété_SFTime
Quel que soit le type de clic (simple ou double) détecté, la valeur du touchTime ainsi récupérée vaut en fait : temps du premier clic + latence.

Compatibilité :

Ce proto est écrit en VRML97 en tenant compte de la norme de script ECMA. A ce titre, il est théoriquement compatible avec tous les plugins VRML respectant ces deux normes. Je l'ai testé avec succès sur les plugins suivants :
Logo Contact BS Contact 6.1 de Bitmanagement.
Logo Blaxxun Contact 5.1 de Blaxxum.
Logo Cosmo Player Cosmo Player 2.1 de Cosmo Software.
Logo Cortona Cortona VRML client 4.0 de ParallelGraphics.

Si vous l'utilisez avec un autre navigateur et qu'il ne fonctionne pas, merci de me contacter pour me le signaler.

Valid XHTML 1.0 Strict Valid CSS!