Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Un semplice esempio di implementazione di Java in VRML

Link copiato negli appunti

(Seconda parte: i codici)

Sorgente completo del file VRML

#VRML V2.0 utf8
# esempio di implementazione di Java
Viewpoint {
position 0 0 10
}
Background {skyColor [0 0 0] groundColor
[ 0 0 0 ] }
NavigationInfo {
type [ "NONE" ]
}
transform {
translation -4.8 -1 -1
children[
Shape {
appearance Appearance {
material Material { diffuseColor 1 1 1 }
}
geometry Text
{ string "Rosso"
fontStyle fontStyle {size 1.5}
}
}
DEF sensore_rosso TouchSensor {}
]
}
transform {
translation -1 -1 -1
children[
Shape {
appearance Appearance {
material Material { diffuseColor 1 1 1 }
}
geometry Text
{ string "Verde"
fontStyle fontStyle {size 1.5}
}
}
DEF sensore_verde TouchSensor {}
]
}
transform {
translation 3 -1 -1
children[
Shape {
appearance Appearance {
material Material { diffuseColor 1 1 1 }
}
geometry Text
{ string "Blu"
fontStyle fontStyle {size 1.5}
}
}
DEF sensore_blu TouchSensor {}
]
}
# definizione del nodo cono
# e creazione al suo interno del nuovo
nodo conoMaterial
# il quale gestisce il colore del cono

DEF cono transform {
translation 0 2 -2
children [
Shape {
appearance Appearance {
material DEF conoMaterial Material { diffuseColor 0.75 0.75
0.75}
}
geometry Cone { bottomRadius 1.5
height 3}
}
]
}
# definizione del nodo script e dichiarazione
dei suoi campi
DEF cambio_colore Script {
directOutput trUE
field SFNode coloreMaterial USE conoMaterial
eventIn SFTime set_rosso
eventIn SFTime set_verde
eventIn SFTime set_blu
url "RGB.class"
}
ROUTE sensore_rosso.touchTime TO cambio_colore.set_rosso
ROUTE sensore_verde.touchTime TO cambio_colore.set_verde
ROUTE sensore_blu.touchTime TO cambio_colore.set_blu

Codice completo del sorgente Java
Ricordiamo che il presente codice costituisce il file RGB.java che dovrà
essere opportunamente compilato.

import vrml.*;
import vrml.field.*;
import vrml.node.*;
public class RGB extends Script {

public void processEvent(Event e) {
if(e.getName().equals("set_rosso")) {
SFNode coloreMaterial = (SFNode) getField("coloreMaterial");
Node coloreMaterialNode = (Node) coloreMaterial.getValue();
SFColor coloreColor = (SFColor)
coloreMaterialNode.getExposedField("diffuseColor");
coloreColor.setValue(new SFColor(1,0,0));
}
else if(e.getName().equals("set_verde")) {
SFNode coloreMaterial = (SFNode) getField("coloreMaterial");
Node coloreMaterialNode = (Node) coloreMaterial.getValue();
SFColor coloreColor = (SFColor)
coloreMaterialNode.getExposedField("diffuseColor");
coloreColor.setValue(new SFColor(0,1,0));
}
else if(e.getName().equals("set_blu")) {
SFNode coloreMaterial = (SFNode) getField("coloreMaterial");
Node coloreMaterialNode = (Node) coloreMaterial.getValue();
SFColor coloreColor = (SFColor)
coloreMaterialNode.getExposedField("diffuseColor");
coloreColor.setValue(new SFColor(0,0,1));
}
}
}

Ti consigliamo anche