OSDN Git Service

PMD出力機能及びXML入出力機能のソースをマージ
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / JointInfo.java
1 /*\r
2  * joint 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 import jp.sourceforge.mikutoga.corelib.I18nText;\r
11 \r
12 /**\r
13  * 剛体間ジョイント情報。\r
14  */\r
15 public class JointInfo {\r
16 \r
17     private final I18nText jointName = new I18nText();\r
18 \r
19     private RigidInfo rigidA;\r
20     private RigidInfo rigidB;\r
21 \r
22     private final Pos3d position = new Pos3d();\r
23     private final Rad3d rotation = new Rad3d();\r
24 \r
25     private final Pos3d elaPosition = new Pos3d();\r
26     private final Deg3d elaRotation = new Deg3d();\r
27 \r
28     private final TripletRange posRange = new TripletRange();\r
29     private final TripletRange rotRange = new TripletRange();\r
30 \r
31     /**\r
32      * コンストラクタ。\r
33      */\r
34     public JointInfo(){\r
35         super();\r
36         return;\r
37     }\r
38 \r
39     /**\r
40      * ジョイント名を返す。\r
41      * @return ジョイント名\r
42      */\r
43     public I18nText getJointName(){\r
44         return this.jointName;\r
45     }\r
46 \r
47     /**\r
48      * 連結剛体Aを返す。\r
49      * @return 連結剛体A\r
50      */\r
51     public RigidInfo getRigidA(){\r
52         return this.rigidA;\r
53     }\r
54 \r
55     /**\r
56      * 連結剛体Bを返す。\r
57      * @return 連結剛体B\r
58      */\r
59     public RigidInfo getRigidB(){\r
60         return this.rigidB;\r
61     }\r
62 \r
63     /**\r
64      * 連結する剛体を設定する。\r
65      * @param rigidA 連結剛体A\r
66      * @param rigidB 連結剛体B\r
67      */\r
68     public void setRigidPair(RigidInfo rigidA, RigidInfo rigidB){\r
69         this.rigidA = rigidA;\r
70         this.rigidB = rigidB;\r
71         return;\r
72     }\r
73 \r
74     /**\r
75      * ジョイントの位置を返す。\r
76      * @return ジョイントの位置\r
77      */\r
78     public Pos3d getPosition(){\r
79         return this.position;\r
80     }\r
81 \r
82     /**\r
83      * ジョイントの姿勢を返す。\r
84      * @return ジョイントの姿勢\r
85      */\r
86     public Rad3d getRotation(){\r
87         return this.rotation;\r
88     }\r
89 \r
90     /**\r
91      * ジョイントのバネ位置を返す。\r
92      * @return ジョイントのバネ位置\r
93      */\r
94     public Pos3d getElasticPosition(){\r
95         return this.elaPosition;\r
96     }\r
97 \r
98     /**\r
99      * ジョイントのバネ姿勢を返す。\r
100      * @return ジョイントのバネ姿勢\r
101      */\r
102     public Deg3d getElasticRotation(){\r
103         return this.elaRotation;\r
104     }\r
105 \r
106     /**\r
107      * ジョイントの位置制約を返す。\r
108      * @return ジョイントの位置制約\r
109      */\r
110     public TripletRange getPositionRange(){\r
111         return this.posRange;\r
112     }\r
113 \r
114     /**\r
115      * ジョイントの姿勢制約を返す。\r
116      * @return ジョイントの姿勢制約\r
117      */\r
118     public TripletRange getRotationRange(){\r
119         return this.rotRange;\r
120     }\r
121 \r
122     /**\r
123      * {@inheritDoc}\r
124      * @return {@inheritDoc}\r
125      */\r
126     @Override\r
127     public String toString(){\r
128         StringBuilder result = new StringBuilder();\r
129 \r
130         result.append("Joint ");\r
131         result.append(this.jointName);\r
132         result.append("[")\r
133               .append(this.rigidA.getRigidName())\r
134               .append("<=>")\r
135               .append(this.rigidB.getRigidName())\r
136               .append("] ");\r
137         result.append(this.position).append(' ');\r
138         result.append(this.rotation).append(' ');\r
139 \r
140         result.append("poslim{").append(this.posRange).append("} ");\r
141         result.append("rotlim{").append(this.rotRange).append("} ");\r
142 \r
143         result.append("ela:").append(this.elaPosition).append(' ');\r
144         result.append("ela:").append(this.elaRotation);\r
145 \r
146         return result.toString();\r
147     }\r
148 \r
149 }\r