OSDN Git Service

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