annotate src/alice/test/topology/aquarium/ViewChange.java @ 141:4c71bbfe557d working

add mouse event
author sugi
date Thu, 20 Sep 2012 21:35:23 +0900
parents
children 287aae21e7d8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
141
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
1 package alice.test.topology.aquarium;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
2
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
3 import java.awt.*;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
4
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
5 import javax.media.j3d.*;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
6 import javax.vecmath.*;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
7 import com.sun.j3d.utils.universe.*;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
8
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
9 public class ViewChange extends Canvas3D {
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
10
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
11 private static final long serialVersionUID = 1L;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
12 float sensitivity;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
13 float distance;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
14 int new_x, new_y;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
15 int pre_x, pre_y;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
16 SimpleUniverse universe;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
17 TransformGroup Camera;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
18 float camera_x, camera_y, camera_z, camera_xz, camera_xy, camera_yz = 0;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
19 float phi = 0;//(float)Math.PI;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
20 float theta = (float)Math.PI/3;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
21
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
22 Transform3D Transform_camera_pos;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
23 Transform3D Transform_camera_phi;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
24 Transform3D Transform_camera_theta;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
25 Vector3f Vector_camera_pos;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
26
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
27 public ViewChange(float Distance, float Sensitivity, GraphicsConfiguration config){
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
28 super(config);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
29 distance = Distance;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
30 sensitivity = Sensitivity;
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
31 universe = new SimpleUniverse(this);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
32 ViewingPlatform vp = universe.getViewingPlatform();
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
33 Camera = vp.getViewPlatformTransform();
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
34
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
35 camera_y = distance * (float)Math.sin(theta);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
36 camera_xz = distance * (float)Math.cos(theta);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
37 camera_x = camera_xz * (float)Math.sin(phi);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
38 camera_z = camera_xz * (float)Math.cos(phi);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
39
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
40 Vector_camera_pos = new Vector3f(camera_x, camera_y, camera_z);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
41 Transform_camera_pos = new Transform3D();
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
42 Transform_camera_pos.setTranslation(Vector_camera_pos);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
43
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
44 Transform_camera_phi = new Transform3D();
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
45 Transform_camera_theta = new Transform3D();
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
46 Transform_camera_theta.rotX(-theta);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
47 Transform_camera_phi.rotY(phi);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
48 Transform_camera_theta.mul(Transform_camera_phi);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
49 Transform_camera_pos.mul(Transform_camera_theta);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
50
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
51 Camera.setTransform(Transform_camera_pos);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
52
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
53 MouseViewEvent mouse = new MouseViewEvent(this);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
54 addMouseMotionListener(mouse);
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
55
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
56 }
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
57
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
58
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
59
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
60 }
4c71bbfe557d add mouse event
sugi
parents:
diff changeset
61