2 * PMD shape information handler
\r
4 * License : The MIT License
\r
5 * Copyright(c) 2010 MikuToga Partners
\r
8 package jp.sourceforge.mikutoga.parser.pmd;
\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
15 * PMDモデルの各種形状(頂点、面)の通知用ハンドラ。
\r
16 * 0から始まる頂点ID順に頂点は出現する。
\r
17 * 0から始まる面ID順に面は出現する。
\r
19 public interface PmdShapeHandler extends LoopHandler {
\r
24 class PmdShapeStage extends ParseStage{
\r
26 PmdShapeStage(){ super(); return; }
\r
30 PmdShapeStage VERTEX_LIST = new PmdShapeStage();
\r
32 PmdShapeStage SURFACE_LIST = new PmdShapeStage();
\r
36 * {@link #VERTEX_LIST}ループの構成要素
\r
40 * @throws MmdFormatException 不正フォーマットによる
\r
43 void pmdVertexPosition(float xPos, float yPos, float zPos)
\r
44 throws MmdFormatException;
\r
48 * {@link #VERTEX_LIST}ループの構成要素
\r
50 * @param xVec 法線ベクトルX成分
\r
51 * @param yVec 法線ベクトルY成分
\r
52 * @param zVec 法線ベクトルZ成分
\r
53 * @throws MmdFormatException 不正フォーマットによる
\r
56 void pmdVertexNormal(float xVec, float yVec, float zVec)
\r
57 throws MmdFormatException;
\r
60 * 頂点のUVマッピング情報の通知を受け取る。
\r
62 * {@link #VERTEX_LIST}ループの構成要素
\r
63 * @param uVal テクスチャのU座標
\r
64 * @param vVal テクスチャのV座標
\r
65 * @throws MmdFormatException 不正フォーマットによる
\r
68 void pmdVertexUV(float uVal, float vVal )
\r
69 throws MmdFormatException;
\r
72 * 頂点のボーン間ウェイトバランス情報の通知を受け取る。
\r
73 * {@link #VERTEX_LIST}ループの構成要素
\r
74 * @param boneId1 ボーンその1識別ID
\r
75 * @param boneId2 ボーンその2識別ID
\r
76 * @param weightForB1 ボーンその1への影響度。0(min)~100(max)
\r
77 * ボーンその2への影響度は100からの引き算で求める。
\r
78 * @throws MmdFormatException 不正フォーマットによる
\r
81 void pmdVertexWeight(int boneId1, int boneId2, int weightForB1)
\r
82 throws MmdFormatException;
\r
85 * 頂点のエッジ表現情報の通知を受け取る。
\r
86 * 材質単位でのエッジ表現指定に優先される。
\r
87 * {@link #VERTEX_LIST}ループの構成要素
\r
88 * @param hideEdge エッジ無効ならtrue
\r
89 * @throws MmdFormatException 不正フォーマットによる
\r
92 void pmdVertexEdge(boolean hideEdge)
\r
93 throws MmdFormatException;
\r
96 * 3つの頂点から構成される面情報の通知を受け取る。
\r
97 * {@link #SURFACE_LIST}ループの構成要素
\r
98 * @param vertexId1 頂点IDその1
\r
99 * @param vertexId2 頂点IDその1
\r
100 * @param vertexId3 頂点IDその1
\r
101 * @throws MmdFormatException 不正フォーマットによる
\r
104 void pmdSurfaceTriangle(int vertexId1, int vertexId2, int vertexId3)
\r
105 throws MmdFormatException;
\r