Nodos o Node:
La base del VRML son los Nodos (el elemento básico).Todo lo que ocurre en VRML sucede en un Nodo. Y estos nodos tienen un nombre que los identifica como Box, Sphere, Coordinate, Shape... El nombre de un Nodo siempre comienza con una mayúscula, seguido de un espacio y luego una llave que abre . Entre la llave abierta y la llave que cierra este bloque de código se definen los campos (fields) del nodo. Como ya lo vimos en el ejemplo de la entrega anterior.
}
Cabe preguntarse ¿qué hay dentro de un nodo? Bueno esto depende de qué nodo sea. Algunos tienen cantidad de información, mientras que otros tienen muy poca. Cualquier información de un Nodo esta ubicada en un campo de este nodo. Estos campos tienen nombre, pero comienzan con una letra minúscula. Por ejemplo nosotros ya conocemos el nodo Sphere y su campo radius, el que especifica el valor del radio de la esfera.
¿Cómo sabemos lo que va adentro de un campo? Cada nodo tiene campos y estos son de un tipo específico de dato (data). Esta información o dato puede ser de carácter alfanumérico, numérico, color ... Todos los tipos de datos tienen nombre y comienzan con SF (Single File) cargan un solo valor o MF (Multiple File) cargan más de un valor, o sea múltiples valores encerrados entre corchetes []. Ejemplo:
MFColor [ 1 1 1 ]
SFBool, MFBool | TRUE o FALSE. Verdadero o Falso. |
SFFloat, MFFloat | Un valor con punto flotante.
Es un número con coma o punto decimal.
Ejemplo: 1.05 |
SFColor, MFColor | Un color triple. Definido
por RGB, con valores decimales entre 0 y 1.
Ejemplo: 0.5 0.5 0.5 (gris) |
SFInt32, MFInt32 | Un valor entero. El rango va desde: 2.147.483.647 hasta -2.147.483.648 |
SFString, MFString | Una cadena de caracteres. "Hola" debe ir entre comillas. |
SFVec3f, MFVec3f | Un vector tridimensional, con tres valores por cada punto ubicado en cada coordenada: x, y, z. Estos valores pueden expresarse en decimales. Ejemplo: 1 3 2.20 Separados por espacios. |
SFVec2f, MFVec2f | Un vector de dos dimensiones: x, y Por ejemplo: 12 15.2 |
SFNode, MFNode | Aquí un nodo se define como el contenido de un campo. De esta manera los nodos pueden anidarse, ubicándose uno dentro de otro. Esto permite mayor flexibilidad al lenguaje. |
Con estos conceptos básicos podemos comenzar a trabajar. Abrimos el editor de texto que poseemos o mejor si es el Programmer's File Editor y escribimos el encabezado :
Para agregar un objeto hacemos uso del nodo Shape y conectamos el campo apariencia (appearance) con la forma del objeto (geometry). Los campos apariencia y geometría definen las características visibles y la forma de un objeto.
Volviendo a las formas, VRML tiene 4 formas construidas por defecto: Esfera, Caja ,Cono y Cilindro.
Campos de las figuras:
Esfera:
}
height #SFFloat por defecto 2.0
side #SFBool por defecto TRUE
top #SFBool por defecto TRUE
}
bottom #SFBool por defecto TRUE
height #SFFloat por defecto 2.0
radius #SFFloat por defecto 1.0
side #SFBool por defecto TRUE
top #SFBool por defecto TRUE
}
#VRML V2.0 utf8
#Este es nuestro primer ejercicio
#Muestra una esfera
Shape { #define el nodo figura
geometry #define el campo geometría
Sphere { #define el nodo esfera
radius 1.0 #define por defecto 1
} #cierra Esfera
} #cierra Figura y el archivo
Ejercicio Nº 2:
#VRML V2.0 utf8
#Este es nuestro segundo ejercicio
#Muestra una Caja
Shape { #define el nodo figura
geometry #define el campo geometría
Box { #define el nodo Caja o Cubo
size 1 1 1 #define por defecto lado de 1
} #cierra Cubo
} #cierra Figura y el archivo
Ejercicio Nº 3:
#VRML V2.0 utf8
#Este es nuestro tercer ejercicio
#Muestra un Cono
Shape { #define el nodo figura
geometry #define el campo geometría
Cone{ #define el nodo Cono
bottomRadius 1.0
height 2.0
} #cierra Cono
} #cierra Figura y el archivo
Ejercicios Opcionales:
Para aquellos que tengan tiempo y ganas de seguir practicando les propongo estos ejercicios:
Cualquier consulta o comentario [email protected]