mouse


souris

La commande mouse peut avoir plusieurs interprétations:
1) Invoquée en mode interpreteur elle permet de saisir des données graphiques.
2) Invoquée en mode interaction elle retourne l´état instantanné de la souris.
3) comme option de frame, scale, text elle permet de préciser le mode de saisie (clic continu, clic ou continu).

Mode interpréteur
Mode interaction
Souris dynamique
Menu souris
mouse vol (désignation)
Voir aussi

















































Mode interpréteur

En mode interpréteur mouse passe en mode souris:
       Clic gauche: saisie d´un point.
       Clic milieu: supprime le dernier point saisi (en mode stream il faut bouger ce bouton).

menu
Options
utilisation

Menu

       Clic droit: donne un menu:
              clavier: retour au mode clavier (ou Echap).
              screen: efface l´écran.
              clic: saisie par clic gauche (par défaut).
              stream: saisie continue (gauche enfoncé).
              init: efface l´écran et annule la saisie.

Options:


end
func
mouse(n)
poi
validate


mouse end("f"): passe en mode souris en exécutant la fonction f() au retour en mode clavier.

mouse func("f"): asse en mode souris en exécutant la fonction f() à chaque image.
mouse func(0,"f"): passe en mode souris en exécutant la fonction f() une seule fois au début du mode souris.
mouse(n): retourne au mode clavier après la saisie de n points.
Exemple: mouse(1): pour saisir un seul point.
mouse(s)poi(0): encadre la souris.
mouse(s)poi(1): encadre la première position et la position actuelle.
mouse(0)poi(2): encadre la première position et la position actuelle, retorne la première et la dernière position si la souris est relachée, sinon retourne NIL.
mouse(s)poi(p): (p=0), sinon .
Utile pour saisir un cadre dans une image (voir demo1_image.func dans la fonction func_WIN()).
validate mouse retourne la liste des coordonnées des points cliqués.

Exemples d´utilisation:

1) generate mouse image(id);
        Passe en mode souris, cliquer 2 points, la portion d´image intérieure au cadre correspondant est stockée dans l´image id.
2) mouse
        Passe en mode souris, cliquer gauche pour saisir des points, ..., bouton droite->clavier pour retourner en mode interpréteur.
p=validate mouse
        retourne dans p la ligne polygonale saisie.

Mode interaction

mouse

Retourne: x,y,0,num,down avec:
       x,y: coordonnées de la souris -DX/2 <=x < DX/2 et -DY/2 <=y < DY/2
              où (DX,DY) = dimensions de l´écran (données par dim screen).
       num: numéro du bouton enfoncé: 0 (gauche), 1 (milieu), le bouton de droite donnant le menu de l´interaction.
       down: 1 (un bouton est enfoncé), 0 (aucun bouton n´est enfoncé).
Options:
mouse(0): lecture bloquante (par défaut).
mouse(1): lecture non bloquante.
mouse(2): lecture continue (sans clic).

mouse(x,y)

Modifie la dernière position de la souris en x,y.
Options:
mouse(x,y,n): change le nombre de positions saisies de la souris en n.

acc      average
col
dim      dist      draw
frame
ini      input
limit
mode      module
normal
poi
pull
radius
speed
traj
Exemples

acc

Retourne l´accélération (ax,ay,az) du déplacement de la souris en mode 2.

average(n)

Retourne la valeur moyenne de la souris sur n images (1 <= n <= 250).

col(r,v,b)

Affiche le cadre ou le disque dans la couleur (r,v,b) (blanc par défaut).

mouse draw

Affiche un cadre à la position courante.
Options:
col(r,v,b): couleur r,v,b (blanc par défaut).
frame(f): n´affiche pas le cadre si f==0.
radius(rx,ry): taille rx,ry (6,6 par défaut).
segment: affiche une croix.
Exemple:
mouse draw frame(0)segment col(0,1,0)radius(12,6);
       Affiche une croix verte de taille 24,12.

dist(d)

Ne saisit que des points distants de plus de d. Il est nécesaire de faire: ini mouse une seule fois avant la saisie.
Voir un exemple dans la fonction func_SOURIS_DISQUE() du fichier demo1_limit.func.
Pour saisir plusieurs cadres sans ambiguité voir l´option dist.

frame(rx,ry)

Un cadre de dimensions (rx,ry) est affiché à la position haute de la souris.

ini

