2 * PMD rigid information handler
4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sourceforge.mikutoga.pmd.parser;
10 import jp.sourceforge.mikutoga.parser.LoopHandler;
11 import jp.sourceforge.mikutoga.parser.MmdFormatException;
12 import jp.sourceforge.mikutoga.parser.ParseStage;
15 * PMDモデルの各種剛体情報の通知用ハンドラ。
17 public interface PmdRigidHandler extends LoopHandler {
20 ParseStage RIGID_LIST = new ParseStage();
24 * {@link #RIGID_LIST}ループの構成要素。
25 * @param rigidName 剛体名
26 * @throws MmdFormatException 不正フォーマットによる
29 void pmdRigidName(String rigidName)
30 throws MmdFormatException;
34 * {@link #RIGID_LIST}ループの構成要素。
35 * @param rigidGroupId 剛体グループ番号から1引いた数。(0-15)
36 * @param linkedBoneId 接続先ボーンID
37 * @throws MmdFormatException 不正フォーマットによる
40 void pmdRigidInfo(int rigidGroupId,
42 throws MmdFormatException;
46 * {@link #RIGID_LIST}ループの構成要素。
47 * @param shapeType 形状種別。
53 * @param width 球orカプセル半径。箱の幅。
54 * @param height 箱orカプセルの高さ
56 * @throws MmdFormatException 不正フォーマットによる
59 void pmdRigidShape(byte shapeType,
60 float width, float height, float depth)
61 throws MmdFormatException;
65 * {@link #RIGID_LIST}ループの構成要素。
69 * @throws MmdFormatException 不正フォーマットによる
72 void pmdRigidPosition(float posX, float posY, float posZ)
73 throws MmdFormatException;
77 * {@link #RIGID_LIST}ループの構成要素。
78 * @param radX X軸回転量(radian)
79 * @param radY Y軸回転量(radian)
80 * @param radZ Z軸回転量(radian)
81 * @throws MmdFormatException 不正フォーマットによる
84 void pmdRigidRotation(float radX, float radY, float radZ)
85 throws MmdFormatException;
89 * {@link #RIGID_LIST}ループの構成要素。
91 * @param dampingPos 移動減衰率
92 * @param dampingRot 回転減衰率
93 * @param restitution 反発力
95 * @throws MmdFormatException 不正フォーマットによる
98 void pmdRigidPhysics(float mass,
99 float dampingPos, float dampingRot,
100 float restitution, float friction )
101 throws MmdFormatException;
105 * {@link #RIGID_LIST}ループの構成要素。
106 * @param behaveType 剛体タイプ。
110 * <li>2:物理演算+ボーン位置合わせ
112 * @param collisionMap 非衝突剛体グループビットマップ。
113 * (衝突グループ番号-1)位置のビット位置は1に、
114 * (非衝突グループ番号-1)位置のビット位置は0になる。
115 * 例)グループ1と8のみが非衝突指定の場合、0xff7eになる。
116 * @throws MmdFormatException 不正フォーマットによる
119 void pmdRigidBehavior(byte behaveType, short collisionMap)
120 throws MmdFormatException;