2 * PMD joint information handler
4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sfjp.mikutoga.pmd.parser;
10 import jp.sfjp.mikutoga.bin.parser.LoopHandler;
11 import jp.sfjp.mikutoga.bin.parser.MmdFormatException;
12 import jp.sfjp.mikutoga.bin.parser.ParseStage;
15 * PMDモデルの各種剛体間ジョイント情報の通知用ハンドラ。
17 public interface PmdJointHandler extends LoopHandler {
20 ParseStage JOINT_LIST = new ParseStage();
24 * <p>{@link #JOINT_LIST}ループの構成要素。
25 * @param jointName ジョイント名
26 * @throws MmdFormatException 不正フォーマットによる
29 void pmdJointName(String jointName)
30 throws MmdFormatException;
33 * ジョイントが繋ぐ接続剛体IDの通知を受け取る。
34 * <p>{@link #JOINT_LIST}ループの構成要素。
35 * @param rigidIdA 接続剛体AのID
36 * @param rigidIdB 接続剛体BのID
37 * @throws MmdFormatException 不正フォーマットによる
40 void pmdJointLink(int rigidIdA, int rigidIdB)
41 throws MmdFormatException;
45 * <p>{@link #JOINT_LIST}ループの構成要素。
49 * @throws MmdFormatException 不正フォーマットによる
52 void pmdJointPosition(float posX, float posY, float posZ)
53 throws MmdFormatException;
57 * <p>{@link #JOINT_LIST}ループの構成要素。
58 * @param radX X軸回転量(radian)
59 * @param radY Y軸回転量(radian)
60 * @param radZ Z軸回転量(radian)
61 * @throws MmdFormatException 不正フォーマットによる
64 void pmdJointRotation(float radX, float radY, float radZ)
65 throws MmdFormatException;
69 * <p>{@link #JOINT_LIST}ループの構成要素。
70 * <p>※ [制限端 その1 <= その2] 条件を満たす必要はあるか?
71 * @param posXlim1 X座標制限端その1
72 * @param posXlim2 X座標制限端その2
73 * @param posYlim1 Y座標制限端その1
74 * @param posYlim2 Y座標制限端その2
75 * @param posZlim1 Z座標制限端その1
76 * @param posZlim2 Z座標制限端その2
77 * @throws MmdFormatException 不正フォーマットによる
80 void pmdPositionLimit(float posXlim1, float posXlim2,
81 float posYlim1, float posYlim2,
82 float posZlim1, float posZlim2 )
83 throws MmdFormatException;
87 * <p>{@link #JOINT_LIST}ループの構成要素。
88 * <p>※ [制限端 その1 <= その2] 条件を満たす必要はあるか?
89 * @param radXlim1 X軸制限端その1(radian)
90 * @param radXlim2 X軸制限端その2(radian)
91 * @param radYlim1 Y軸制限端その1(radian)
92 * @param radYlim2 Y軸制限端その2(radian)
93 * @param radZlim1 Z軸制限端その1(radian)
94 * @param radZlim2 Z軸制限端その2(radian)
95 * @throws MmdFormatException 不正フォーマットによる
98 void pmdRotationLimit(float radXlim1, float radXlim2,
99 float radYlim1, float radYlim2,
100 float radZlim1, float radZlim2 )
101 throws MmdFormatException;
104 * ジョイントのばね移動情報の通知を受け取る。
105 * <p>{@link #JOINT_LIST}ループの構成要素。
106 * @param elasticPosX X座標
107 * @param elasticPosY Y座標
108 * @param elasticPosZ Z座標
109 * @throws MmdFormatException 不正フォーマットによる
112 void pmdElasticPosition(float elasticPosX,
115 throws MmdFormatException;
118 * ジョイントのばね回転情報の通知を受け取る。
119 * <p>{@link #JOINT_LIST}ループの構成要素。
120 * @param elasticDegX X軸変量(degree)
121 * @param elasticDegY Y軸変量(degree)
122 * @param elasticDegZ Z軸変量(degree)
123 * @throws MmdFormatException 不正フォーマットによる
126 void pmdElasticRotation(float elasticDegX,
129 throws MmdFormatException;