OSDN Git Service

PMD出力機能及びXML入出力機能のソースをマージ
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / RigidShape.java
1 /*\r
2  * rigid shape information\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 /**\r
11  * 剛体形状に関する情報。\r
12  * 球及びカプセルの半径と箱の幅は同じ値が用いられる。\r
13  */\r
14 public class RigidShape {\r
15 \r
16     private RigidShapeType type = RigidShapeType.BOX;\r
17     private float width  = 0.1f;\r
18     private float height = 0.1f;\r
19     private float depth  = 0.1f;\r
20 \r
21     /**\r
22      * コンストラクタ。\r
23      */\r
24     public RigidShape(){\r
25         super();\r
26         return;\r
27     }\r
28 \r
29     /**\r
30      * 剛体形状種別を返す。\r
31      * @return 剛体形状種別\r
32      */\r
33     public RigidShapeType getShapeType(){\r
34         return this.type;\r
35     }\r
36 \r
37     /**\r
38      * 剛体形状種別を設定する。\r
39      * @param typeArg 剛体形状種別\r
40      * @throws NullPointerException 引数がnull\r
41      */\r
42     public void setShapeType(RigidShapeType typeArg)\r
43             throws NullPointerException{\r
44         if(typeArg == null) throw new NullPointerException();\r
45         this.type = typeArg;\r
46         return;\r
47     }\r
48 \r
49     /**\r
50      * 箱の幅を返す。\r
51      * @return 箱の幅\r
52      */\r
53     public float getWidth(){\r
54         return this.width;\r
55     }\r
56 \r
57     /**\r
58      * 箱の幅を設定する。\r
59      * @param width 箱の幅\r
60      */\r
61     public void setWidth(float width){\r
62         this.width = width;\r
63         return;\r
64     }\r
65 \r
66     /**\r
67      * 箱及びカプセルの高さを返す。\r
68      * @return 箱及びカプセルの高さ\r
69      */\r
70     public float getHeight(){\r
71         return this.height;\r
72     }\r
73 \r
74     /**\r
75      * 箱及びカプセルの高さを設定する。\r
76      * @param height 箱及びカプセルの高さ\r
77      */\r
78     public void setHeight(float height){\r
79         this.height = height;\r
80         return;\r
81     }\r
82 \r
83     /**\r
84      * 箱の奥行きを返す。\r
85      * @return 箱の奥行き\r
86      */\r
87     public float getDepth(){\r
88         return this.depth;\r
89     }\r
90 \r
91     /**\r
92      * 箱の奥行きを設定する。\r
93      * @param depth 箱の奥行き\r
94      */\r
95     public void setDepth(float depth){\r
96         this.depth = depth;\r
97         return;\r
98     }\r
99 \r
100     /**\r
101      * 球及びカプセルの半径を返す。\r
102      * @return 球及びカプセルの半径\r
103      */\r
104     public float getRadius(){\r
105         return this.width;\r
106     }\r
107 \r
108     /**\r
109      * 球及びカプセルの半径を設定する。\r
110      * @param radius 球及びカプセルの半径\r
111      */\r
112     public void setRadius(float radius){\r
113         this.width = radius;\r
114         return;\r
115     }\r
116 \r
117     /**\r
118      * {@inheritDoc}\r
119      * @return {@inheritDoc}\r
120      */\r
121     @Override\r
122     public String toString(){\r
123         StringBuilder result = new StringBuilder();\r
124 \r
125         result.append(this.type).append(' ');\r
126 \r
127         switch(this.type){\r
128         case SPHERE:\r
129             result.append("r=").append(this.width);\r
130             break;\r
131         case BOX:\r
132             result.append("w=").append(this.width).append(", ");\r
133             result.append("h=").append(this.height).append(", ");\r
134             result.append("d=").append(this.depth);\r
135             break;\r
136         case CAPSULE:\r
137             result.append("r=").append(this.width).append(", ");\r
138             result.append("h=").append(this.height);\r
139             break;\r
140         default:\r
141             assert false;\r
142             throw new AssertionError();\r
143         }\r
144 \r
145         return  result.toString();\r
146     }\r
147 \r
148 }\r