OSDN Git Service

1.105.3-SNAPSHOT版開発開始
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / parser / pmd / PmdBoneHandler.java
index 5cbdf38..c4954f4 100644 (file)
-/*\r
- * PMD bone information handler\r
- *\r
- * License : The MIT License\r
- * Copyright(c) 2010 MikuToga Partners\r
- */\r
-\r
-package jp.sourceforge.mikutoga.parser.pmd;\r
-\r
-import jp.sourceforge.mikutoga.parser.LoopHandler;\r
-import jp.sourceforge.mikutoga.parser.MmdFormatException;\r
-import jp.sourceforge.mikutoga.parser.ParseStage;\r
-\r
-/**\r
- * PMDモデルの各種ボーン情報の通知用ハンドラ。\r
- * ボーン定義の出現順と、0から始まるボーンIDは対応する。\r
- */\r
-public interface PmdBoneHandler extends LoopHandler {\r
-\r
-    /**\r
-     * ボーン情報パースステージ。\r
-     */\r
-    class PmdBoneStage extends ParseStage{\r
-        /** コンストラクタ。 */\r
-        PmdBoneStage(){ super(); return; }\r
-    }\r
-\r
-    /** ボーン定義抽出ループ。 */\r
-    PmdBoneStage BONE_LIST = new PmdBoneStage();\r
-\r
-    /** IKリスト抽出ループ。 */\r
-    PmdBoneStage IK_LIST = new PmdBoneStage();\r
-\r
-    /** IKチェーンリスト抽出ループ。 */\r
-    PmdBoneStage IKCHAIN_LIST = new PmdBoneStage();\r
-\r
-    /** ボーングループ名抽出ループ。 */\r
-    PmdBoneStage BONEGROUP_LIST = new PmdBoneStage();\r
-\r
-    /** ボーングループ内訳抽出ループ。 */\r
-    PmdBoneStage GROUPEDBONE_LIST = new PmdBoneStage();\r
-\r
-    /**\r
-     * ボーン定義情報の通知を受け取る。\r
-     * {@link #BONE_LIST}ループの構成要素。\r
-     * @param boneName ボーン名\r
-     * @param boneKind ボーン種別。\r
-     * <ul>\r
-     * <li>0:回転\r
-     * <li>1:回転/移動\r
-     * <li>2:IK\r
-     * <li>3:不明\r
-     * <li>4:IK影響下(回転)\r
-     * <li>5:回転影響下\r
-     * <li>6:IK接続先\r
-     * <li>7:非表示\r
-     * <li>8:捩り\r
-     * <li>9:回転連動\r
-     * </ul>\r
-     * ※8,9はMMD4.0から?\r
-     * @throws MmdFormatException 不正フォーマットによる\r
-     * パース処理の中断をパーサに指示\r
-     */\r
-    void pmdBoneInfo(String boneName, byte boneKind)\r
-            throws MmdFormatException;\r
-\r
-    /**\r
-     * ボーン間接続情報の通知を受け取る。\r
-     * {@link #BONE_LIST}ループの構成要素。\r
-     * @param parentId 親(前)ボーンID。無い場合は0xffff。\r
-     * @param tailId 子(次)ボーンID。末端の場合は0。\r
-     * 捩りボーンの場合は軸方向のボーンID、\r
-     * 回転連動ボーンの場合は影響元ボーンID\r
-     * @param ikId 影響IKボーンID。未指定の場合は0。\r
-     * ※回転連動では影響度(0-100)、負や100以上もOK!\r
-     * @throws MmdFormatException 不正フォーマットによる\r
-     * パース処理の中断をパーサに指示\r
-     */\r
-    void pmdBoneLink(int parentId, int tailId, int ikId)\r
-            throws MmdFormatException;\r
-\r
-    /**\r
-     * ボーン位置情報の通知を受け取る。\r
-     * {@link #BONE_LIST}ループの構成要素。\r
-     * @param xPos X座標\r
-     * @param yPos Y座標\r
-     * @param zPos Z座標\r
-     * @throws MmdFormatException 不正フォーマットによる\r
-     * パース処理の中断をパーサに指示\r
-     */\r
-    void pmdBonePosition(float xPos, float yPos, float zPos)\r
-            throws MmdFormatException;\r
-\r
-    /**\r
-     * IKボーン情報の通知を受け取る。\r
-     * {@link #IK_LIST}ループの構成要素。\r
-     * @param boneId IKボーンID\r
-     * @param targetId IKボーンが最初に接続するIK接続先ボーンID\r
-     * @param depth 再帰演算の深さ\r
-     * @param weight 制限角度強度\r
-     * @throws MmdFormatException 不正フォーマットによる\r
-     * パース処理の中断をパーサに指示\r
-     */\r
-    void pmdIKInfo(int boneId, int targetId, int depth, float weight)\r
-            throws MmdFormatException;\r
-\r
-    /**\r
-     * IKチェイン要素の通知を受け取る。\r
-     * {@link #IK_LIST}ループの下位{@link #IKCHAIN_LIST}ループの構成要素。\r
-     * @param childId IK影響下ボーンID\r
-     * @throws MmdFormatException 不正フォーマットによる\r
-     * パース処理の中断をパーサに指示\r
-     */\r
-    void pmdIKChainInfo(int childId)\r
-            throws MmdFormatException;\r
-\r
-    /**\r
-     * ボーングループ名定義の通知を受け取る。\r
-     * {@link #BONEGROUP_LIST}ループの構成要素。\r
-     * @param groupName ボーングループ名。末尾のLF(0x0a)は削除される。\r
-     * @throws MmdFormatException 不正フォーマットによる\r
-     * パース処理の中断をパーサに指示\r
-     */\r
-    void pmdBoneGroupInfo(String groupName) throws MmdFormatException;\r
-\r
-    /**\r
-     * ボーングループ内訳の通知を受け取る。\r
-     * {@link #GROUPEDBONE_LIST}ループの構成要素。\r
-     * @param boneId グループに所属するボーンのID\r
-     * @param groupId ボーンが所属するボーングループIDに1を足した数\r
-     * @throws MmdFormatException 不正フォーマットによる\r
-     * パース処理の中断をパーサに指示\r
-     */\r
-    void pmdGroupedBoneInfo(int boneId, int groupId)\r
-            throws MmdFormatException;\r
-\r
-}\r
+/*
+ * PMD bone information handler
+ *
+ * License : The MIT License
+ * Copyright(c) 2010 MikuToga Partners
+ */
+
+package jp.sourceforge.mikutoga.parser.pmd;
+
+import jp.sourceforge.mikutoga.parser.LoopHandler;
+import jp.sourceforge.mikutoga.parser.MmdFormatException;
+import jp.sourceforge.mikutoga.parser.ParseStage;
+
+/**
+ * PMDモデルの各種ボーン情報の通知用ハンドラ。
+ * ボーン定義の出現順と、0から始まるボーンIDは対応する。
+ */
+public interface PmdBoneHandler extends LoopHandler {
+
+    /**
+     * ボーン情報パースステージ。
+     */
+    class PmdBoneStage extends ParseStage{
+        /** コンストラクタ。 */
+        PmdBoneStage(){ super(); return; }
+    }
+
+    /** ボーン定義抽出ループ。 */
+    PmdBoneStage BONE_LIST = new PmdBoneStage();
+
+    /** IKリスト抽出ループ。 */
+    PmdBoneStage IK_LIST = new PmdBoneStage();
+
+    /** IKチェーンリスト抽出ループ。 */
+    PmdBoneStage IKCHAIN_LIST = new PmdBoneStage();
+
+    /** ボーングループ名抽出ループ。 */
+    PmdBoneStage BONEGROUP_LIST = new PmdBoneStage();
+
+    /** ボーングループ内訳抽出ループ。 */
+    PmdBoneStage GROUPEDBONE_LIST = new PmdBoneStage();
+
+    /**
+     * ボーン定義情報の通知を受け取る。
+     * {@link #BONE_LIST}ループの構成要素。
+     * @param boneName ボーン名
+     * @param boneKind ボーン種別。
+     * <ul>
+     * <li>0:回転
+     * <li>1:回転/移動
+     * <li>2:IK
+     * <li>3:不明
+     * <li>4:IK影響下(回転)
+     * <li>5:回転影響下
+     * <li>6:IK接続先
+     * <li>7:非表示
+     * <li>8:捩り
+     * <li>9:回転連動
+     * </ul>
+     * ※8,9はMMD4.0から?
+     * @throws MmdFormatException 不正フォーマットによる
+     * パース処理の中断をパーサに指示
+     */
+    void pmdBoneInfo(String boneName, byte boneKind)
+            throws MmdFormatException;
+
+    /**
+     * ボーン間接続情報の通知を受け取る。
+     * {@link #BONE_LIST}ループの構成要素。
+     * @param parentId 親(前)ボーンID。無い場合は0xffff。
+     * @param tailId 子(次)ボーンID。末端の場合は0。
+     * 捩りボーンの場合は軸方向のボーンID、
+     * 回転連動ボーンの場合は影響元ボーンID
+     * @param ikId 影響IKボーンID。未指定の場合は0。
+     * ※回転連動では影響度(0-100)、負や100以上もOK!
+     * @throws MmdFormatException 不正フォーマットによる
+     * パース処理の中断をパーサに指示
+     */
+    void pmdBoneLink(int parentId, int tailId, int ikId)
+            throws MmdFormatException;
+
+    /**
+     * ボーン位置情報の通知を受け取る。
+     * {@link #BONE_LIST}ループの構成要素。
+     * @param xPos X座標
+     * @param yPos Y座標
+     * @param zPos Z座標
+     * @throws MmdFormatException 不正フォーマットによる
+     * パース処理の中断をパーサに指示
+     */
+    void pmdBonePosition(float xPos, float yPos, float zPos)
+            throws MmdFormatException;
+
+    /**
+     * IKボーン情報の通知を受け取る。
+     * {@link #IK_LIST}ループの構成要素。
+     * @param boneId IKボーンID
+     * @param targetId IKボーンが最初に接続するIK接続先ボーンID
+     * @param depth 再帰演算の深さ
+     * @param weight 制限角度強度
+     * @throws MmdFormatException 不正フォーマットによる
+     * パース処理の中断をパーサに指示
+     */
+    void pmdIKInfo(int boneId, int targetId, int depth, float weight)
+            throws MmdFormatException;
+
+    /**
+     * IKチェイン要素の通知を受け取る。
+     * {@link #IK_LIST}ループの下位{@link #IKCHAIN_LIST}ループの構成要素。
+     * @param childId IK影響下ボーンID
+     * @throws MmdFormatException 不正フォーマットによる
+     * パース処理の中断をパーサに指示
+     */
+    void pmdIKChainInfo(int childId)
+            throws MmdFormatException;
+
+    /**
+     * ボーングループ名定義の通知を受け取る。
+     * {@link #BONEGROUP_LIST}ループの構成要素。
+     * @param groupName ボーングループ名。末尾のLF(0x0a)は削除される。
+     * @throws MmdFormatException 不正フォーマットによる
+     * パース処理の中断をパーサに指示
+     */
+    void pmdBoneGroupInfo(String groupName) throws MmdFormatException;
+
+    /**
+     * ボーングループ内訳の通知を受け取る。
+     * {@link #GROUPEDBONE_LIST}ループの構成要素。
+     * @param boneId グループに所属するボーンのID
+     * @param groupId ボーンが所属するボーングループIDに1を足した数
+     * @throws MmdFormatException 不正フォーマットによる
+     * パース処理の中断をパーサに指示
+     */
+    void pmdGroupedBoneInfo(int boneId, int groupId)
+            throws MmdFormatException;
+
+}