// ---------------------------------------------------------- // parse // ---------------------------------------------------------- public boolean parse(String fname) { File f = new File(fname); if (!f.exists()) { System.err.println("*** [ERROR] " + fname + " not exists! ***"); return false; } FileInputStream stream = null; try { stream = new FileInputStream(fname); } catch (Exception excep) { System.out.println(excep.toString()); return false; } // InputSource is = new InputSource(f); InputSource is = new InputSource("file://" + fname, stream); VRMLParserFactory parser_fac = null; try { parser_fac = VRMLParserFactory.newVRMLParserFactory(); } catch (Exception fce) { throw new RuntimeException("Failed to load factory"); } VRMLReader reader = parser_fac.newVRMLReader(); scene = new CRVRMLScene(2, 0); handler = new X3DParseEventHandler(scene); handler.debugMode(false); // handler.debugMode(true); reader.setHeaderIgnore(true); reader.setContentHandler(handler); reader.setScriptHandler(handler); reader.setProtoHandler(handler); reader.setRouteHandler(handler); reader.setErrorReporter(DefaultErrorReporter.getDefaultReporter()); try { reader.parse(is); } catch (Exception excep) { excep.printStackTrace(); return false; } // VRMLNode root = scene.getRootNode(); // printNode(root); return true; }
/** * Fire a textureImageChanged event to the listeners. * * @param idx The stage * @param node The node which changed * @param image The new image * @param url The url used to load or null. */ protected void fireTextureImageChanged( int idx, VRMLTextureNodeType node, NIOBufferImage image, String url) { int size = textureListeners.size(); VRMLTextureListener l; for (int i = 0; i < size; i++) { try { l = (VRMLTextureListener) textureListeners.get(i); l.textureImageChanged(idx, node, image, url); } catch (Exception e) { System.out.println("Error sending textureImpl changed message: " + e.getMessage()); e.printStackTrace(); } } }