X-Git-Url: http://git.osdn.net/view?p=mikutoga%2FTogaGem.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fjp%2Fsfjp%2Fmikutoga%2Fpmd%2Fparser%2FPmdShapeHandler.java;fp=src%2Fmain%2Fjava%2Fjp%2Fsfjp%2Fmikutoga%2Fpmd%2Fparser%2FPmdShapeHandler.java;h=502b9591f481957a778585a49286ee43f73d39fb;hp=21d0bf681d11774aedbf4470c91342cfb8323fa4;hb=ca790c392b3e12ba485b897aa10334aff7fce4b1;hpb=3747423c564042a26a0d1db6cc1fc79965c5140c diff --git a/src/main/java/jp/sfjp/mikutoga/pmd/parser/PmdShapeHandler.java b/src/main/java/jp/sfjp/mikutoga/pmd/parser/PmdShapeHandler.java index 21d0bf6..502b959 100644 --- a/src/main/java/jp/sfjp/mikutoga/pmd/parser/PmdShapeHandler.java +++ b/src/main/java/jp/sfjp/mikutoga/pmd/parser/PmdShapeHandler.java @@ -13,88 +13,106 @@ import jp.sfjp.mikutoga.bin.parser.ParseStage; /** * PMDモデルの各種形状(頂点、面)の通知用ハンドラ。 + * *

0から始まる頂点ID順に頂点は出現する。 + * *

0から始まる面ID順に面は出現する。 */ public interface PmdShapeHandler extends LoopHandler { /** 頂点抽出ループ。 */ - ParseStage VERTEX_LIST = new ParseStage(); + public static final ParseStage VERTEX_LIST = new ParseStage(); /** 面抽出ループ。 */ - ParseStage SURFACE_LIST = new ParseStage(); + public static final ParseStage SURFACE_LIST = new ParseStage(); /** * 頂点の座標の通知を受け取る。 + * *

{@link #VERTEX_LIST}ループの構成要素 + * * @param xPos X座標 * @param yPos Y座標 * @param zPos Z座標 - * @throws MmdFormatException 不正フォーマットによる - * パース処理の中断をパーサに指示 + * @throws MmdFormatException + * 不正フォーマットによるパース処理の中断をパーサに指示 */ - void pmdVertexPosition(float xPos, float yPos, float zPos) + public abstract void pmdVertexPosition(float xPos, float yPos, float zPos) throws MmdFormatException; /** * 頂点の法線情報の通知を受け取る。 + * *

{@link #VERTEX_LIST}ループの構成要素 + * *

※単位ベクトル化必須? + * * @param xVec 法線ベクトルX成分 * @param yVec 法線ベクトルY成分 * @param zVec 法線ベクトルZ成分 - * @throws MmdFormatException 不正フォーマットによる - * パース処理の中断をパーサに指示 + * @throws MmdFormatException + * 不正フォーマットによるパース処理の中断をパーサに指示 */ - void pmdVertexNormal(float xVec, float yVec, float zVec) + public abstract void pmdVertexNormal(float xVec, float yVec, float zVec) throws MmdFormatException; /** * 頂点のUVマッピング情報の通知を受け取る。 * (頂点UV) + * *

{@link #VERTEX_LIST}ループの構成要素 + * * @param uVal テクスチャのU座標 * @param vVal テクスチャのV座標 - * @throws MmdFormatException 不正フォーマットによる - * パース処理の中断をパーサに指示 + * @throws MmdFormatException + * 不正フォーマットによるパース処理の中断をパーサに指示 */ - void pmdVertexUV(float uVal, float vVal ) + public abstract void pmdVertexUV(float uVal, float vVal ) throws MmdFormatException; /** * 頂点のボーン間ウェイトバランス情報の通知を受け取る。 + * *

{@link #VERTEX_LIST}ループの構成要素 + * * @param boneId1 ボーンその1識別ID * @param boneId2 ボーンその2識別ID * @param weightForB1 ボーンその1への影響度。0(min)~100(max) - * ボーンその2への影響度は100からの引き算で求める。 - * @throws MmdFormatException 不正フォーマットによる - * パース処理の中断をパーサに指示 + * ボーンその2への影響度は100からの引き算で求める。 + * @throws MmdFormatException + * 不正フォーマットによるパース処理の中断をパーサに指示 */ - void pmdVertexWeight(int boneId1, int boneId2, int weightForB1) + public abstract void pmdVertexWeight( + int boneId1, int boneId2, int weightForB1) throws MmdFormatException; /** * 頂点のエッジ表現情報の通知を受け取る。 * 材質単位でのエッジ表現指定に優先される。 + * *

{@link #VERTEX_LIST}ループの構成要素 + * * @param hideEdge エッジ無効ならtrue - * @throws MmdFormatException 不正フォーマットによる - * パース処理の中断をパーサに指示 + * @throws MmdFormatException + * 不正フォーマットによるパース処理の中断をパーサに指示 */ - void pmdVertexEdge(boolean hideEdge) + public abstract void pmdVertexEdge(boolean hideEdge) throws MmdFormatException; /** * 3つの頂点から構成される面情報の通知を受け取る。 + * *

{@link #SURFACE_LIST}ループの構成要素。 + * *

3頂点の指定順は、面カリングにおいて意味を持つ。 + * * @param vertexId1 頂点IDその1 * @param vertexId2 頂点IDその1 * @param vertexId3 頂点IDその1 - * @throws MmdFormatException 不正フォーマットによる - * パース処理の中断をパーサに指示 + * @throws MmdFormatException + * 不正フォーマットによるパース処理の中断をパーサに指示 */ - void pmdSurfaceTriangle(int vertexId1, int vertexId2, int vertexId3) + public abstract void pmdSurfaceTriangle( + int vertexId1, int vertexId2, int vertexId3) throws MmdFormatException; }