OSDN Git Service

958e87bc6bd059bb17bb0e19f2b1c94887afdb57
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / vmd / model / CameraRotation.java
1 /*
2  * VMD camerawork handler
3  *
4  * License : The MIT License
5  * Copyright(c) 2011 MikuToga Partners
6  */
7
8 package jp.sourceforge.mikutoga.vmd.model;
9
10 /**
11  * カメラの回転情報。
12  * <p>latitudeはターゲットから見たカメラの仰俯角(≒緯度)。
13  * 単位はラジアン。
14  * Y軸回転量が0の時のZ正軸がY正軸へ倒れる方向が正回転。
15  * (MMDのUIとは符号が逆になるので注意)
16  * 仰俯角が0の場合、
17  * カメラはターゲットに対しXZ平面(水平)と平行な箇所に位置する。
18  * <p>longitudeはY軸周りの回転量(≒経度)。単位はラジアン。
19  * X正軸がZ正軸へ倒れる方向が正回転。(ボーン回転と逆)
20  * 仰俯角およびY軸回転量が0の場合、
21  * カメラレンズはZ軸-∞方向からZ軸+∞方向を向く。
22  * <p>rollはレンズをターゲットを向けたカメラのロール回転量。
23  * 仰俯角とY軸回転量が0の時にY正軸がX正軸に倒れる方向が正回転。
24  * 仰俯角およびロール回転量が0の場合、カメラ上部はY軸+∞の方を向く。
25  */
26 public class CameraRotation {
27
28     private float latitude;
29     private float longitude;
30     private float roll;
31
32
33     /**
34      * コンストラクタ。
35      */
36     public CameraRotation(){
37         super();
38         return;
39     }
40
41
42     /**
43      * ターゲットから見たカメラの仰俯角(≒緯度)を返す。
44      * @return ターゲットから見たカメラの仰俯角(≒緯度)
45      */
46     public float getLatitude(){
47         return this.latitude;
48     }
49
50     /**
51      * ターゲットから見たカメラの仰俯角(≒緯度)を設定する。
52      * @param latitude ターゲットから見たカメラの仰俯角(≒緯度)
53      */
54     public void setLatitude(float latitude){
55         this.latitude = latitude;
56         return;
57     }
58
59     /**
60      * Y軸周りの回転量(≒経度)を返す。
61      * @return Y軸周りの回転量(≒経度)
62      */
63     public float getLongitude(){
64         return this.longitude;
65     }
66
67     /**
68      * Y軸周りの回転量(≒経度)を設定する。
69      * @param longitude Y軸周りの回転量(≒経度)
70      */
71     public void setLongitude(float longitude){
72         this.longitude = longitude;
73         return;
74     }
75
76     /**
77      * レンズをターゲットを向けたカメラのロール回転量を返す。
78      * @return レンズをターゲットを向けたカメラのロール回転量
79      */
80     public float getRoll(){
81         return this.roll;
82     }
83
84     /**
85      * レンズをターゲットを向けたカメラのロール回転量を設定する。
86      * @param roll レンズをターゲットを向けたカメラのロール回転量
87      */
88     public void setRoll(float roll){
89         this.roll = roll;
90         return;
91     }
92
93     /**
94      * {@inheritDoc}
95      * @return {@inheritDoc}
96      */
97     @Override
98     public String toString(){
99         StringBuilder result = new StringBuilder();
100
101         result.append("latitude=").append(this.latitude);
102         result.append(" longitude=").append(this.longitude);
103         result.append(" roll=").append(this.roll);
104
105         return result.toString();
106     }
107
108 }