|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
形状を表わすインターフェースです。
すべての形状の基底となるインターフェースです。
1. 形状関連のインターフェース構成について
形状関連のインターフェース関係は次のようになっています。(左側のインターフェースを継承)
Shape−BoundingVolume
−AxisAlignedBV
2. 形状関連のクラス構成について
Shapeインターフェース、BoundingVolume
インターフェースには、次のようにそれぞれを実現した抽象クラスがあり、これらの継承クラスは
次のようになっています。
AbstractShape
抽象クラス−Shapeインターフェースを実現
AbstractBV
抽象クラス−BoundingVolume
インターフェースを実現AbstractShape
抽象クラスの継承もしています)
AxisAlignedBV
インターフェースには抽象クラスとして実現しているものはなく、次のクラスが直接実現
しています。
AABBox
クラス (Box
クラスの継承もしています)
AABCapsule
クラス (Capsule
クラスの継承もしています)
AABCylinder
クラス (Cylinder
クラスの継承もしています)
3. 座標系について
すべての座標系を並べると、次のようになります。(左側が親座標系)
ワールド座標系−(BVFigure座標系)−(ボーン座標系)−Shape座標系−BV座標系
このうち、( )内の座標系は、BVFigure
に形状を設定する場合に関係する座標系です。
BV座標系は、BoundingVolume(Box
、Capsule
、Cylinder
、Sphere
、
AABBox
、AABCapsule
、AABCylinder
)の場合に関係する座標系です。
したがって、形状の使い方により、関係する座標系は次のようになります。
BoundingVolume
としてBVFigure
にセットする
BVFigure
のボーンに対するBoundingVolume
としてBVFigure
にセットする
4. 一次変換行列について
3.における座標系間の変換に関する一次変換行列は、次のメソッドを使って設定します。
AbstractShape
クラスのsetTransform
メソッド
AbstractBV
クラスのsetRotate
メソッド
AbstractBV
クラスのsetCenter
メソッド
BVFigure
クラスのsetTransform
メソッド
フィールドの概要 | |
static int |
TRANS_BV_SHAPE
BV座標系からShape座標系への一次変換行列(BoundingVolume.getRotateメソッド、 BoundingVolume.getCenterメソッドの結果を行列として1つにしたもの)を表わします(=4)。 |
static int |
TRANS_BV_WORLD
BV座標系からワールド座標系への一次変換行列(スケールあり)を表わします(=5)。 |
static int |
TRANS_BV_WORLD_NOSCALE
BV座標系からワールド座標系への一次変換行列(スケールなし)を表わします(=6)。 |
static int |
TRANS_SHAPE_WORLD
Shape座標系からワールド座標系への一次変換行列(スケールあり)を表わします(=1)。 |
static int |
TRANS_SHAPE_WORLD_NOSCALE
Shape座標系からワールド座標系への一次変換行列(スケールなし)を表わします(=2)。 |
static int |
TYPE_AAB_BOX
AABBoxを表わすタイプです(=10)。 |
static int |
TYPE_AAB_CAPSULE
AABCapsuleを表わすタイプです(=12)。 |
static int |
TYPE_AAB_CYLINDER
AABCylinderを表わすタイプです(=11)。 |
static int |
TYPE_BOX
Boxを表わすタイプです(=7)。 |
static int |
TYPE_CAPSULE
Capsuleを表わすタイプです(=9)。 |
static int |
TYPE_CYLINDER
Cylinderを表わすタイプです(=8)。 |
static int |
TYPE_LINE
Lineを表わすタイプです(=2)。 |
static int |
TYPE_PLANE
Planeを表わすタイプです(=5)。 |
static int |
TYPE_POINT
Pointを表わすタイプです(=1)。 |
static int |
TYPE_RAY
Rayを表わすタイプです(=3)。 |
static int |
TYPE_SPHERE
Sphereを表わすタイプです(=6)。 |
static int |
TYPE_TRIANGLE
Triangleを表わすタイプです(=4)。 |
メソッドの概要 | |
void |
createMesh(int rgb,
int mode,
float v)
テスト描画用の Primitive オブジェクトを生成します。 |
void |
deleteMesh()
createMesh メソッドで生成したテスト描画用のPrimitive オブジェクトを削除します。
|
Object |
getAttribute()
形状に付加している属性オブジェクトを取得します。 |
Primitive |
getMesh()
テスト描画用の Primitive オブジェクトを取得します。 |
Transform |
getMeshTransform(Transform meshTrans)
テスト描画用の一次変換行列を取得します。 |
float |
getScale()
Shape座標系からワールド座標系への一次変換行列におけるスケール成分を取得します。 |
int |
getShapeType()
形状タイプを取得します。 |
Transform |
getTransform(int transType,
Transform trans)
指定した座標系間の一次変換行列を取得します。 |
void |
setAttribute(Object attribute)
形状に属性オブジェクトを付加します。 |
void |
setTransform(Transform trans)
ワールド座標系に対してShape座標系をセットする際の一次変換行列を設定します。 |
フィールドの詳細 |
public static final int TYPE_POINT
public static final int TYPE_LINE
public static final int TYPE_RAY