Exemple de classe utilisant Java3D

Horizontale.gif (2348 octets)

WB01624_.gif (281 octets) RETOUR

</COMMENT> alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the applet, for some reason." Your browser is completely ignoring the &lt;APPLET&gt; tag!

Hello.class

Fichier source

Hello.java

/* Copyright (c) 1996-1998
 * Sun Microsystems, Inc.
 * All Rights Reserved.
 *
 * Sun grants ("Licensee") a non-exclusive,
 * royalty free, license to use, modify
 * and redistribute this software in source
 * and binary code form, provided that
 * i) this copyright notice and license appear
 * on all copies of the software; and
 * ii) Licensee does not utilize the software
 * in a manner which is disparaging to Sun.
 *
 * This software is provided "AS IS," without
 * a warranty of any kind. ALL EXPRESS OR
 * IMPLIED CONDITIONS, REPRESENTATIONS
 * AND WARRANTIES, INCLUDING ANY IMPLIED
 * WARRANTY OF MERCHANTABILITY, FITNESS
 * FOR A PARTICULAR PURPOSE OR
 * NON-INFRINGEMENT, ARE HEREBY
 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT
 * BE LIABLE FOR ANY DAMAGES SUFFERED
 * BY LICENSEE AS A RESULT OF USING,
 * MODIFYING OR DISTRIBUTING THE SOFTWARE
 * OR ITS DERIVATIVES. IN NO EVENT
 * WILL SUN OR ITS LICENSORS BE LIABLE
 * FOR ANY LOST REVENUE, PROFIT OR DATA,
 * OR FOR DIRECT, INDIRECT, SPECIAL,
 * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
 * DAMAGES, HOWEVER CAUSED AND REGARDLESS
 * OF THE THEORY OF LIABILITY, ARISING
 * OUT OF THE USE OF OR INABILITY TO USE
 * SOFTWARE, EVEN IF SUN HAS BEEN ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * This software is not designed or intended
 * for use in on-line control of aircraft,
 * air traffic, aircraft navigation
 * or aircraft communications; or in the
 * design, construction,
 * operation or maintenance of any nuclear
 * facility. Licensee represents and warrants
 * that it will not use or redistribute
 * the Software for such purposes.
 */
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class Hello extends Applet {
    public BranchGroup createSceneGraph() {
      // Cree la racine du graphe branche.
      BranchGroup objRoot = new BranchGroup();
      // Cree le noeud transform group
      // et l'initialise a l'identité.
      // Autorise le flag TRANSFORM_WRITE
      // pour que notre programme behavior
      // puisse le modifier.
      // l'ajoute a la racine du sous-graphe.
      TransformGroup objTrans =
        new TransformGroup();
      objTrans.setCapability(
        TransformGroup.ALLOW_TRANSFORM_WRITE);
      objRoot.addChild(objTrans);
      // Cree un noeud feuille forme simple,
      // et l'ajoute au graphe de scene.
      objTrans.addChild(new ColorCube(0.4));
      // Cree un nouvel objet Behavior
      // qui realisera les operations desirees
      // sur l'objet transform specifie
      // et l'ajoute dans le graphe de scene.
      Transform3D yAxis = new Transform3D();
      Alpha rotationAlpha = new Alpha(-1,
        Alpha.INCREASING_ENABLE,
        0,0,
        4000,0,0,
        0,0,0);
      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);
      objTrans.addChild(rotator);
      // Compilation pour de meilleures
      // performances.
      objRoot.compile();
      return objRoot;
    }
    public Hello() {
      setLayout(new BorderLayout());
      GraphicsConfiguration config =
        SimpleUniverse
          .getPreferredConfiguration();
      Canvas3D c = new Canvas3D(config);
      add("Center",c);
      // Cree une scene simple et l'attache
      // a l'univers virtuel.
      BranchGroup scene = createSceneGraph();
      SimpleUniverse u =
        new SimpleUniverse(c);
        // ceci deplace le ViewPlatform
        // un peu en arriere pour que les
        // objets de la scene soient visibles.
        u.getViewingPlatform()
         .setNominalViewingTransform();
      u.addBranchGraph(scene);
    }
    //
    // HelloUniverse peut etre utilise comme
    // une application aussi bien que comme
    // une applet
    //
    public static void main(String[] args) {
	  System.out.println("Go") ;
      new MainFrame(
        new Hello(),256,256);
    }
}
WB01624_.gif (281 octets) RETOUR
Horizontale.gif (2348 octets)