OSDN Git Service

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