OSDN Git Service

vmdパッケージ導入
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / vmd / model / binio / LightingExporter.java
1 /*
2  * lighting information exporter
3  *
4  * License : The MIT License
5  * Copyright(c) 2011 MikuToga Partners
6  */
7
8 package jp.sourceforge.mikutoga.vmd.model.binio;
9
10 import java.io.IOException;
11 import java.io.OutputStream;
12 import java.util.List;
13 import jp.sourceforge.mikutoga.binio.BinaryExporter;
14 import jp.sourceforge.mikutoga.vmd.model.LuminousColor;
15 import jp.sourceforge.mikutoga.vmd.model.LuminousMotion;
16 import jp.sourceforge.mikutoga.vmd.model.LuminousVector;
17 import jp.sourceforge.mikutoga.vmd.model.ShadowMode;
18 import jp.sourceforge.mikutoga.vmd.model.ShadowMotion;
19 import jp.sourceforge.mikutoga.vmd.model.VmdMotion;
20
21 /**
22  * ライティング情報のエクスポーター。
23  */
24 class LightingExporter extends BinaryExporter {
25
26     /**
27      * コンストラクタ。
28      * @param stream 出力ストリーム
29      */
30     LightingExporter(OutputStream stream){
31         super(stream);
32         return;
33     }
34
35
36     /**
37      * 照明情報を出力する。
38      * @param motion モーションデータ
39      * @throws IOException 出力エラー
40      */
41     void dumpLuminousMotion(VmdMotion motion) throws IOException{
42         List<LuminousMotion> list = motion.getLuminousMotionList();
43
44         int count = list.size();
45         dumpInt(count);
46
47         for(LuminousMotion luminousMotion : list){
48             int frame = luminousMotion.getFrameNumber();
49             dumpInt(frame);
50
51             LuminousColor color = luminousMotion.getColor();
52             dumpFloat(color.getColR());
53             dumpFloat(color.getColG());
54             dumpFloat(color.getColB());
55
56             LuminousVector vector = luminousMotion.getDirection();
57             dumpFloat(vector.getVecX());
58             dumpFloat(vector.getVecY());
59             dumpFloat(vector.getVecZ());
60         }
61
62         return;
63     }
64
65     /**
66      * シャドウ演出情報を出力する。
67      * @param motion モーションデータ
68      * @throws IOException 出力エラー
69      */
70     void dumpShadowMotion(VmdMotion motion) throws IOException{
71         List<ShadowMotion> list = motion.getShadowMotionList();
72
73         int count = list.size();
74         dumpInt(count);
75
76         for(ShadowMotion shadowMotion : list){
77             int frame = shadowMotion.getFrameNumber();
78             dumpInt(frame);
79
80             ShadowMode mode = shadowMotion.getShadowMode();
81             byte shadowType = mode.getEncodedByte();
82             dumpByte(shadowType);
83
84             float rawParam = shadowMotion.getRawScopeParam();
85             dumpFloat(rawParam);
86         }
87
88         return;
89     }
90
91 }