Doit être invoqué une seule fois avant mouse dist.

input

Permet de saisir un cadre: clique gauche puis déplacer la souris avec le bouton gauche enfoncé: un cadre est affiché. Relacher le bouton, la commande retourneles 4 coordonnées du cadre.
Options:
col(r,v,b): color of the frame (1,1,1 default).

limit (v1,v2)

Si la valeur retournée est de dimension 1, elles est limitées dans l´intervalle (v1,v2).
Exemple: mouse acc module limit(2,8);
Exemple: mouse speed limit(-10,-10,0, 10,10,0);
mouse limit(x1,y1,x2,y2); ne traite que les points intérieurs au cadre (x1,y1,x2,y2).
Options:
color(r,g,b[,rg,gg,bg]): de couleur r,g,b (blanc par défaut).
dim(nx,ny): le point retourné est un sommet de la grille de nx,ny vases qui est affichée dans la couleur rg,gg,bg de l´option color (blanc par défaut).
displ(r,v,b): affiche le cadre avec la couleur (r,v,b) (blanc par défaut).
frame(x1,y1,x2,y2)exec: Retourne (x1,y1,x2,y2) modifié (le coin le plus proche du clic de la souris prend cette position).
validate: retourne NIL si la souris est hors du cadre (x1,y1,x2,y2), retourne 0 si un bouton est enfoncé, sinon retourne -1.

Mode

mouse(0): clic non bloquant (par défaut): retourne s si clic gauche (en continu), sinon retourne NIL.
mouse(1): clic bloquant: retourne s à chaque clic gauche, sinon retourne NIL.
mouse(2): à la volée: retourne s (sans clic).

module

Rretourne le module de la valeur retournée.
Exemple:mouse acc module: retourne le module de l´accélération.

normal

Retourne (x,y,0)
x,y = coordonnées normalisées de la souris entre -.5 et .5
down = 1 (un bouton est enfoncé), 0 (aucun bouton n´est enfoncé).

(-.5,-.5)--|---------(0,-.5,0)------|(.5,-.5)
----------|------------------------|
----------|------------------------|
(-.5,0)---|---------(0,0)----------|(.5,0)
----------|------------------------|
----------|------------------------|
(-.5,.5)---|----------(0,.5)--------|(.5,.5)

mouse normal(x1,y1,x2,y2) retourne la position de la souris normalisée entre (x1,y1) et (x2,y2).
Exemple:
mouse normal(0,0,1,1): retourne la position de la souris normalisée entre 0 et 1.



mouse pull: affiche segment(dernière position, mouse up).



mouse radius: retourne le rayon de la souris.
mouse radius=r: modifie ce rayon (12 par défaut).
Remarque: un cercle de rayon r est affiché sur la position de la souris.

mouse speed: retourne la vitesse (vx,vy,0) des déplacements de la souris en mode 2.
Exemples:
mouse speed limit(-10,-10,-10,10,10,10);
mouse speed module limit(2,8);
mouse speed(0) module limit(2,8);

mouse traj

mouse traj t vol(id)

        Retourne la propriété mousede la trajectoire de type t du volume id.

mouse(c)traj t vol(id)

        Modifie cette propriété.
Remarquee:
la trajectoire de type t du volume id est modulée par c * pos, où pos est la position normalisée de la souris en mode lecture continue.

Exemples

1) mouse disk(50,75,100): Retourne la position de la souris limitée au disque de centre (50,75) et de rayon 100.
2) Voir la fonction func_func_SOURIS_DISQUE() du fichier demo1_limit.func.
Pour saisir plusieurs rayons de disques sans ambiguité voir l´option dist.
limit(x1,y1,x2,y2): ne considère que les points intérieurs à la fenêtre (x1,y1,x2,y2).

Souris dynamique

Stockage        adjust
compute        col
dim        dynamic dist        dynamic displ
end        line        limit
normal
radius
smooth        speed
tan        time
var
speed

mouse dynamic

       Stocke un échantillons.

compute

Lorsque n échantillons ont été stockés l´analyse des propriétés dynamique de la souris sont calculées.

mouse dynamic displ

       La courbe mémorisée est affichée (en blanc) ainsi que la tangente (en rouge), la normal (en vert) et le cercle de courbure(centré au centre de courbure et de rayon le rayon de courbure).

mouse dynamic dim

       Retourne le nombre de valeurs affichées.

