OSDN Git Service

MMD Ver7.40 対応 新スキーマ開発開始
[mikutoga/Vmd2XML.git] / src / main / java / jp / sfjp / mikutoga / vmd / model / NumberedVmdFlag.java
1 /*
2  * model presence switch
3  *
4  * License : The MIT License
5  * Copyright(c) 2013 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.vmd.model;
9
10 import java.text.MessageFormat;
11 import java.util.Iterator;
12 import java.util.LinkedList;
13 import java.util.List;
14 import jp.sfjp.mikutoga.vmd.AbstractNumbered;
15
16 /**
17  * フレーム番号が付けられた各種モーションフラグの管理を行う。
18  */
19 public class NumberedVmdFlag
20         extends AbstractNumbered
21         implements Iterable<IkSwitch> {
22
23     private static final String MSG_TXT =
24               "#{0} model precense : {1}";
25
26
27     private boolean shown = true;
28     private List<IkSwitch> ikSwList = new LinkedList<IkSwitch>();
29
30
31     /**
32      * コンストラクタ。
33      * <p>モデル表示ありの状態で初期化される。
34      */
35     public NumberedVmdFlag(){
36         super();
37         return;
38     }
39
40
41     /**
42      * モデルを表示するか否か返す。
43      * @return 表示するならtrue
44      */
45     public boolean isModelShown(){
46         return this.shown;
47     }
48
49     /**
50      * モデルを表示するか否か設定する。
51      * @param shownArg 表示するならtrue
52      */
53     public void setModelShown(boolean shownArg){
54         this.shown = shownArg;
55         return;
56     }
57
58     /**
59      * 個別IKボーンフラグのリストを返す。
60      * @return 個別IKボーンフラグのリスト
61      */
62     public List<IkSwitch> getIkSwitchList(){
63         return this.ikSwList;
64     }
65
66     /**
67      * {@inheritDoc}
68      * @return {@inheritDoc}
69      */
70     @Override
71     public Iterator<IkSwitch> iterator(){
72         return this.ikSwList.iterator();
73     }
74
75     /**
76      * {@inheritDoc}
77      * @return {@inheritDoc}
78      */
79     @Override
80     public String toString(){
81         String msg;
82         msg = MessageFormat.format(MSG_TXT, getFrameNumber(), this.shown);
83
84         StringBuilder submsg = new StringBuilder(msg);
85         for(IkSwitch sw : this.ikSwList){
86             submsg.append('\n').append("\u0020").append(sw.toString());
87         }
88
89         return submsg.toString();
90     }
91
92 }