/** * Autor: Daniel del Río. * Fecha: 7 Sep, 2000 * Version: 1.0 */ import java.applet.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import javax.media.j3d.*; import com.sun.j3d.loaders.*; import com.sun.j3d.utils.universe.*; import com.rio.anima.loader.*; public class Anima3dApplet extends Applet { Canvas3D canvas; public void init() { AnimaScene scene = null; URL url = null; try { url = new URL(getParameter("url")); } catch (MalformedURLException e) { e.printStackTrace(); return; } AnimaLoader loader = new AnimaLoader(Loader.LOAD_ALL); try { scene = (AnimaScene) loader.load(url); } catch (Exception e) { e.printStackTrace(); return; } VirtualUniverse universe = new VirtualUniverse(); javax.media.j3d.Locale locale = new javax.media.j3d.Locale(universe); BranchGroup root = scene.getSceneGroup(); root.compile(); locale.addBranchGraph(root); GraphicsConfiguration gc = SimpleUniverse.getPreferredConfiguration(); canvas = new Canvas3D(gc); canvas.stopRenderer(); BranchGroup viewgroup = new BranchGroup(); ViewingPlatform viewingPlatform = new ViewingPlatform(1); Viewer viewer = new Viewer(canvas); viewer.setViewingPlatform(viewingPlatform); TransformGroup[] vgs = scene.getViewGroups(); TransformGroup tg = vgs[0]; tg.addChild(viewingPlatform); viewgroup.addChild(tg); locale.addBranchGraph(viewgroup); Alpha alpha = null; Behavior[] behaviors = scene.getBehaviorNodes(); if (behaviors != null) { alpha = new Alpha(); alpha.setIncreasingAlphaDuration(scene.getFilmTime()); for (int i = 0; i < behaviors.length; i++) { if (behaviors[i] instanceof Interpolator) ((Interpolator) behaviors[i]).setAlpha(alpha); } } setLayout(new BorderLayout()); add(canvas, BorderLayout.CENTER); if (alpha != null) alpha.setStartTime(System.currentTimeMillis()); } public void start() { canvas.startRenderer(); } public void stop() { canvas.stopRenderer(); } public void destroy() { } }