|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
形状を表わすインターフェースです。
すべての形状の基底となるインターフェースです。
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