2 * VMD camerawork handler
4 * License : The MIT License
5 * Copyright(c) 2011 MikuToga Partners
8 package jp.sourceforge.mikutoga.vmd.model;
12 * <p>latitudeはターゲットから見たカメラの仰俯角(≒緯度)。
14 * Y軸回転量が0の時のZ正軸がY正軸へ倒れる方向が正回転。
15 * (MMDのUIとは符号が逆になるので注意)
17 * カメラはターゲットに対しXZ平面(水平)と平行な箇所に位置する。
18 * <p>longitudeはY軸周りの回転量(≒経度)。単位はラジアン。
19 * X正軸がZ正軸へ倒れる方向が正回転。(ボーン回転と逆)
21 * カメラレンズはZ軸-∞方向からZ軸+∞方向を向く。
22 * <p>rollはレンズをターゲットを向けたカメラのロール回転量。
23 * 仰俯角とY軸回転量が0の時にY正軸がX正軸に倒れる方向が正回転。
24 * 仰俯角およびロール回転量が0の場合、カメラ上部はY軸+∞の方を向く。
26 public class CameraRotation {
28 private float latitude;
29 private float longitude;
36 public CameraRotation(){
43 * ターゲットから見たカメラの仰俯角(≒緯度)を返す。
44 * @return ターゲットから見たカメラの仰俯角(≒緯度)
46 public float getLatitude(){
51 * ターゲットから見たカメラの仰俯角(≒緯度)を設定する。
52 * @param latitude ターゲットから見たカメラの仰俯角(≒緯度)
54 public void setLatitude(float latitude){
55 this.latitude = latitude;
61 * @return Y軸周りの回転量(≒経度)
63 public float getLongitude(){
64 return this.longitude;
69 * @param longitude Y軸周りの回転量(≒経度)
71 public void setLongitude(float longitude){
72 this.longitude = longitude;
77 * レンズをターゲットを向けたカメラのロール回転量を返す。
78 * @return レンズをターゲットを向けたカメラのロール回転量
80 public float getRoll(){
85 * レンズをターゲットを向けたカメラのロール回転量を設定する。
86 * @param roll レンズをターゲットを向けたカメラのロール回転量
88 public void setRoll(float roll){
95 * @return {@inheritDoc}
98 public String toString(){
99 StringBuilder result = new StringBuilder();
101 result.append("latitude=").append(this.latitude);
102 result.append(" longitude=").append(this.longitude);
103 result.append(" roll=").append(this.roll);
105 return result.toString();