Mercurial > hg > Members > tatsuki > Alice
view src/alice/test/topology/fishmodel/alpha/MakeFrame.java @ 124:cc4973a869c5 working
Merge with 79816f4ec4dc59d63a4a20036821a1b9bbf33fea
author | sugi |
---|---|
date | Tue, 31 Jul 2012 20:19:02 +0900 |
parents | src/alice/test/topology/movement/FishMovement.java@79816f4ec4dc src/alice/test/topology/movement/FishMovement.java@ba64a9d76e70 |
children | 117dad267a9b |
line wrap: on
line source
package alice.test.topology.fishmodel.alpha; import java.awt.GraphicsConfiguration; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.media.j3d.Background; import javax.media.j3d.BoundingSphere; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import javax.media.j3d.DirectionalLight; import javax.media.j3d.ImageComponent2D; import javax.swing.JFrame; import javax.swing.JPanel; import javax.vecmath.Color3f; import javax.vecmath.Point3d; import javax.vecmath.Vector3f; import com.sun.j3d.utils.universe.SimpleUniverse; import com.sun.j3d.utils.universe.ViewingPlatform; public class MakeFrame { int fSizeX = 800; int fSizeY = 800; private Canvas3D canvas; private SimpleUniverse universe; private KeyInput key; private KeyInputCodeSegment KIC; public MakeFrame(String str){ JFrame frame = new JFrame(str); frame.setSize(fSizeX,fSizeY); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cp = new JPanel(); cp.setLayout(null); frame.add(cp); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); canvas = new Canvas3D(config); canvas.setBounds(0,0,fSizeX,fSizeY); cp.add(canvas); universe = new SimpleUniverse(canvas); universe.addBranchGraph(createLight()); universe.addBranchGraph(setBackground()); /* key = new KeyInput(); canvas.addKeyListener(key); */ KIC = new KeyInputCodeSegment(); canvas.addKeyListener(KIC); frame.setVisible(true); ViewingPlatform camera = universe.getViewingPlatform(); camera.setNominalViewingTransform(); } private BranchGroup setBackground(){ BranchGroup scene = new BranchGroup(); BufferedImage img = null; try { img = ImageIO.read(new File("../image/image1.jpg")); } catch (IOException e) { e.printStackTrace(); } ImageComponent2D image = new ImageComponent2D(ImageComponent2D.FORMAT_RGBA8,img); Background background = new Background(image); background.setImageScaleMode(Background.SCALE_FIT_ALL); BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), Double.POSITIVE_INFINITY); background.setApplicationBounds(bounds); scene.addChild(background); return scene; } private BranchGroup createLight(){ BranchGroup scene = new BranchGroup(); Color3f light_color = new Color3f(1.7f,1.7f,1.7f); Vector3f light_direction = new Vector3f(0.2f,-0.2f,-0.6f); DirectionalLight light = new DirectionalLight(light_color,light_direction); BoundingSphere bounds = new BoundingSphere(); light.setInfluencingBounds(bounds); scene.addChild(light); return scene; } public void register(MakeObject obj){ BranchGroup group = obj.createBranch(); this.universe.addBranchGraph(group); } public SimpleUniverse getUniverse(){ return this.universe; } public Canvas3D getCanvas(){ return this.canvas; } public KeyInput getKey(){ return this.key; } public KeyInputCodeSegment getKeySegment(){ return this.KIC; } }