OSDN Git Service

Merge release/v2.103.2
[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 final List<IkSwitch> ikSwList = new LinkedList<>();
29
30
31     /**
32      * コンストラクタ。
33      *
34      * <p>モデル表示ありの状態で初期化される。
35      */
36     public NumberedVmdFlag(){
37         super();
38         return;
39     }
40
41
42     /**
43      * モデルを表示するか否か返す。
44      *
45      * @return 表示するならtrue
46      */
47     public boolean isModelShown(){
48         return this.shown;
49     }
50
51     /**
52      * モデルを表示するか否か設定する。
53      *
54      * @param shownArg 表示するならtrue
55      */
56     public void setModelShown(boolean shownArg){
57         this.shown = shownArg;
58         return;
59     }
60
61     /**
62      * 個別IKボーンフラグのリストを返す。
63      *
64      * @return 個別IKボーンフラグのリスト
65      */
66     public List<IkSwitch> getIkSwitchList(){
67         return this.ikSwList;
68     }
69
70     /**
71      * {@inheritDoc}
72      *
73      * @return {@inheritDoc}
74      */
75     @Override
76     public Iterator<IkSwitch> iterator(){
77         return this.ikSwList.iterator();
78     }
79
80     /**
81      * {@inheritDoc}
82      *
83      * @return {@inheritDoc}
84      */
85     @Override
86     public String toString(){
87         String msg;
88         msg = MessageFormat.format(MSG_TXT, getFrameNumber(), this.shown);
89
90         StringBuilder submsg = new StringBuilder(msg);
91         for(IkSwitch sw : this.ikSwList){
92             submsg.append("\n\u0020").append(sw.toString());
93         }
94
95         return submsg.toString();
96     }
97
98 }