Anchors e Inlines.

Tutorial de VRML97

Anchors

Así como en HTML se pueden definir links (enlaces) a otros documentos, en VRML también se puede hacer. Esto se consigue mediante el node Anchor. Este nodo permite englobar a un objeto o conjunto de objetos sobre un mismo enlace, de forma que cuando el usuario señale uno de los objetos con el cursor y pulsa el botón del ratón, se genera el enlace y se abre el documento asociado, sea HTML, VRML o cualquier otra posibilidad.

Cada browser tiene su forma para indicar que un objeto es activo como enlace, pero en general se acostumbra a cambiar la forma del cursor, o aumentar la intensidad de color del objeto cuando se pasa el cursor por encima del mismo. Veamos un ejemplo:

 

Ejemplo 1: Definición de un enlace (anchor).


Anchor {
	children Shape {
		geometry Sphere { radius 2 }
		appearance Appearance { material Material { diffuseColor 0.8 0.5 0 } }
	}
	url "http://www.iua.upf.es/~npares/docencia/vrml/material/mater7.wrl"
}

Como se puede ver, solamente se han de incluir los objetos que queremos que sean enlaces como a hijos del node Anchor y ya tenemos el enlace hecho.

Hay un field que permite poner toda clase de parámetros referentes al enlace, por ejemplo a que frame ha de ir a parar el documento enlazado:


Ejemplo2: Definición de un anchor con TARGET.


Anchor {
	children Shape {
		geometry Box { size 1 1 1 }
		appearance Appearance { material Material { diffuseColor 0 0.2 0.8 } }
	}
	url "http://www.iua.upf.es/~npares/docencia/vrml/anchor/anchor.htm"
	parameter [ "target=nuevoframe" ]
}

Viewpoints como Anchors

Los nombres que damos a los puntos de vista, pueden servir como puntos de entrada al mundo desde otro mundo o desde un documento HTML, de la misma forma que podemos definir Anchors locales en HTML. La forma de hacerlo es añadiendo el nombre del punto de vista en la URL (dirección) del mundo poniéndole un símbolo "#" delante. Por ejemplo, el ejemplo de cambio de lente del capítulo anterior, podemos referenciarlo desde este documento como:

NOTA: En el momento de escribir el tutorial (21/00), el Cosmo Player no implementa esta propiedad.


Inlines

Hay veces que nos interesa incluir algún mundo ya creado dentro del que estamos construyendo. Esto puede ser para reutilizar objetos o porque es un mundo que no hemos creado nosotros. El node Inline nos permite hacer exactamente esto.


Ejemplo3: Definición de un Inline.


Shape {
	geometry Cylinder { height 8 radius 0.2 }
	appearance Appearance { material Material { diffuseColor 0 0.2 0.8 } }
}

Inline {
	url "http://www.iua.upf.es/~npares/docencia/vrml/anchor/anchor1.wrl"
}

Lo que hemos hecho ha sido incluir en este nuevo mundo, el código del primer ejemplo de este apartado. Por lo tanto, aparece el cilindro definido en este mundo, más la esfera definida en el primer ejemplo. Fíjense que la esfera es un anchor tal y como habíamos definido anteriormente, mientras que el cilindro que hemos definido en este ejemplo no lo es.

Se pueden poner más de una URL, separadas por comas y agrupadas dentro de corchetes [ ]. Con esto, definimos una lista en orden decreciente de preferencia. Por ejemplo, si el browser no puede acceder al archivo de la primera URL, entonces intenta acceder a la segunda, etc.

 

Ejercicios propuestos:

Las cuatro Primitivas
Defina cuatro mundos, donde cada uno tenga una primitiva diferente (cubo, esfera, cono y cilindro) y enlácelos haciendo que las primitivas sean enlaces. Los enlaces tienen que permitir pasar de una primitiva a otra sucesivamente y circularmente.
Comentarios
  • No cambiar de frame.
Solución propuesta: cub.wrl.




< Anterior | Menú ^ | Siguiente >