Sommaire Page precedente Page suivante page 21

Virtual Reality Modeling Language Specification

Annexe 2

Version 2.0,ISO/IEC WD 14772

6.1 Introduction

6.2 SFBool

6.3 SFColor et MF Color

6.4 SFFloat et MFFloat

6.5 SFImage

6.6 SFInt32 et MFInt32

6.7 SFNode et MFNode

6.8 SFRotation et MFRotation

6.9 SFString et MFString

6.10 SFTime

6.11 SFVec2f et MFVec2f

6.12 SFVec3f et MFVec3f

6.1 Introduction

Cette annexe est un extrait des specifications du vrml et decrit la syntaxe generale des fields et events.Les types definis dans cette annexe sont utilises pour les champs et evenement.

Il y a deux classes generales de champs et evenements; ceux qui contiennent une seule valeur (cette valeur peut etre un chifre un vecteur 3D ou une image..) et ceux qui contiennent de multiples valeurs.
Le nom des valeurs simple commence par SF
Le nom des valeurs multiples commence par MF

Les valeurs multiples sont ecrites comme une serie de valeurs entre crochets et separees par des espaces . Quand il n'y a aucune valeur, il y a seulement les crochets. Lorsqu'il n'y a qu'une valeur, les crochets peuvent etre homis. Par exemple, toutes ces ecritures sont valides pour une valeur multiple MFInt32:

   foo 1
   foo [1,]
   foo [ 1 ]

6.2 SFBool

Un champ ou evenement contenant une seule valeur booleenne.SFBool peut etre soit TRUE soit FALSE.

    fooBool FALSE

est un champ SFBool, fooBool, qui a pour valeur FALSE.

La valeur par defaut d'un eventOut SFBool est FALSE

6.3 SFColor/MFColor

SFColor specifie une couleur RGB, et MFColor zero ou plus couleurs RGB. Chaque couleur est ecrite comme un triplet de valeurs a virgules flottantes dans le format ANSI C comprise entre 0 et 1.Par exemple:

   fooColor [ 1.0 0. 0.0, 0 1 0, 0 0 1 ]

est un champ MFColor, fooColor, contenant les trois couleurs primaires.

La valeur par defaut d'un eventOut SFColor est (0 0 0). La valeur par defaut d'un eventOut MFColor est [ ].

6.4 SFFloat/MFFloat

SFFloat est une valeur unique a virgule flottante, et MFFloat est zero ou plusieurs valeurs a virgule flottante.SFFloat et MFFloat sont ecrits dans le format ANSI C.Par exemple:

    fooFloat [ 3.1415926, 12.5e-3, .0001 ]

est un champ MFFloat fooFloat,contenant trois valeurs a virgule flottantes.

La valeur par defaut d'un SFFloat est 0.0.La valeur par defaut d'un MFFloat est [ ].

6.5 SFImage

Le champ ou evenement SFImage contient une image a deux dimensions noncompressee. SFImage est ecrit comme une suite de trois entiers representant la largeur, la hauteur et le nombre de composants de l'image suivit par largeur*hauteur valeur hexadecimales separes par des espaces representant les pixels de l'image. Par exemple:

     fooImage <largeur> <hauteur> <nb composantsgt; <pixels>
     fooImage 1 2 1 0xFF 0x00

Pour avoir des precisions sur ces valeurs consulter la page 10 sur les textures.

La valeur par defaut d'un eventOut SFImage est (0 0 0).

6.6 SFInt32/MFInt32

Le champ ou evenement SFInt32 est un entier 32 bits,et MFInt32 est zero ou plusieurs entier 32 bits.Ils s'ecrivent sous forme decimale ou hexadecimale (commencant par 0x).Par exemple:

    fooInt32 [ 17, -0xE20, -518820 ]

est un champ MFInt32 comtenant trois valeurs.

La valeur par defaut d'un eventOut SFInt32 est 0. La valeur par defaut d'un eventOut MFInt32 est [ ].

6.7 SFNode/MFNode

