2 * PMD rigid 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
17 public interface PmdRigidHandler extends LoopHandler {
\r
22 class PmdRigidStage extends ParseStage{
\r
24 PmdRigidStage(){ super(); return; }
\r
28 PmdRigidStage RIGID_LIST = new PmdRigidStage();
\r
32 * {@link #RIGID_LIST}ループの構成要素。
\r
33 * @param rigidName 剛体名
\r
34 * @throws MmdFormatException 不正フォーマットによる
\r
37 void pmdRigidName(String rigidName)
\r
38 throws MmdFormatException;
\r
42 * {@link #RIGID_LIST}ループの構成要素。
\r
43 * @param rigidGroupId 剛体グループ番号から1引いた数。(0-15)
\r
44 * @param linkedBoneId 接続先ボーンID
\r
45 * @throws MmdFormatException 不正フォーマットによる
\r
48 void pmdRigidInfo(int rigidGroupId,
\r
50 throws MmdFormatException;
\r
54 * {@link #RIGID_LIST}ループの構成要素。
\r
55 * @param shapeType 形状種別。
\r
61 * @param width 球orカプセル半径。箱の幅。
\r
62 * @param height 箱orカプセルの高さ
\r
63 * @param depth 箱の奥行き
\r
64 * @throws MmdFormatException 不正フォーマットによる
\r
67 void pmdRigidShape(byte shapeType,
\r
68 float width, float height, float depth)
\r
69 throws MmdFormatException;
\r
73 * {@link #RIGID_LIST}ループの構成要素。
\r
77 * @throws MmdFormatException 不正フォーマットによる
\r
80 void pmdRigidPosition(float posX, float posY, float posZ)
\r
81 throws MmdFormatException;
\r
85 * {@link #RIGID_LIST}ループの構成要素。
\r
86 * @param radX X軸回転量(radian)
\r
87 * @param radY Y軸回転量(radian)
\r
88 * @param radZ Z軸回転量(radian)
\r
89 * @throws MmdFormatException 不正フォーマットによる
\r
92 void pmdRigidRotation(float radX, float radY, float radZ)
\r
93 throws MmdFormatException;
\r
97 * {@link #RIGID_LIST}ループの構成要素。
\r
99 * @param dampingPos 移動減衰率
\r
100 * @param dampingRot 回転減衰率
\r
101 * @param restitution 反発力
\r
102 * @param friction 摩擦力
\r
103 * @throws MmdFormatException 不正フォーマットによる
\r
106 void pmdRigidPhysics(float mass,
\r
107 float dampingPos, float dampingRot,
\r
108 float restitution, float friction )
\r
109 throws MmdFormatException;
\r
112 * 剛体の振る舞い情報の通知を受け取る。
\r
113 * {@link #RIGID_LIST}ループの構成要素。
\r
114 * @param behaveType 剛体タイプ。
\r
118 * <li>2:物理演算+ボーン位置合わせ
\r
120 * @param collisionMap 非衝突剛体グループビットマップ。
\r
121 * (衝突グループ番号-1)位置のビット位置は1に、
\r
122 * (非衝突グループ番号-1)位置のビット位置は0になる。
\r
123 * 例)グループ1と8のみが非衝突指定の場合、0xff7eになる。
\r
124 * @throws MmdFormatException 不正フォーマットによる
\r
127 void pmdRigidBehavior(byte behaveType, short collisionMap)
\r
128 throws MmdFormatException;
\r