Mercurial > hg > Members > tatsuki > Alice
comparison src/main/java/alice/test/topology/aquarium/MouseViewEvent.java @ 345:8f71c3e6f11d
Change directory structure Maven standard
author | sugi |
---|---|
date | Wed, 16 Apr 2014 18:26:07 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
344:9f97ec18f8c5 | 345:8f71c3e6f11d |
---|---|
1 package alice.test.topology.aquarium; | |
2 | |
3 import java.awt.event.MouseEvent; | |
4 import java.awt.event.MouseMotionListener; | |
5 | |
6 public class MouseViewEvent implements MouseMotionListener { | |
7 | |
8 int new_x, new_y; | |
9 int pre_x, pre_y; | |
10 ViewChange v; | |
11 | |
12 public MouseViewEvent(ViewChange v) { | |
13 this.v = v; | |
14 | |
15 } | |
16 | |
17 @Override | |
18 public void mouseDragged(MouseEvent event) { | |
19 new_x = event.getX(); | |
20 new_y = event.getY(); | |
21 | |
22 v.theta -= v.sensitivity * (new_y - pre_y); | |
23 v.phi += v.sensitivity * (new_x - pre_x); | |
24 v.camera_y = v.distance * (float)Math.sin(v.theta); | |
25 v.camera_xz = v.distance * (float)Math.cos(v.theta); | |
26 | |
27 v.camera_x = v.camera_xz * (float)Math.sin(v.phi); | |
28 v.camera_z = v.camera_xz * (float)Math.cos(v.phi); | |
29 v.Vector_camera_pos.x = v.camera_x; | |
30 v.Vector_camera_pos.y = v.camera_y; | |
31 v.Vector_camera_pos.z = v.camera_z; | |
32 | |
33 v.Transform_camera_pos.setIdentity(); | |
34 v.Transform_camera_pos.setTranslation(v.Vector_camera_pos); | |
35 | |
36 v.Transform_camera_theta.rotX(-v.theta); | |
37 v.Transform_camera_phi.rotY(v.phi); | |
38 v.Transform_camera_phi.mul(v.Transform_camera_theta); | |
39 v.Transform_camera_pos.mul(v.Transform_camera_phi); | |
40 v.Camera.setTransform(v.Transform_camera_pos); | |
41 pre_x = event.getX(); | |
42 pre_y = event.getY(); | |
43 | |
44 } | |
45 | |
46 @Override | |
47 public void mouseMoved(MouseEvent event) { | |
48 pre_x = event.getX(); | |
49 pre_y = event.getY(); | |
50 } | |
51 | |
52 } |