OSDN Git Service

78f2a7f94fcb6bb477d62399b3ac1caf943b2a69
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / vmd / model / LuminousVector.java
1 /*
2  * luminous direction vector
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>照明方向は、
13  * ワールド座標原点から伸びる方向ベクトルとして記述される。
14  * この方向ベクトルに向けて、無限遠の光源から照明が当たる。
15  * <p>MMDのスライダUI上では各軸成分の定義域は-1.0以上+1.0以下だが、
16  * さらに絶対値の大きな値を指定することも可能。
17  * <p>方向ベクトルの長さは演出上の意味を持たないが、
18  * キーフレーム間の照明方向の補間に影響を及ぼすかもしれない。
19  * <p>方向ベクトルが零ベクトル(0,0,0)の場合、MMDでは全ポリゴンに影が落ちる。
20  */
21 public class LuminousVector {
22
23     /** デフォルトのX成分。 */
24     public static final float DEF_VECX = -0.5f;
25     /** デフォルトのY成分。 */
26     public static final float DEF_VECY = -1.0f;
27     /** デフォルトのZ成分。 */
28     public static final float DEF_VECZ = +0.5f;
29
30
31     private float vecX = DEF_VECX;
32     private float vecY = DEF_VECY;
33     private float vecZ = DEF_VECZ;
34
35
36     /**
37      * コンストラクタ。
38      */
39     public LuminousVector(){
40         super();
41         return;
42     }
43
44
45     /**
46      * 照射方向ベクトルのX成分を設定する。
47      * @param vecX ベクトルのX成分
48      */
49     public void setVecX(float vecX) {
50         this.vecX = vecX;
51         return;
52     }
53
54     /**
55      * 照射方向ベクトルのY成分を設定する。
56      * @param vecY ベクトルのY成分
57      */
58     public void setVecY(float vecY) {
59         this.vecY = vecY;
60         return;
61     }
62
63     /**
64      * 照射方向ベクトルのZ成分を設定する。
65      * @param vecZ ベクトルのZ成分
66      */
67     public void setVecZ(float vecZ) {
68         this.vecZ = vecZ;
69         return;
70     }
71
72     /**
73      * 照射方向ベクトルのX成分を返す。
74      * @return 方向ベクトルX成分
75      */
76     public float getVecX() {
77         return this.vecX;
78     }
79
80     /**
81      * 照射方向ベクトルのY成分を返す。
82      * @return 方向ベクトルY成分
83      */
84     public float getVecY() {
85         return this.vecY;
86     }
87
88     /**
89      * 照射方向ベクトルのZ成分を返す。
90      * @return 方向ベクトルZ成分
91      */
92     public float getVecZ() {
93         return this.vecZ;
94     }
95
96     /**
97      * {@inheritDoc}
98      * @return {@inheritDoc}
99      */
100     @Override
101     public String toString(){
102         StringBuilder result = new StringBuilder();
103
104         result.append("x=").append(this.vecX);
105         result.append(" y=").append(this.vecY);
106         result.append(" z=").append(this.vecZ);
107
108         return result.toString();
109     }
110
111 }