|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.ui.graphics3d.collision.AbstractShape
com.nttdocomo.ui.graphics3d.collision.AbstractBV
com.nttdocomo.ui.graphics3d.collision.Capsule
com.nttdocomo.ui.graphics3d.collision.AABCapsule
ワールド座標のY軸に中心軸が平行となるCapsuleを表わすクラスです。
AxisAlignedBV
インターフェースの説明を参照してください。
このクラスは、AABV(Axis-Aligned Bounding Volume)の1つです。
Capsule形状のOBV(Oriented Bounding Volume)クラスは、Capsule
クラスです。
フィールドの概要 |
インタフェース com.nttdocomo.ui.graphics3d.collision.BoundingVolume から継承したフィールド |
ROTATE_NONE, ROTATE_X, ROTATE_XY, ROTATE_Y, ROTATE_YX, ROTATE_Z |
インタフェース com.nttdocomo.ui.graphics3d.collision.Shape から継承したフィールド |
TRANS_BV_SHAPE, TRANS_BV_WORLD, TRANS_BV_WORLD_NOSCALE, TRANS_SHAPE_WORLD, TRANS_SHAPE_WORLD_NOSCALE, TYPE_AAB_BOX, TYPE_AAB_CAPSULE, TYPE_AAB_CYLINDER, TYPE_BOX, TYPE_CAPSULE, TYPE_CYLINDER, TYPE_LINE, TYPE_PLANE, TYPE_POINT, TYPE_RAY, TYPE_SPHERE, TYPE_TRIANGLE |
コンストラクタの概要 | |
AABCapsule(float radius,
float height)
半径と高さを指定してAABCapsuleオブジェクトを生成します。 |
メソッドの概要 | |
void |
createMesh(int rgb,
int mode,
float v)
テスト描画用の Primitive オブジェクトを生成します。 |
float |
getEffectiveRadius(Vector3D vec)
指定した方向の実効半径(Effective Radius)を取得します。 |
float |
getHeight(boolean isTrans)
AABCapsuleオブジェクトの円柱部分の高さを取得します。 |
Primitive |
getMesh()
テスト描画用の Primitive オブジェクトを取得します。 |
Transform |
getMeshTransform(Transform meshTrans)
テスト描画用の一次変換行列を取得します。 |
float |
getRadius(boolean isTrans)
AABCapsuleオブジェクトの半径を取得します。 |
クラス com.nttdocomo.ui.graphics3d.collision.Capsule から継承したメソッド |
getHeight, getRadius, set |
クラス com.nttdocomo.ui.graphics3d.collision.AbstractBV から継承したメソッド |
getCenter, getRotate, isHittingFromBackFaceEnabled, setCenter, setHittingFromBackFaceEnabled, setRotate |
クラス com.nttdocomo.ui.graphics3d.collision.AbstractShape から継承したメソッド |
deleteMesh, getAttribute, getScale, getShapeType, getTransform, setAttribute, setTransform |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース com.nttdocomo.ui.graphics3d.collision.BoundingVolume から継承したメソッド |
getCenter, getRotate, isHittingFromBackFaceEnabled, setCenter, setHittingFromBackFaceEnabled, setRotate |
インタフェース com.nttdocomo.ui.graphics3d.collision.Shape から継承したメソッド |
deleteMesh, getAttribute, getScale, getShapeType, getTransform, setAttribute, setTransform |
コンストラクタの詳細 |
public AABCapsule(float radius, float height)
半径と高さを指定してAABCapsuleオブジェクトを生成します。
radius
- 半径を指定します。height
- 円柱部分の高さを指定します。
IllegalArgumentException
- 引数radius、heightのうち、1つでも0以下の値がある場合に発生します。
メソッドの詳細 |
public float getEffectiveRadius(Vector3D vec)
BoundingVolume
の記述: 指定した方向の実効半径(Effective Radius)を取得します。
実効半径:
引数vecを法線ベクトルに持つ平面が、BoundingVolume
の中心からvecの方向にあり、
BoundingVolume
に接する状態にあるとき、BoundingVolume
の中心と平面の距離が実効半径となります。
BoundingVolume
内の getEffectiveRadius
Capsule
内の getEffectiveRadius
vec
- 実効半径を求める方向のベクトルを指定します。
NullPointerException
- 引数vecがnullの場合に発生します。
IllegalArgumentException
- 引数vecが零ベクトルの場合に発生します。
public float getRadius(boolean isTrans)
AABCapsuleオブジェクトの半径を取得します。
isTrans
- ワールド座標系に変換されたデータを取得する場合はtrueを指定します。
BV座標系におけるデータを取得する場合はfalseを指定します。
public float getHeight(boolean isTrans)
AABCapsuleオブジェクトの円柱部分の高さを取得します。
isTrans
- ワールド座標系に変換されたデータを取得する場合はtrueを指定します。
BV座標系におけるデータを取得する場合はfalseを指定します。
public void createMesh(int rgb, int mode, float v)
Shape
の記述:
テスト描画用のPrimitive
オブジェクトを生成します。
開発時の図形位置の確認用としての利用を前提としたメソッドです。
描画の方法は、getMesh
メソッドでPrimitive
オブジェクトを取得し、getMeshTransform
メソッドで
一次変換行列を取得して、これらをGraphics3D
のrenderObject3D
メソッドの引数に渡して描画します。
生成したPrimitive
オブジェクトは、形状クラスで保持されます。
setメソッドで形状を変更した場合は、createMesh
メソッドでPrimitive
オブジェクトを
再生成してください。それ以外の場合は再生成する必要はありませんが、描画ごとに
getMesh
メソッドでPrimitive
オブジェクトを取得して使用するようにしてください。
(AABVでは、ワールド座標軸に平行になるようにPrimitive
オブジェクトの頂点データが変更
されます)
不要になった場合はdeleteMesh
メソッドで削除してください。
色、ブレンドモード、透明度の設定に関する制限に関しては、Primitive
クラスを参照してください。
ブレンドモードにDrawableObject3D.BLEND_ALPHA
、透明度に50%のような値を使用すると、
図形位置の確認がしやすくなります。
※ 図形サイズ・位置に関する注意事項
生成される頂点座標は、本パッケージの内部処理で使用しているfloat型から、Primitiveの
頂点座標で使われているshort型の範囲(-32768以上かつ32767 以下)にマッピングされるため、
範囲に収まらないサイズ・位置の場合、正常に描画されないことがあります。
繧翫∪縺帙s縺後