OSDN Git Service

Merge develop into pomconfig
[mikutoga/TogaGem.git] / src / main / java / jp / sfjp / mikutoga / vmd / parser / VmdBasicHandler.java
index 08b8ba0..8a5d1c9 100644 (file)
@@ -14,173 +14,210 @@ import jp.sfjp.mikutoga.bin.parser.ParseStage;
 /**
  * VMDモーションファイルの基本情報(ボーンモーション/モーフモーション)
  * の通知用ハンドラ。
+ *
  * <p>フレーム番号は相対的なものとなる。
  * 一番若いモーションのフレーム番号が0となる模様。
+ *
  * <p>位置情報の座標基準は左手系ワールド座標で表される。
+ *
  * <p>モーション補間情報は三次ベジェ曲線により記述される。
  * 三次ベジェ曲線は4つの制御点P0,P1,P2,P3により定義される。
  * P0は(0,0)、P3は(127,127)で固定。
  * P1,P2はP0,P3を対角線とする正方形の内部になければならない。
  * 直線補間の場合、P1には(20,20)、P2には(107,107)が使われることが多い。
+ *
  * <p>補間情報は直後のボーンモーション情報との差分に関するもの。
  */
 public interface VmdBasicHandler extends LoopHandler {
 
     /** ボーンモーション抽出ループ識別子。 */
-    ParseStage BONEMOTION_LIST = new ParseStage();
+    public static final ParseStage BONEMOTION_LIST = new ParseStage();
 
     /** モーフ抽出ループ識別子。 */
-    ParseStage MORPH_LIST = new ParseStage();
+    public static final ParseStage MORPH_LIST = new ParseStage();
 
 
     /**
      * VMDファイルのパース処理開始の通知を受け取る。
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdParseStart()
+    public abstract void vmdParseStart()
             throws MmdFormatException;
 
     /**
      * VMDファイルのパース処理終了の通知を受け取る。
-     * @param hasMoreData 入力ソースに
-     * まだ読み込まれていないデータがあればtrue
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @param hasMoreData
+     *     入力ソースにまだ読み込まれていないデータがあればtrue
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdParseEnd(boolean hasMoreData)
+    public abstract void vmdParseEnd(boolean hasMoreData)
             throws MmdFormatException;
 
     /**
      * VMDファイルの固定長ヘッダを通知する。
      * @param header ヘッダ情報
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdHeaderInfo(byte[] header)
+    public abstract void vmdHeaderInfo(byte[] header)
             throws MmdFormatException;
 
 
     /**
      * モーションの適用先モデル名に関する情報を通知する。
+     *
      * <p>カメラやライティングなどの演出データには
      * 特殊なモデル名が使われる。
+     *
      * @param modelName モデル名
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdModelName(String modelName)
+    public abstract void vmdModelName(String modelName)
             throws MmdFormatException;
 
     /**
      * ボーンモーションのボーン名及びキーフレーム番号に関する情報を通知する。
+     *
      * <p>{@link #BONEMOTION_LIST}ループの構成要素。
+     *
      * @param boneName ボーン名
      * @param keyFrameNo キーフレーム番号
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdBoneMotion(String boneName, int keyFrameNo)
+    public abstract void vmdBoneMotion(String boneName, int keyFrameNo)
             throws MmdFormatException;
 
     /**
      * ボーン移動モーション情報の通知を受け取る。
+     *
      * <p>座標基準は親ボーンもしくはワールド座標。
+     *
      * <p>{@link #BONEMOTION_LIST}ループの構成要素。
+     *
      * @param xPos X座標
      * @param yPos Y座標
      * @param zPos Z座標
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdBonePosition(float xPos, float yPos, float zPos)
+    public abstract void vmdBonePosition(float xPos, float yPos, float zPos)
             throws MmdFormatException;
 
     /**
      * ボーン回転モーション情報の通知を受け取る。
+     *
      * <p>回転及び姿勢はクォータニオンによって記述される。
      * MMDUI上のボーン数値入力YXZオイラー角と等価な回転。
+     *
      * <p>座標基準は親ボーンもしくはワールド座標。
+     *
      * <p>※ボーン種別によっては、無意味な情報。
+     *
      * <p>{@link #BONEMOTION_LIST}ループの構成要素。
+     *
      * @param qx クォータニオン虚部 X
      * @param qy クォータニオン虚部 Y
      * @param qz クォータニオン虚部 Z
      * @param qw クォータニオン実部 W
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdBoneRotationQt(float qx, float qy, float qz, float qw)
+    public abstract void vmdBoneRotationQt(
+            float qx, float qy, float qz, float qw)
             throws MmdFormatException;
 
     /**
      * ボーンモーションX軸移動補間情報の通知を受け取る。
+     *
      * <p>三次ベジェ曲線のP1,P2点に関する情報を受け取る。
+     *
      * <p>{@link #BONEMOTION_LIST}ループの構成要素。
+     *
      * @param xP1x P1点のX座標
      * @param xP1y P1点のY座標
      * @param xP2x P2点のX座標
      * @param xP2y P2点のY座標
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdBoneIntpltXpos(byte xP1x, byte xP1y, byte xP2x, byte xP2y)
+    public abstract void vmdBoneIntpltXpos(
+            byte xP1x, byte xP1y, byte xP2x, byte xP2y)
             throws MmdFormatException;
 
     /**
      * ボーンモーションY軸移動補間情報の通知を受け取る。
+     *
      * <p>三次ベジェ曲線のP1,P2点に関する情報を受け取る。
+     *
      * <p>{@link #BONEMOTION_LIST}ループの構成要素。
+     *
      * @param yP1x P1点のX座標
      * @param yP1y P1点のY座標
      * @param yP2x P2点のX座標
      * @param yP2y P2点のY座標
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdBoneIntpltYpos(byte yP1x, byte yP1y, byte yP2x, byte yP2y)
+    public abstract void vmdBoneIntpltYpos(
+            byte yP1x, byte yP1y, byte yP2x, byte yP2y)
             throws MmdFormatException;
 
     /**
      * ボーンモーションZ軸移動補間情報の通知を受け取る。
+     *
      * <p>三次ベジェ曲線のP1,P2点に関する情報を受け取る。
+     *
      * <p>{@link #BONEMOTION_LIST}ループの構成要素。
+     *
      * @param zP1x P1点のX座標
      * @param zP1y P1点のY座標
      * @param zP2x P2点のX座標
      * @param zP2y P2点のY座標
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdBoneIntpltZpos(byte zP1x, byte zP1y, byte zP2x, byte zP2y)
+    public abstract void vmdBoneIntpltZpos(
+            byte zP1x, byte zP1y, byte zP2x, byte zP2y)
             throws MmdFormatException;
 
     /**
      * ボーンモーション回転量補間情報の通知を受け取る。
+     *
      * <p>三次ベジェ曲線のP1,P2点に関する情報を受け取る。
+     *
      * <p>{@link #BONEMOTION_LIST}ループの構成要素。
+     *
      * <p>クォータニオン間のslerp処理に利用される。
+     *
      * @param rP1x P1点のX座標
      * @param rP1y P1点のY座標
      * @param rP2x P2点のX座標
      * @param rP2y P2点のY座標
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdBoneIntpltRot(byte rP1x, byte rP1y, byte rP2x, byte rP2y)
+    public abstract void vmdBoneIntpltRot(
+            byte rP1x, byte rP1y, byte rP2x, byte rP2y)
             throws MmdFormatException;
 
 
     /**
      * モーフモーション情報の通知を受け取る。
+     *
      * <p>{@link #MORPH_LIST}ループの構成要素。
+     *
      * @param morphName モーフ名。特殊モーフ名「base」は無視してもよい?
      * @param keyFrameNo フレーム番号
      * @param flex モーフ変量。通常は0.0以上1.0以下。
-     * @throws MmdFormatException 不正フォーマットによる
-     * パース処理の中断をパーサに指示
+     * @throws MmdFormatException
+     *     不正フォーマットによるパース処理の中断をパーサに指示
      */
-    void vmdMorphMotion(String morphName, int keyFrameNo, float flex)
+    public abstract void vmdMorphMotion(
+            String morphName, int keyFrameNo, float flex)
             throws MmdFormatException;
 
 }