// vrml52.java import java.awt.*; import java.applet.*; import vrml.external.field.*; import vrml.external.Node; import vrml.external.Browser; import vrml.external.exception.*; public class vrml53 extends Applet { TextArea output = null; Browser browser = null; Node material = null; EventInSFColor diffuseColor = null; EventOutSFColor outputColor = null; EventOutSFTime touchTime = null; boolean error = false; public void init() { System.out.println("CreateTest.init()..."); output = new TextArea(5,40); add(output); } public void start() { System.out.println("CreateTest.start()..."); output.appendText("\nCreateTest.Start()...\n"); browser = (Browser) vrml.external.Browser.getBrowser(this); output.appendText("Got the browser\n"); System.out.println("Got the browser; " + browser); try { output.appendText("Starting scene setup...\n"); Node[] scene = browser.createVrmlFromString("DEF Camera Viewpoint {\n" + " position 0 0 5 }\n" + "DEF MySphere Transform {}\n"); output.appendText("-Created Viewpoint and Transform nodes...\n"); if (scene.length != 2) { output.appendText("Uh Oh..scene was only " + scene.length + "nodes long (expected 2)! Aborting...\n"); return; } Node[] shape = browser.createVrmlFromString("Shape {}"); output.appendText("-Created Shape node...\n"); if (shape.length != 1) { output.appendText("Uh Oh..shape was " + shape.length + "nodes long (expected1)! Aborting...\n"); return; } Node[] appearance = browser.createVrmlFromString("Appearance {}"); output.appendText("-Created Appearance node...\n"); if (appearance.length != 1) { output.appendText("Uh Oh..appearance was " + appearance.length + "nodes long (expected1)! Aborting...\n"); return; } Node[] geometry = browser.createVrmlFromString("Sphere {}"); output.appendText("-Created Sphere node...\n"); if (geometry.length != 1) { output.appendText("Uh Oh..geometry was " + geometry.length + "nodes long (expected1)! Aborting...\n"); return; } Node[] material = browser.createVrmlFromString("Material {}"); output.appendText("-Create Material node...\n"); if (material.length != 1) { output.appendText("Uh Oh..material was " + material.length + "nodes long (expected1)! Aborting...\n"); return; } output.appendText("-Setting Material color...\n"); EventInSFColor set_diffuseColor = (EventInSFColor) material[0].getEventIn("diffuseColor"); float[] col = new float[3]; col[0] = 0.2f; col[1] = 0.2f; col[2] = 0.8f; set_diffuseColor.setValue(col); output.appendText("- Hooking up all the nodes...\n"); EventInSFNode nodeIn = (EventInSFNode) appearance[0].getEventIn("set_material"); nodeIn.setValue(material[0]); nodeIn = (EventInSFNode) shape[0].getEventIn("set_appearance"); nodeIn.setValue(appearance[0]); nodeIn = (EventInSFNode) shape[0].getEventIn("set_geometry"); nodeIn.setValue(geometry[0]); EventInMFNode nodesIn = (EventInMFNode) scene[1].getEventIn("addChildren"); nodesIn.setValue(shape); output.appendText("- Calling Browser.replaceWorld...\n"); browser.replaceWorld(scene); } catch (InvalidVrmlException ie) { output.appendText("Problem! " + ie); } catch (InvalidEventInException ei) { output.appendText("Problem! " + ei); } catch (ArrayIndexOutOfBoundsException oob) { output.appendText("Problem! " + oob); } System.out.println("Create Test.start() done!"); } }