2 * PMD material information handler
4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sfjp.mikutoga.pmd.parser;
10 import jp.sfjp.mikutoga.bin.parser.LoopHandler;
11 import jp.sfjp.mikutoga.bin.parser.MmdFormatException;
12 import jp.sfjp.mikutoga.bin.parser.ParseStage;
15 * PMDモデルの各種材質情報の通知用ハンドラ。
18 public interface PmdMaterialHandler extends LoopHandler {
21 public static final ParseStage MATERIAL_LIST = new ParseStage();
26 * <p>{@link #MATERIAL_LIST}ループの構成要素。
28 * @param red 0.0~1.0の範囲の赤成分
29 * @param green 0.0~1.0の範囲の緑成分
30 * @param blue 0.0~1.0の範囲の青成分
31 * @param alpha 0.0(透明)~1.0(不透明)のアルファ値。
32 * @throws MmdFormatException 不正フォーマットによる
35 public abstract void pmdMaterialDiffuse(
36 float red, float green, float blue, float alpha)
37 throws MmdFormatException;
42 * <p>{@link #MATERIAL_LIST}ループの構成要素。
44 * @param red 0.0~1.0の範囲の赤成分
45 * @param green 0.0~1.0の範囲の緑成分
46 * @param blue 0.0~1.0の範囲の青成分
47 * @param shininess 光沢強度(1~15ぐらい)
48 * @throws MmdFormatException 不正フォーマットによる
51 public abstract void pmdMaterialSpecular(
52 float red, float green, float blue, float shininess)
53 throws MmdFormatException;
58 * <p>{@link #MATERIAL_LIST}ループの構成要素。
60 * @param red 0.0~1.0の範囲の赤成分
61 * @param green 0.0~1.0の範囲の緑成分
62 * @param blue 0.0~1.0の範囲の青成分
63 * @throws MmdFormatException 不正フォーマットによる
66 public abstract void pmdMaterialAmbient(
67 float red, float green, float blue)
68 throws MmdFormatException;
73 * <p>{@link #MATERIAL_LIST}ループの構成要素。
75 * @param toonIdx トゥーンファイル番号。
76 * 0ならtoon01.bmp。9ならtoon10.bmp。0xffならtoon0.bmp。
77 * @param textureFile テクスチャファイル名。
79 * @param sphereFile スフィアマップファイル名。
81 * @throws MmdFormatException 不正フォーマットによる
84 public abstract void pmdMaterialShading(int toonIdx,
85 String textureFile, String sphereFile )
86 throws MmdFormatException;
91 * <p>{@link #MATERIAL_LIST}ループの構成要素。
93 * @param hasEdge エッジを表示するならtrue
94 * @param vertexNum 面頂点数。
98 * <p>通算した面数を面情報通知順と突き合わせることにより、
99 * 材質に属する面の集合を得ることが可能。</p>
101 * @throws MmdFormatException 不正フォーマットによる
103 * @see PmdShapeHandler#pmdSurfaceTriangle(int, int, int)
105 public abstract void pmdMaterialInfo(boolean hasEdge, int vertexNum)
106 throws MmdFormatException;