domingo, 22 de abril de 2012

NODO TEXTO

En los mundos virtuales será a menudo necesario utilizar textos para guiar al visitante Para ello existe un nodo específico, el nodo Text. Una de las principales características de los textos es que son planos, es decir, no tienen profundidad.  
 
Nodo Text:  
  
     Como en cualquier procesador de textos, se nos permitirá indicar el tipo de fuente, su estilo, su tamaño, el espaciado entre caracteres, justificación de los parrafos, etc.  Sintaxis:
        Text {          string ["linea_texto"
    "linea_texto 2", 
    .
    .
    .
     "linea_texto N",] 
    fontStyle FontStyle {  
                                                family "Nombre_Fuente",                                              style "Estilo_Fuente",                                              size Tamaño_Fuente                                              spacing espaciado_entre_caracteres                                              justify "justificación_del_texto"                                            }      }   
     Como se puede apreciar el nodo Text posee dos campos:  string:  
     Aquí se introduce el texto que se desea visualizar.  

fontStyle: 
     Este segundo campo es opcional, de forma que si se omite, el texto tendrá el estilo de la fuente por defecto. 
Siempre que aparezca este campo tomará como valor el nodo llamadoFontStyle.  






Nodo FontStyle:  
 
Sintaxis:
    FontStyle {
    family "Nombre_Fuente",
    style "Estilo_Fuente", 
    size Tamaño_Fuente 
     spacing espaciado_entre_caracteres 
     justify "justificación_del_texto"
      }    
     Los posibles valores de los campos del nodo FontStyle son los que se muestran a continuación: 
 
family: 
     Determina la fuente que se va a utilizar para el texto. Se puede escoger entre "SERIF", "SANS" o "TYPEWRITER". Obsérvese que los nombres están en mayúsculas.  
  

style 
     Se puede escoger entre "BOLD" (negrita), "ITALIC" (cursiva), "BOTH" (negrita y cursiva) o "NONE" (tipo de letra normal).  
 

size:  
     Determina el tamaño de la fuente, pero en unidades VRML.  
 

spacing:  
     Determina la separación entre líneas, también en unidades VRML.  
 

justify:
     Determina la justificación del texto. Puede ser "BEGIN" (Alinear a la izquierda), "MIDDLE" (centrar el texto) o "END" (Alinear a la derecha).   

 

Ejemplo:
        Text {
    string ["Esta es la primera fila de texto",
    "esta es la segunda fila",
    "etc."]
    fontStyle FontStyle {
    family "SERIF",
    style "BOLD",
    size 1.0
    spacing 1.0  
    justify "BEGIN"
    } 
     De igual forma que con los nodos geométricos primitivos, mediante el nodo Text lo único que se consigue es definir la estructura del texto, sin embargo no se puede visualizar, ya que no hemos indicado como se ha de presentar en el mundo virtual. Para conseguir esto, se integra en el nodo Shape, de la misma manera que se hacía con los nodos primitivos: 
  


    Shape { 
    appearance ... 
    geometry Text { ... }
 
 
 
     Una vez que  el texto se encuentra en el mundo virtual se puede manipular como cualquier otro objeto (girándolo, etc.), ya que lo único que lo diferencia de los nodos primitivos es que posee dos dimensiones en lugar de tres.  
  Ejemplo: 

    #VRML V2.0 utf8
    Shape{
    appearance Appearance{
    material Material {}
    }
    geometry Text {
    string ["Esta es la primera fila de texto"
    "esta es la segunda fila", 
    "etc."]
    fontStyle FontStyle {   
    family "SERIF",
     style "BOLD",
     size 1.0
    spacing 1.0 
     justify  "BEGIN"  
    }
    }