/** * Simple Java 3D example program to display a spinning cube. */ publicclassHelloUniverseextendsjavax.swing.JFrame{
private SimpleUniverse univ = null; private BranchGroup scene = null;
public BranchGroup createSceneGraph(){ // Create the root of the branch graph BranchGroup objRoot = new BranchGroup();
// Create the TransformGroup node and initialize it to the // identity. Enable the TRANSFORM_WRITE capability so that // our behavior code can modify it at run time. Add it to // the root of the subgraph. TransformGroup objTrans = new TransformGroup(); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(objTrans);
// Create a simple Shape3D node; add it to the scene graph. objTrans.addChild(new ColorCube(0.4));
// Create a new Behavior object that will perform the // desired operation on the specified transform and add // it into the scene graph. Transform3D yAxis = new Transform3D(); Alpha rotationAlpha = new Alpha(-1, 4000);
RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, objTrans, yAxis, 0.0f, (float) Math.PI*2.0f); BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); rotator.setSchedulingBounds(bounds); objRoot.addChild(rotator);
// Have Java 3D perform optimizations on this scene graph. objRoot.compile();
return objRoot; }
private Canvas3D createUniverse(){ // Get the preferred graphics configuration for the default screen GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
// Create a Canvas3D using the preferred configuration Canvas3D c = new Canvas3D(config);
// Create simple universe with view branch univ = new SimpleUniverse(c);
// This will move the ViewPlatform back a bit so the // objects in the scene can be viewed. univ.getViewingPlatform().setNominalViewingTransform();
// Ensure at least 5 msec per frame (i.e., < 200Hz) univ.getViewer().getView().setMinimumFrameCycleTime(5);
return c; }
/** * Creates new form HelloUniverse */ publicHelloUniverse(){ // Initialize the GUI components initComponents();
// Create Canvas3D and SimpleUniverse; add canvas to drawing panel Canvas3D c = createUniverse(); drawingPanel.add(c, java.awt.BorderLayout.CENTER);
// Create the content branch and add it to the universe scene = createSceneGraph(); univ.addBranchGraph(scene); }
/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents privatevoidinitComponents(){ drawingPanel = new javax.swing.JPanel();
/** * @param args the command line arguments */ publicstaticvoidmain(String args[]){ java.awt.EventQueue.invokeLater(new Runnable() { publicvoidrun(){ new HelloUniverse().setVisible(true); } }); }
// Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel drawingPanel; // End of variables declaration//GEN-END:variables