OSDN Git Service

925252353c91c52e79db409c60a093316c52a39a
[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     @Override\r
46     public Iterator<RigidInfo> iterator(){\r
47         return this.rigidList.iterator();\r
48     }\r
49 \r
50     /**\r
51      * {@inheritDoc}\r
52      * @param num {@inheritDoc}\r
53      */\r
54     @Override\r
55     public void setSerialNumber(int num){\r
56         this.serialNo = num;\r
57         return;\r
58     }\r
59 \r
60     /**\r
61      * {@inheritDoc}\r
62      * @return {@inheritDoc}\r
63      */\r
64     @Override\r
65     public int getSerialNumber(){\r
66         return this.serialNo;\r
67     }\r
68 \r
69     /**\r
70      * グループ番号を返す。\r
71      * MMDでは1〜16までが使われる。\r
72      * 通し番号に1を加えた値と等しい。\r
73      * @return グループ番号\r
74      */\r
75     public int getGroupNumber(){\r
76         return this.serialNo + 1;\r
77     }\r
78 \r
79     /**\r
80      * {@inheritDoc}\r
81      * @return {@inheritDoc}\r
82      */\r
83     @Override\r
84     public String toString(){\r
85         StringBuilder result = new StringBuilder();\r
86 \r
87         result.append("RigidGroup(").append(getGroupNumber()).append(") [");\r
88 \r
89         boolean dumped;\r
90 \r
91         dumped = false;\r
92         for(RigidInfo rigid : this.rigidList){\r
93             if(dumped) result.append(", ");\r
94             result.append(rigid.getRigidName());\r
95             dumped = true;\r
96         }\r
97         result.append(']');\r
98 \r
99         return result.toString();\r
100     }\r
101 \r
102 }\r