OSDN Git Service

c734e2e8e9040128faef4e06e7364225dd815a59
[mikutoga/Vmd2XML.git] / src / main / java / jp / sfjp / mikutoga / vmd / model / LuminousColor.java
1 /*
2  * luminous color
3  *
4  * License : The MIT License
5  * Copyright(c) 2011 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.vmd.model;
9
10 import java.text.MessageFormat;
11
12 /**
13  * 光源の色設定。
14  *
15  * <p>色情報はRGB色空間で記述される。
16  *
17  * <p>MMDのUI上の各色成分指定0~255定義域に便宜上256を追加したものが、
18  * 0.0以上1.0以下にマップされる。
19  *
20  * <ul>
21  * <li>0は正しく0.0にマップされる。
22  * <li>128は正しく0.5にマップされる。
23  * <li>255は1.0より少しだけ小さい数(≒0.99609375)にマップされる。
24  * </ul>
25  */
26 public class LuminousColor {
27
28     /** デフォルトの成分値。 */
29     public static final float DEF_BRIGHT = 0.602f; // ≒ (154.0 / 256.0)
30
31     private static final String MSG_TXT = "r={0} g={1} b={2}";
32
33
34     private float colR = DEF_BRIGHT;
35     private float colG = DEF_BRIGHT;
36     private float colB = DEF_BRIGHT;
37
38
39     /**
40      * コンストラクタ。
41      *
42      * <p>MMDデフォルトの光源色(154,154,154)が設定される。
43      */
44     public LuminousColor(){
45         super();
46         return;
47     }
48
49
50     /**
51      * 光源の赤成分を設定する。
52      *
53      * @param colR 赤成分
54      */
55     public void setColR(float colR) {
56         this.colR = colR;
57         return;
58     }
59
60     /**
61      * 光源の緑成分を設定する。
62      *
63      * @param colG 緑成分
64      */
65     public void setColG(float colG) {
66         this.colG = colG;
67         return;
68     }
69
70     /**
71      * 光源の青成分を設定する。
72      *
73      * @param colB 青成分
74      */
75     public void setColB(float colB) {
76         this.colB = colB;
77         return;
78     }
79
80     /**
81      * 光源の赤成分を返す。
82      *
83      * @return 赤成分
84      */
85     public float getColR(){
86         return this.colR;
87     }
88
89     /**
90      * 光源の緑成分を返す。
91      *
92      * @return 緑成分
93      */
94     public float getColG(){
95         return this.colG;
96     }
97
98     /**
99      * 光源の青成分を返す。
100      *
101      * @return 青成分
102      */
103     public float getColB(){
104         return this.colB;
105     }
106
107     /**
108      * {@inheritDoc}
109      *
110      * @return {@inheritDoc}
111      */
112     @Override
113     public String toString(){
114         String msg;
115         msg = MessageFormat.format(MSG_TXT,
116                 this.colR, this.colG, this.colB );
117         return msg;
118     }
119
120 }