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;
22 * <p>MikuMikuDance Ver7.40以降でサポート
24 class BoolExporter extends BinaryExporter{
26 private static final byte[] FDFILLER =
27 { (byte)0x00, (byte)0xfd };
32 * @param stream 出力ストリーム
34 BoolExporter(OutputStream stream){
42 * @param motion モーションデータ
43 * @throws IOException 出力エラー
44 * @throws IllegalTextExportException 不正な文字列が指定された。
46 void dumpNumberedFlagMotion(VmdMotion motion)
47 throws IOException, IllegalTextExportException {
48 List<NumberedVmdFlag> list = motion.getNumberedFlagList();
50 if(list.isEmpty()) return;
52 int count = list.size();
55 for(NumberedVmdFlag flag : list){
56 int frameNo = flag.getFrameNumber();
60 if(flag.isModelShown()) showModel = 0x01;
61 else showModel = 0x00;
74 * @throws IOException 出力エラー
75 * @throws IllegalTextExportException 不正な文字列が指定された。
77 private void dumpIkSwitch(NumberedVmdFlag flag)
78 throws IOException, IllegalTextExportException {
79 List<IkSwitch> swList = flag.getIkSwitchList();
80 int swNo = swList.size();
83 for(IkSwitch ikSwitch : swList){
84 String boneName = ikSwitch.getBoneName();
85 dumpFixedW31j(boneName, VmdConst.IKSWBONENAME_MAX, FDFILLER);
88 if(ikSwitch.isValid()) ikValid = 0x01;