OSDN Git Service

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