OSDN Git Service

空読みスキップ対応
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / parser / 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.pmd.parser;
9
10 import jp.sfjp.mikutoga.bin.parser.LoopHandler;
11 import jp.sfjp.mikutoga.bin.parser.MmdFormatException;
12 import jp.sfjp.mikutoga.bin.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      * <p>{@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      * <p>{@link #MORPH_LIST}ループの下位{@link #MORPHVERTEX_LIST}の構成要素。
49      * <p>※ base型頂点IDの出現順がモーフ頂点IDとなる。
50      * @param serialId base型の場合は頂点ID、それ以外はモーフ頂点ID
51      * @param xPos base型の場合はX座標、それ以外はX軸変位
52      * @param yPos base型の場合はY座標、それ以外はY軸変位
53      * @param zPos base型の場合はZ座標、それ以外はZ軸変位
54      * @throws MmdFormatException 不正フォーマットによる
55      * パース処理の中断をパーサに指示
56      */
57     void pmdMorphVertexInfo(int serialId,
58                                float xPos, float yPos, float zPos)
59             throws MmdFormatException;
60
61     /**
62      * 各モーフ種別内のGUI表示順の通知を受け取る。
63      * <p>{@link #MORPHORDER_LIST}ループの構成要素
64      * @param morphId モーフ通し番号。同一モーフ種別内の大小関係のみ意味がある。
65      * @throws MmdFormatException 不正フォーマットによる
66      * パース処理の中断をパーサに指示
67      */
68     void pmdMorphOrderInfo(int morphId) throws MmdFormatException;
69
70 }