2 * boolean information exporter
4 * License : The MIT License
5 * Copyright(c) 2013 MikuToga Partners
8 package jp.sfjp.mikutoga.vmd.model.binio;
10 import java.io.IOException;
11 import java.io.OutputStream;
12 import java.util.List;
13 import jp.sfjp.mikutoga.bin.export.BinaryExporter;
14 import jp.sfjp.mikutoga.bin.export.IllegalTextExportException;
15 import jp.sfjp.mikutoga.vmd.VmdConst;
16 import jp.sfjp.mikutoga.vmd.model.IkSwitch;
17 import jp.sfjp.mikutoga.vmd.model.NumberedVmdFlag;
18 import jp.sfjp.mikutoga.vmd.model.VmdMotion;
23 * <p>MikuMikuDance Ver7.40以降でサポート
25 class BoolExporter extends BinaryExporter{
27 private static final byte[] FDFILLER =
28 { (byte)0x00, (byte)0xfd };
34 * @param stream 出力ストリーム
36 BoolExporter(OutputStream stream){
45 * @param motion モーションデータ
46 * @throws IOException 出力エラー
47 * @throws IllegalTextExportException 不正な文字列が指定された。
49 void dumpNumberedFlagMotion(VmdMotion motion)
50 throws IOException, IllegalTextExportException {
51 List<NumberedVmdFlag> list = motion.getNumberedFlagList();
53 if(list.isEmpty()) return;
55 int count = list.size();
58 for(NumberedVmdFlag flag : list){
59 int frameNo = flag.getFrameNumber();
63 if(flag.isModelShown()) showModel = 0x01;
64 else showModel = 0x00;
78 * @throws IOException 出力エラー
79 * @throws IllegalTextExportException 不正な文字列が指定された。
81 private void dumpIkSwitch(NumberedVmdFlag flag)
82 throws IOException, IllegalTextExportException {
83 List<IkSwitch> swList = flag.getIkSwitchList();
84 int swNo = swList.size();
87 for(IkSwitch ikSwitch : swList){
88 String boneName = ikSwitch.getBoneName();
89 dumpFixedW31j(boneName, VmdConst.IKSWBONENAME_MAX, FDFILLER);
92 if(ikSwitch.isValid()) ikValid = 0x01;