2 * motion flag listener from XML
4 * License : The MIT License
5 * Copyright(c) 2013 MikuToga Partners
8 package jp.sfjp.mikutoga.vmd.model.xml;
10 import java.util.List;
11 import jp.sfjp.mikutoga.vmd.model.IkSwitch;
12 import jp.sfjp.mikutoga.vmd.model.NumberedVmdFlag;
13 import jp.sfjp.mikutoga.vmd.model.VmdMotion;
14 import jp.sfjp.mikutoga.xml.SaxAttr;
15 import org.xml.sax.Attributes;
18 * モーションフラグ関連のXML要素出現イベントを受信する。
20 class SaxFlagListener extends SaxVmdListener {
22 private NumberedVmdFlag currentFlagMotion = null;
36 * @param tag {@inheritDoc}
37 * @param attr {@inheritDoc}
40 void openTag(VmdTag tag, Attributes attr){
57 * @param tag {@inheritDoc}
60 void closeTag(VmdTag tag){
61 if(tag == VmdTag.FLAG_MOTION){
71 private void openFlagMotion(Attributes attr){
72 this.currentFlagMotion = new NumberedVmdFlag();
74 int frameNo = SaxAttr.getIntAttr(attr, XmlAttr.ATTR_FRAME);
76 SaxAttr.getBooleanAttr(attr, XmlAttr.ATTR_SHOWMODEL);
78 this.currentFlagMotion.setFrameNumber(frameNo);
79 this.currentFlagMotion.setModelShown(showModel);
87 private void closeFlagMotion(){
88 VmdMotion motion = getVmdMotion();
89 List<NumberedVmdFlag> flagList = motion.getNumberedFlagList();
90 flagList.add(this.currentFlagMotion);
92 this.currentFlagMotion = null;
101 private void openIkSwitch(Attributes attr){
102 String boneName = SaxAttr.getStringAttr(attr, XmlAttr.ATTR_NAME);
104 SaxAttr.getBooleanAttr(attr, XmlAttr.ATTR_VALID);
106 IkSwitch ikSw = new IkSwitch();
107 ikSw.setBoneName(boneName);
108 ikSw.setValid(valid);
110 List<IkSwitch> ikList = this.currentFlagMotion.getIkSwitchList();