Anchors i Inlines.

Tutorial de VRML2.0

Anchors

Així com en HTML es poden definir links (enllaços) a altres documents, en VRML també. Això s'aconsegueix mitjançant el node Anchor. Aquest node permet englobar a un objecte o conjunt d'objectes sota un mateix enllaç, de manera que quan l'usuari senyala un dels objectes amb el cursor i prem el botó del mouse, es genera l'enllaç i s'obre el document associat, sigui HTML, VRML, o qualsevol altra possibilitat.

Cada browser té la seva manera d'indicar que un objecte és actiu com a link, però en general s'acostuma a canviar la forma del cursor, o pujar la intensitat del color de l'objecte quan es passa el cursor per sobre. Vejam un exemple:

Exemple1: Definició d'un link (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"
}

Com es pot veure, tan sols s'ha d'incloure els objectes que volem que siguin links com a fills del node Anchor i ja tenim l'enllaç fet.

Hi ha un field que permet posar tota mena de paràmetres referents al link, per exemple a quin frame ha d'anar a parar el document enllaçat:

Exemple2: Definició d'un anchor amb 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=nouframe" ]
}

Els Viewpoints com a Anchors

Els noms que donem als punts de vista, poden servir com a punts d'entrada al món des d'un altre món o des d'un document HTML, de la mateixa manera que podem definir Anchors locals en HTML. La manera de fer-ho és afegint el nom del punt de vista a l'URL (adreça) del món posant-hi un símbol de "#" davant. Per exemple, l'exemple de canvi de lent del mòdul de Punts de Vista, el podem referenciar des d'aquest document com:

NOTA: En el moment d'escriure el tutorial (01/97), el Cosmo Player no implementa aquesta propietat.


Inlines

Hi ha vegades que ens interessa incloure algun món ja creat dins d'un que estem construint. Això pot ser per a reutilitzar objectes o per que és un món que no hem creat nosaltres. El node Inline ens permet fer exactament això.

Exemple3: Definició d'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"
}

El que hem fet, ha estat incloure en aquest nou món, el codi del primer exemple d'aquest mòdul. Per tant, apareix el cilindre definit en aquest món, més l'esfera definida en el primer exemple. Fixeu-vos que l'esfera és un anchor tal i com haviem definit anteriorment, mentre que el cilindre que hem definit en aquest exemple no ho és.

Es poden posar més d'un URL, separats per comes i agrupats dins de corxets [ ]. Amb això definim una llista en ordre decreixent de preferència. Per exemple, si el browser no pot accedir l'arxiu del primer URL donat, llavors intenta amb el segon, etc.

Exercicis proposats:

Les Quatre Primitives
Definiu quatre mons, on cada un tingui una primitiva diferent (cub, esfera, con i cilindre), i enllaceu-los fent que les primitives siguin links. Els links han de permetre passar d'una primitiva a l'altra successivament i circularment.
Comentaris
  • No canvieu de frame.
Solució proposada: cub.wrl.




< Anterior | Menú ^ | Següent >