diff src/alice/test/topology/movement/MakeFrame.java @ 88:33a19ca88e43 working

Singleton is removed .
author sugi
date Mon, 04 Jun 2012 16:08:53 +0900
parents src/alice/test/topology/movement/FishMovement.java@f8d86641b2ec
children e269cedd8bae
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/test/topology/movement/MakeFrame.java	Mon Jun 04 16:08:53 2012 +0900
@@ -0,0 +1,79 @@
+package alice.test.topology.movement;
+
+import java.awt.GraphicsConfiguration;
+
+import javax.media.j3d.BoundingSphere;
+import javax.media.j3d.BranchGroup;
+import javax.media.j3d.Canvas3D;
+import javax.media.j3d.DirectionalLight;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.vecmath.Color3f;
+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;
+	
+	public MakeFrame(){
+		JFrame frame = new JFrame();
+		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());
+		
+		key = new KeyInput();
+		canvas.addKeyListener(key);
+		
+		frame.setVisible(true);
+		
+		ViewingPlatform camera = universe.getViewingPlatform();
+		camera.setNominalViewingTransform();
+	}
+	
+	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(BranchGroup group){
+		this.universe.addBranchGraph(group);
+	}
+	
+	public Canvas3D getCanvas(){
+		return this.canvas;
+	}
+	
+	public KeyInput getKey(){
+		return this.key;
+	}
+	
+	public SimpleUniverse getUniverse(){
+		return this.universe;
+	}
+
+}