OSDN Git Service

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