2 * PMD joint information handler
\r
4 * License : The MIT License
\r
5 * Copyright(c) 2010 MikuToga Partners
\r
8 package jp.sourceforge.mikutoga.parser.pmd;
\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
15 * PMDモデルの各種剛体間ジョイント情報の通知用ハンドラ。
\r
17 public interface PmdJointHandler extends LoopHandler {
\r
22 class PmdJointStage extends ParseStage{
\r
24 PmdJointStage(){ super(); return; }
\r
27 /** ジョイント情報抽出ループ。 */
\r
28 PmdJointStage JOINT_LIST = new PmdJointStage();
\r
32 * {@link #JOINT_LIST}ループの構成要素。
\r
33 * @param jointName ジョイント名
\r
34 * @throws MmdFormatException 不正フォーマットによる
\r
37 void pmdJointName(String jointName)
\r
38 throws MmdFormatException;
\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
48 void pmdJointLink(int rigidIdA, int rigidIdB)
\r
49 throws MmdFormatException;
\r
53 * {@link #JOINT_LIST}ループの構成要素。
\r
57 * @throws MmdFormatException 不正フォーマットによる
\r
60 void pmdJointPosition(float posX, float posY, float posZ)
\r
61 throws MmdFormatException;
\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
72 void pmdJointRotation(float radX, float radY, float radZ)
\r
73 throws MmdFormatException;
\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
88 void pmdPositionLimit(float posXlim1, float posXlim2,
\r
89 float posYlim1, float posYlim2,
\r
90 float posZlim1, float posZlim2 )
\r
91 throws MmdFormatException;
\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
106 void pmdRotationLimit(float radXlim1, float radXlim2,
\r
107 float radYlim1, float radYlim2,
\r
108 float radZlim1, float radZlim2 )
\r
109 throws MmdFormatException;
\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
120 void pmdElasticPosition(float elasticPosX,
\r
122 float elasticPosZ )
\r
123 throws MmdFormatException;
\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
134 void pmdElasticRotation(float elasticDegX,
\r
136 float elasticDegZ )
\r
137 throws MmdFormatException;
\r