annotate src/main/java/alice/test/topology/aquarium/MakeFrame.java @ 347:4f534c07d41e

change Image Load path in MakeFrame.java
author sugi
date Mon, 21 Apr 2014 19:59:11 +0900
parents 8f71c3e6f11d
children f6f6e481c00c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.test.topology.aquarium;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
3 import java.awt.GraphicsConfiguration;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import java.awt.image.BufferedImage;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
5 import java.io.File;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6 import java.io.IOException;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
7 import java.net.URL;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
8
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9 import javax.imageio.ImageIO;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10 import javax.media.j3d.Background;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
11 import javax.media.j3d.BoundingSphere;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 import javax.media.j3d.BranchGroup;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
13 import javax.media.j3d.DirectionalLight;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
14 import javax.media.j3d.ImageComponent2D;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
15
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
16 import javax.swing.JFrame;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
17 import javax.swing.JPanel;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
18 import javax.vecmath.Color3f;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
19 import javax.vecmath.Point3d;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
20 import javax.vecmath.Vector3f;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
21
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
22 import com.sun.j3d.utils.universe.SimpleUniverse;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
23
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
24 public class MakeFrame {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
25
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
26 private static final int F_SIZE_X = 800;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
27 private static final int F_SIZE_Y = 800;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
28 private ViewChange canvas;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
29 private JFrame frame;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
30 private ObjectList list = new ObjectList();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
31
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
32 public MakeFrame(String str,float x) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
33 System.loadLibrary("jawt");
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
34 frame = new JFrame(str);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
35 frame.setSize(F_SIZE_X, F_SIZE_Y);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
36 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
37
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
38 JPanel cp = new JPanel();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
39 cp.setLayout(null);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
40 frame.add(cp);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
41
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
42 GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
43 canvas = new ViewChange(x,0.01f,config);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
44 canvas.setBounds(0,0, F_SIZE_X, F_SIZE_Y);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
45 cp.add(canvas);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
46
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
47 canvas.universe.addBranchGraph(createLight());
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
48 canvas.universe.addBranchGraph(setBackground());
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
49
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
50 canvas.addKeyListener(new KeyInputCodeSegment(this));
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
51 frame.setVisible(true);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
52
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
53 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
54
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
55 private BranchGroup setBackground() {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
56 BranchGroup scene = new BranchGroup();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
57 BufferedImage img = null;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
58 try {
347
4f534c07d41e change Image Load path in MakeFrame.java
sugi
parents: 345
diff changeset
59 URL url = getClass().getClassLoader().getResource("image/image1.jpg");
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
60 if (url!=null) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
61 img = ImageIO.read(url);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
62 } else {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
63 img = ImageIO.read(new File("image/image1.jpg"));
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
64 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
65 } catch (IOException e) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
66 e.printStackTrace();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
67 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
68 ImageComponent2D image =
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
69 new ImageComponent2D(ImageComponent2D.FORMAT_RGBA8,img);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
70 Background background = new Background(image);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
71 background.setImageScaleMode(Background.SCALE_FIT_ALL);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
72 BoundingSphere bounds = new BoundingSphere(new Point3d(), 10.0);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
73 background.setApplicationBounds(bounds);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
74 scene.addChild(background);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
75 return scene;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
76
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
77 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
78
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
79 private BranchGroup createLight() {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
80 BranchGroup scene = new BranchGroup();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
81 Color3f light_color = new Color3f(1.7f,1.7f,1.7f);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
82 Vector3f light_direction = new Vector3f(0.0f,0.0f,-1.0f);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
83 DirectionalLight light = new DirectionalLight(light_color,light_direction);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
84 BoundingSphere bounds = new BoundingSphere(new Point3d(), 10.0);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
85 light.setInfluencingBounds(bounds);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
86 scene.addChild(light);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
87 return scene;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
88 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
89
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
90 public void register(MakeObject obj){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
91 list.table.add(obj);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
92 BranchGroup group = obj.createBranch();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
93 this.canvas.universe.addBranchGraph(group);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
94 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
95
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
96 public ViewChange getCanvas(){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
97 return this.canvas;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
98 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
99
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
100 public JFrame getJFrame(){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
101 return this.frame;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
102 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
103
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
104 public ObjectList getList(){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
105 return this.list;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
106 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
107
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
108 static public void main(String [] args) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
109 MakeFrame test = new MakeFrame("Test", 0);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
110 test.setBackground();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
111 test.createLight();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
112 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
113
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
114 }