OSDN Git Service

TogaGem1.103.2版より移行。
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / parser / pmd / PmdJointHandler.java
1 /*\r
2  * PMD joint information handler\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.parser.pmd;\r
9 \r
10 import jp.sourceforge.mikutoga.parser.LoopHandler;\r
11 import jp.sourceforge.mikutoga.parser.MmdFormatException;\r
12 import jp.sourceforge.mikutoga.parser.ParseStage;\r
13 \r
14 /**\r
15  * PMDモデルの各種剛体間ジョイント情報の通知用ハンドラ。\r
16  */\r
17 public interface PmdJointHandler extends LoopHandler {\r
18 \r
19     /**\r
20      * ジョイント情報パースステージ。\r
21      */\r
22     class PmdJointStage extends ParseStage{\r
23         /** コンストラクタ。 */\r
24         PmdJointStage(){ super(); return; }\r
25     }\r
26 \r
27     /** ジョイント情報抽出ループ。 */\r
28     PmdJointStage JOINT_LIST = new PmdJointStage();\r
29 \r
30     /**\r
31      * ジョイント名の通知を受け取る。\r
32      * {@link #JOINT_LIST}ループの構成要素。\r
33      * @param jointName ジョイント名\r
34      * @throws MmdFormatException 不正フォーマットによる\r
35      * パース処理の中断をパーサに指示。\r
36      */\r
37     void pmdJointName(String jointName)\r
38         throws MmdFormatException;\r
39 \r
40     /**\r
41      * ジョイントが繋ぐ接続剛体IDの通知を受け取る。\r
42      * {@link #JOINT_LIST}ループの構成要素。\r
43      * @param rigidIdA 接続剛体AのID\r
44      * @param rigidIdB 接続剛体BのID\r
45      * @throws MmdFormatException 不正フォーマットによる\r
46      * パース処理の中断をパーサに指示。\r
47      */\r
48     void pmdJointLink(int rigidIdA, int rigidIdB)\r
49         throws MmdFormatException;\r
50 \r
51     /**\r
52      * ジョイント位置の通知を受け取る。\r
53      * {@link #JOINT_LIST}ループの構成要素。\r
54      * @param posX X座標\r
55      * @param posY Y座標\r
56      * @param posZ Z座標\r
57      * @throws MmdFormatException 不正フォーマットによる\r
58      * パース処理の中断をパーサに指示。\r
59      */\r
60     void pmdJointPosition(float posX, float posY, float posZ)\r
61         throws MmdFormatException;\r
62 \r
63     /**\r
64      * ジョイント回転姿勢の通知を受け取る。\r
65      * {@link #JOINT_LIST}ループの構成要素。\r
66      * @param radX X軸回転量(radian)\r
67      * @param radY Y軸回転量(radian)\r
68      * @param radZ Z軸回転量(radian)\r
69      * @throws MmdFormatException 不正フォーマットによる\r
70      * パース処理の中断をパーサに指示。\r
71      */\r
72     void pmdJointRotation(float radX, float radY, float radZ)\r
73         throws MmdFormatException;\r
74 \r
75     /**\r
76      * ジョイント移動制限の通知を受け取る。\r
77      * {@link #JOINT_LIST}ループの構成要素。\r
78      * ※(制限端その1<=その2)条件を満たす必要はあるか?\r
79      * @param posXlim1 X座標制限端その1\r
80      * @param posXlim2 X座標制限端その2\r
81      * @param posYlim1 Y座標制限端その1\r
82      * @param posYlim2 Y座標制限端その2\r
83      * @param posZlim1 Z座標制限端その1\r
84      * @param posZlim2 Z座標制限端その2\r
85      * @throws MmdFormatException 不正フォーマットによる\r
86      * パース処理の中断をパーサに指示。\r
87      */\r
88     void pmdPositionLimit(float posXlim1, float posXlim2,\r
89                             float posYlim1, float posYlim2,\r
90                             float posZlim1, float posZlim2 )\r
91         throws MmdFormatException;\r
92 \r
93     /**\r
94      * ジョイント回転制限の通知を受け取る。\r
95      * {@link #JOINT_LIST}ループの構成要素。\r
96      * ※(制限端その1<=その2)条件を満たす必要はあるか?\r
97      * @param radXlim1 X軸制限端その1(radian)\r
98      * @param radXlim2 X軸制限端その2(radian)\r
99      * @param radYlim1 Y軸制限端その1(radian)\r
100      * @param radYlim2 Y軸制限端その2(radian)\r
101      * @param radZlim1 Z軸制限端その1(radian)\r
102      * @param radZlim2 Z軸制限端その2(radian)\r
103      * @throws MmdFormatException 不正フォーマットによる\r
104      * パース処理の中断をパーサに指示。\r
105      */\r
106     void pmdRotationLimit(float radXlim1, float radXlim2,\r
107                             float radYlim1, float radYlim2,\r
108                             float radZlim1, float radZlim2 )\r
109         throws MmdFormatException;\r
110 \r
111     /**\r
112      * ジョイントのばね移動情報の通知を受け取る。\r
113      * {@link #JOINT_LIST}ループの構成要素。\r
114      * @param elasticPosX X座標\r
115      * @param elasticPosY Y座標\r
116      * @param elasticPosZ Z座標\r
117      * @throws MmdFormatException 不正フォーマットによる\r
118      * パース処理の中断をパーサに指示。\r
119      */\r
120     void pmdElasticPosition(float elasticPosX,\r
121                                float elasticPosY,\r
122                                float elasticPosZ )\r
123         throws MmdFormatException;\r
124 \r
125     /**\r
126      * ジョイントのばね回転情報の通知を受け取る。\r
127      * {@link #JOINT_LIST}ループの構成要素。\r
128      * @param elasticDegX X軸変量(degree)\r
129      * @param elasticDegY Y軸変量(degree)\r
130      * @param elasticDegZ Z軸変量(degree)\r
131      * @throws MmdFormatException 不正フォーマットによる\r
132      * パース処理の中断をパーサに指示。\r
133      */\r
134     void pmdElasticRotation(float elasticDegX,\r
135                                float elasticDegY,\r
136                                float elasticDegZ )\r
137         throws MmdFormatException;\r
138 \r
139 }\r