OSDN Git Service

SAX対応
[mikutoga/Pmd2XML.git] / src / main / java / jp / sfjp / mikutoga / pmd / model / RigidGroup.java
1 /*
2  * rigid group
3  *
4  * License : The MIT License
5  * Copyright(c) 2010 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.pmd.model;
9
10 import java.util.ArrayList;
11 import java.util.Iterator;
12 import java.util.List;
13
14 /**
15  * 剛体グループ情報。
16  * 剛体間の衝突設定の対象となる。
17  */
18 public class RigidGroup implements SerialNumbered, Iterable<RigidInfo> {
19
20     public static final int MAX_RIGID_GROUP = 16;
21
22
23     private final List<RigidInfo> rigidList = new ArrayList<RigidInfo>();
24
25     private int serialNo = -1;
26
27     /**
28      * コンストラクタ。
29      */
30     public RigidGroup(){
31         super();
32         return;
33     }
34
35     /**
36      * 所属する剛体のリストを返す。
37      * @return 剛体リスト
38      */
39     public List<RigidInfo> getRigidList(){
40         return this.rigidList;
41     }
42
43     /**
44      * {@inheritDoc}
45      * @return {@inheritDoc}
46      */
47     @Override
48     public Iterator<RigidInfo> iterator(){
49         return this.rigidList.iterator();
50     }
51
52     /**
53      * {@inheritDoc}
54      * @param num {@inheritDoc}
55      */
56     @Override
57     public void setSerialNumber(int num){
58         this.serialNo = num;
59         return;
60     }
61
62     /**
63      * {@inheritDoc}
64      * @return {@inheritDoc}
65      */
66     @Override
67     public int getSerialNumber(){
68         return this.serialNo;
69     }
70
71     /**
72      * グループ番号を返す。
73      * MMDでは1〜16までが使われる。
74      * 通し番号に1を加えた値と等しい。
75      * @return グループ番号
76      */
77     public int getGroupNumber(){
78         return this.serialNo + 1;
79     }
80
81     /**
82      * {@inheritDoc}
83      * @return {@inheritDoc}
84      */
85     @Override
86     public String toString(){
87         StringBuilder result = new StringBuilder();
88
89         result.append("RigidGroup(").append(getGroupNumber()).append(") [");
90
91         boolean dumped;
92
93         dumped = false;
94         for(RigidInfo rigid : this.rigidList){
95             if(dumped) result.append(", ");
96             result.append(rigid.getRigidName());
97             dumped = true;
98         }
99         result.append(']');
100
101         return result.toString();
102     }
103
104 }