4 * License : The MIT License
\r
5 * Copyright(c) 2010 MikuToga Partners
\r
8 package jp.sourceforge.mikutoga.pmd;
\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.I18nText;
\r
14 import jp.sourceforge.mikutoga.corelib.SerialNumbered;
\r
18 * ボーングループ名と0個以上のボーンを配下に持つ。
\r
19 * 通し番号0のボーングループは、暗黙に用意される「デフォルトボーングループ」とする。
\r
21 public class BoneGroup implements SerialNumbered , Iterable<BoneInfo> {
\r
23 private final I18nText groupName = new I18nText();
\r
25 private final List<BoneInfo> boneList = new ArrayList<BoneInfo>();
\r
27 private int serialNo = -1;
\r
41 public I18nText getGroupName(){
\r
42 return this.groupName;
\r
49 public List<BoneInfo> getBoneList(){
\r
50 return this.boneList;
\r
54 * デフォルトボーングループか否か判定する。
\r
55 * 通し番号が0ならデフォルトボーングループ。
\r
56 * @return デフォルトボーングループならtrue
\r
58 public boolean isDefaultBoneGroup(){
\r
59 if(this.serialNo == 0) return true;
\r
65 * @return {@inheritDoc}
\r
67 public Iterator<BoneInfo> iterator(){
\r
68 return this.boneList.iterator();
\r
73 * @param num {@inheritDoc}
\r
75 public void setSerialNumber(int num){
\r
76 this.serialNo = num;
\r
82 * @return {@inheritDoc}
\r
84 public int getSerialNumber(){
\r
85 return this.serialNo;
\r
89 * ボーングループ番号(ボーン枠番号)を返す。
\r
91 * デフォルトボーングループは-1となる。
\r
94 public int getBoneGroupNumber(){
\r
95 return this.serialNo - 1;
\r
100 * @return {@inheritDoc}
\r
103 public String toString(){
\r
104 StringBuilder result = new StringBuilder();
\r
106 result.append("BoneGroup(")
\r
107 .append(this.groupName)
\r
110 boolean dumped = false;
\r
111 for(BoneInfo bone : this){
\r
112 if(dumped) result.append(", ");
\r
113 result.append(bone.getBoneName());
\r
117 result.append(']');
\r
119 return result.toString();
\r