mouse dynamic dim(n)

       Modifie ce nombre.

mouse dynamic adjust

       Retourne le coefficient d´ajustement.

mouse dynamic ajsut(1)

       Modifie ce coefficient.
Remarque: La saisie d´un point est ajustée en fonction des 2 saisies précédentes.

mouse dynamic col

       Retourne les couleurs de la courbe, de la tangente et de la normal.

mouse dynamic col(rc,vc,bc, rt,vt,bt, rn,vn,bn)

       Modifie ces couleurs.

mouse dynamic dim

       Retourne le nombre d´échantillons stockés.

mouse dynamic dim(n)

       Déclare un buffer stockant l´analyse dynamique de la souris sur n échantillons (n >= 3).
Remarque:
Il est nécessaire d'invoquer cette commande pour lancer la souris dynamique (dim(15) est une bonne valeur).

mouse dynamic dist

       Retourne la distance minimum de 2 échantillons stockés (5 par défaut). h3>mouse dynamic dist(d)        Modifie cette distance.

mouse dynamic end

       Pour sortir proprement du mode souris dynamique.

mouse dynamic line

       Retourne le buffer 3D (t,x,y) des n valeurs stockées.

mouse dynamic limit

       Retourne la limite de la saisie.

mouse dynamic limit(x1,y1,x2,y2)

       Limite la saisie au cadre (x1,y1,x2,y2).
Options:
limit(x1,y1,x2,y2,r,v,b): affiche le cadre dans la couleur (r,v,b) (blanc par défaut).

mouse dynamic smooth

       Retourne le coefficient de lissage.

mouse dynamic smooth(d)

       Modifie ce coefficient.
Remarque: Les points éloignés de plus de d seront lissés.

mouse dynamic normal

       Retourne le vecteur unitaire de la normale à la souris.

mouse dynamic radius

       Retourne le rayon de courbure.

mouse dynamic tan

       Retourne le vecteur unitaire tangent à la souris.

mouse dynamic time

       Retourne le tempo (1000 par défaut).

mouse dynamic time(t)

       Modifie ce tempo.
Remarques:
1) La 1ère composante est le temps en 1/tempo de secondes auquel a été saisi l´échantillon.
2) Cette commande modifie la periode.
3) Une bonne valeur est 1000.

mouse dynamic var

       Retourne la longueur de la ligne stockée.

mouse dynamic speed

       Retourne la vitesse curviligne.

Menu souris

mouse menu("MEN")

       Retourne le mode de saisie de la souris pour le menu("MEN") (1 par défaut, c´est à dire clic).

mouse menu("MEN")=s

       Modifie ce mode.
Remarque:
mouse menu("MEN")=s1,s2,... permet d´affecter un mode particulier pour chaque case.

mouse vol

mouse vol

       Opération de picking: retourne (v,s) avec v = numéro du volume et s = numéro du sommet cliqué, sinon NIL, et modifie le point désigné en l´amenant sur la position de la souris si l´option pull est présente.
Retourne NIL si aucun volume n´est désigné
Remarque: la désignation se fait en no pers, pour avoir d´autres vues employer l´une des options pers left right front behind above below, voir demo1_mouse.func.
Options:
above: vue de dessus.
abs: en cas de mauvais fonctionnement.
behind: vue de derrière.
below: vue de dessous.
col(r,v,b): couleur du cadre de saisi.
disk(r,n): affiche un cercle centré sur la souris , de rayon r et de n côtés (n = 12 par défaut), la recherche du point a lieu dans ce cercle.
displ: affiche le numéro du volume et numéro du sommet cliqué.
front: vue de face.
left: vue de gauche.
limit(x1,y1,x2,y2): Ne saisit que les points intérieurs au cadre (x1,y1,x2,y2) qui est affiché dans la couleur (r,v,b) (blanc par défaut).
number: affiche les numéros du volume et du sommet désigné.
pers: en perspective.
pull: le point désigné prend la position (xs,ys) de la souris.
Les numéros du volume et du sommet désignés sont retournés.
vol(vid): ne désigne que les sommets du volume id (tous les volumes par défaut).
Voir demo1_pull.func pour saisir des points selon différentes vues (front, behind, below, above, right et left).

Voir aussi:

ang mouse
dim mouse
edit mouse
generate image mouse
graphic mouse
interaction mouse
no mouse
tran inv vol mouse
validate mouse
yes mouse