OSDN Git Service

eb36cd3f3c6de55513d528c35ab28238b39c0cf3
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / parser / pmd / PmdMorphHandler.java
1 /*\r
2  * PMD morph information handler\r
3  *\r
4  * License : The MIT License\r
5  * Copyright(c) 2010 MikuToga Partners\r
6  */\r
7 \r
8 package jp.sourceforge.mikutoga.parser.pmd;\r
9 \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
13 \r
14 /**\r
15  * PMDモデルのモーフ情報の通知用ハンドラ。\r
16  */\r
17 public interface PmdMorphHandler extends LoopHandler {\r
18 \r
19     /**\r
20      * モーフ情報パースステージ。\r
21      */\r
22     class PmdMorphStage extends ParseStage{\r
23         /** コンストラクタ。 */\r
24         PmdMorphStage(){ super(); return; }\r
25     }\r
26 \r
27     /** モーフ抽出ループ。 */\r
28     PmdMorphStage MORPH_LIST = new PmdMorphStage();\r
29 \r
30     /** モーフ頂点抽出ループ。 */\r
31     PmdMorphStage MORPHVERTEX_LIST = new PmdMorphStage();\r
32 \r
33     /** モーフ出現順抽出ループ。 */\r
34     PmdMorphStage MORPHORDER_LIST = new PmdMorphStage();\r
35 \r
36     /**\r
37      * モーフ情報の通知を受け取る。\r
38      * {@link #MORPH_LIST}ループの構成要素\r
39      * @param morphName モーフ名\r
40      * @param morphType モーフ種別。\r
41      * <ul>\r
42      * <li>0:base\r
43      * <li>1:まゆ\r
44      * <li>2:目\r
45      * <li>3:リップ\r
46      * <li>4:その他\r
47      * </ul>\r
48      * @throws MmdFormatException 不正フォーマットによる\r
49      * パース処理の中断をパーサに指示\r
50      */\r
51     void pmdMorphInfo(String morphName, byte morphType)\r
52             throws MmdFormatException;\r
53 \r
54     /**\r
55      * モーフ形状の通知を受け取る。\r
56      * {@link #MORPH_LIST}ループの下位{@link #MORPHVERTEX_LIST}の構成要素\r
57      * @param serialId base型の場合は頂点ID、それ以外はモーフ頂点ID\r
58      * @param xPos base型の場合はX座標、それ以外はX軸変位\r
59      * @param yPos base型の場合はY座標、それ以外はY軸変位\r
60      * @param zPos base型の場合はZ座標、それ以外はZ軸変位\r
61      * @throws MmdFormatException 不正フォーマットによる\r
62      * パース処理の中断をパーサに指示\r
63      */\r
64     void pmdMorphVertexInfo(int serialId,\r
65                                float xPos, float yPos, float zPos)\r
66             throws MmdFormatException;\r
67 \r
68     /**\r
69      * 各モーフ種別内のGUI表示順の通知を受け取る。\r
70      * {@link #MORPHORDER_LIST}ループの構成要素\r
71      * @param morphId モーフ通し番号。同一種別内の大小関係のみ意味がある。\r
72      * @throws MmdFormatException 不正フォーマットによる\r
73      * パース処理の中断をパーサに指示\r
74      */\r
75     void pmdMorphOrderInfo(int morphId) throws MmdFormatException;\r
76 \r
77 }\r