annotate src/main/java/alice/test/topology/aquarium/MakeObject.java @ 345:8f71c3e6f11d

Change directory structure Maven standard
author sugi
date Wed, 16 Apr 2014 18:26:07 +0900
parents
children 36d9487bea8b
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.Image;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import java.awt.MediaTracker;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
5 import java.awt.Toolkit;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6 import java.io.FileNotFoundException;
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.media.j3d.Appearance;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10 import javax.media.j3d.BranchGroup;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
11 import javax.media.j3d.Texture;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 import javax.media.j3d.Transform3D;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
13 import javax.media.j3d.TransformGroup;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
14 import javax.vecmath.Matrix4d;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
15
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
16 import com.sun.j3d.loaders.IncorrectFormatException;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
17 import com.sun.j3d.loaders.ParsingErrorException;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
18 import com.sun.j3d.loaders.Scene;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
19 import com.sun.j3d.loaders.objectfile.ObjectFile;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
20
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
21 import com.sun.j3d.utils.image.TextureLoader;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
22
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
23 public class MakeObject {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
24
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
25 private Transform3D transform;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
26 private TransformGroup transform_group;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
27 private ViewChange canvas;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
28 private Matrix4d matrix;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
29 private double s;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
30
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
31
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
32 public MakeObject(MakeFrame frame){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
33 this.canvas = frame.getCanvas();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
34 this.s = 0.3;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
35 frame.register(this);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
36 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
37
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
38 public BranchGroup createBranch(){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
39 BranchGroup scene = new BranchGroup();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
40 /*Box box = new Box(0.1f,0.1f,0.0f,
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
41 Box.GENERATE_NORMALS|Box.GENERATE_TEXTURE_COORDS,createAppearance());*/
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
42 ObjectFile obj = new ObjectFile(ObjectFile.RESIZE);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
43 Scene img = null;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
44 try{
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
45 URL url=getClass().getClassLoader().getResource("TUNA");
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
46 img = obj.load(url);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
47 } catch(FileNotFoundException e){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
48 System.err.println(e);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
49 System.exit(1);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
50 } catch(ParsingErrorException e){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
51 System.err.println(e);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
52 System.exit(1);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
53 } catch(IncorrectFormatException e){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
54 System.err.println(e);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
55 System.exit(1);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
56 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
57
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
58 transform_group = new TransformGroup();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
59 setLocation(-2.0f,-2.0f); //set out of window
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
60 transform_group.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
61 transform_group.addChild(img.getSceneGroup());
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
62 scene.addChild(transform_group);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
63 return scene;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
64 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
65
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
66 // no use method
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
67 public Appearance createAppearance(){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
68 Appearance app = new Appearance();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
69 Image image = null;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
70 Toolkit toolkit = Toolkit.getDefaultToolkit();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
71 URL url = getClass().getClassLoader().getResource("fish.jpg");
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
72 image = toolkit.getImage(url);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
73 MediaTracker mt = new MediaTracker(canvas);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
74 mt.addImage(image, 0);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
75 mt.checkAll(true);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
76 try {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
77 mt.waitForID(0);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
78
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
79 }catch (InterruptedException e){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
80 e.printStackTrace();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
81
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
82 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
83 Texture texture = new TextureLoader(image,canvas).getTexture();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
84 app.setTexture(texture);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
85 return app;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
86
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
87 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
88
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
89 public void setScale(float size){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
90 s = size;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
91 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
92
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
93 public void setLocation(float x,float y){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
94 transform = new Transform3D();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
95 matrix = new Matrix4d(s,0,0,x,
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
96 0,s,0,y,
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
97 0,0,s,0,
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
98 0,0,0,1);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
99 transform.set(matrix);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
100 transform_group.setTransform(transform);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
101 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
102
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
103 public void setLocation(float x,float y,float z){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
104 transform = new Transform3D();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
105 matrix = new Matrix4d(s,0,0,x,
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
106 0,s,0,y,
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
107 0,0,s,z,
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
108 0,0,0,1);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
109 transform.set(matrix);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
110 transform_group.setTransform(transform);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
111 }
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 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
115