Le champ ou evenement SFNode est un noeud vrml,et MFNode est un ou plusieurs noeuds vrml.L'exemple suivant donne la syntaxe exacte pour un MFNode contenant quatre noeuds.

    fooNode [ Transform { translation 1 0 0 }
              DEF CUBE Box { }
              USE CUBE
              USE AUTRE_NOEUD ]

SFNode et MFNode peuvent contenir le mot-clef NULL pour indiquer qu'ils sont vides.

La valeur par defaut d'un eventOut SFNode est NULL. La valeur par defaut d'un eventOut MFNode est [ ].

6.8 SFRotation/MFRotation

Le champ ou evenement SFRotation designe une rotation sur trois axe,MFRotation en designe zero ou plus.SFRotation et MFRotation sont ecrits comme une suite de quatres virgules flottantes separes par des espaces.Les trois premieres valeurs sont les axes X Y Z et la derniere l'angle en radians.

    fooRot 0.0 1.0 0.0  3.14159265

La valeur par defaut d'un eventOut SFRotation est (0 0 1 0). La valeur par defaut d'un evebtOut MFRotation est [ ].

Vous pouvez imprimer cette table, elle est tres pratique.
             TABLE  DE  CONVERTION  DEGRES  RADIANS 


DEGRES RADIANS    DEGRES RADIAN   DEGRES RADIANS   DEGRES RADIANS
    0    0          90    1.57      180    3.14      270    4.71
   10    0.17      100    1.74      190    3.32      280    4.89
   20    0.35      110    1.92      200    3.49      290    5.06 
   30    0.52      120    2.09      210    3.66      300    5.24
   40    0.70      130    2.27      220    3.84      310    5.41
   45    0.78      135    2.36      225    3.93      315    5.50 
   50    0.87      140    2.44      230    4.01      320    5.58
   60    1.05      150    2.62      240    4.19      330    5.76
   70    1.22      160    2.79      250    4.36      340    5.93
   80    1.40      170    2.97      260    4.54      350    6.11

6.9 SFString/MFString

Les champs ou evenements SFString et MFString contiennent des caracteres formates selon le jeu de caracteres universels UTF-8.SFString contient une chaine de caracteres, MFstring en contient zero ou plus.Une chaine de caracteres est une sequence d'octets UTF-8 entre guillemets.

Des caracteres (saut de ligne et #) peuvent apparaitre.Pour inclure des guillemets dans une chaine,faites les preceder d'un backslash \.Por inclure un backslash dans une chaine tappez en deux.Par exemple:

    fooString [ "Un, Deux, Trois", "Il dit, \"Immel fait le!\"" ]

est un eventOut MFString avec deux chaines valides.

La valeur par defaut d'un eventOut SFString est quot;quot;. La valeur par defaut d'un eventOut MFString est [ ].

6.10 SFTime/MFTime

Le champ ou evenement SFTime est une valeur temps,MFTime en represente zero ou plus.Les valeurs temps sont une valeur double precision a virgule flottante Typiquement, SFTime represente le nombre de secondes depuis le 1 janvier 1970.

La valeur par defaut d'un eventOut SFTime est -1. La valeur par defaut d'un eventOut MFTime est [ ].

6.11 SFVec2f/MFVec2f

Un champ ou evenement SFVec2f designe un vecteur a deux dimensions,un MFVec2f en designe zero ou plusieurs.Ils sont ecrits comme une paire de valeurs a virgule flottante separes par un espace.Par exemple

    fooVec2f [ 42 66.6, 7.1 94 ]

est un champ MFVec2f avec deux vecteurs valides.

La valeur par defaut d'un eventOut SFVec2f est (0 0). La valeur par defaut d'un eventOut MFVec2f est [ ].

6.12 SFVec3f/MFVec3f

Un champ ou evenement SFvec3f est un vecteur tri-dimensionnel,un MFvec3f en designe zero ou plusieurs.Ils sont ecrits comme trois valeurs a virgules flottantes separes par des espaces.Par exemple:

    fooVec3f [ 1 4.2 666, 7 9.4 0 ]

est un champ MFVec3f avec deux vecteurs valides.

La valeur par defaut d'un eventOut SFVec3f est (0 0 0). La valeur par defaut d'un eventOut MFVec3f est [ ].