OSDN Git Service

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