com.nttdocomo.ui.graphics3d.collision
インタフェース Shape

既知のサブインタフェースの一覧:
AxisAlignedBV, BoundingVolume
既知の実装クラスの一覧:
AABBox, AABCapsule, AABCylinder, AbstractBV, AbstractShape

public interface Shape

形状を表わすインターフェースです。
すべての形状の基底となるインターフェースです。

1. 形状関連のインターフェース構成について
形状関連のインターフェース関係は次のようになっています。(左側のインターフェースを継承)
Shape−BoundingVolumeAxisAlignedBV

2. 形状関連のクラス構成について
Shapeインターフェース、BoundingVolumeインターフェースには、次のようにそれぞれを実現した抽象クラスがあり、これらの継承クラスは 次のようになっています。

AxisAlignedBVインターフェースには抽象クラスとして実現しているものはなく、次のクラスが直接実現 しています。

3. 座標系について
すべての座標系を並べると、次のようになります。(左側が親座標系)
ワールド座標系−(BVFigure座標系)−(ボーン座標系)−Shape座標系−BV座標系

このうち、( )内の座標系は、BVFigureに形状を設定する場合に関係する座標系です。
BV座標系は、BoundingVolume(BoxCapsuleCylinderSphereAABBoxAABCapsuleAABCylinder)の場合に関係する座標系です。
したがって、形状の使い方により、関係する座標系は次のようになります。

4. 一次変換行列について
3.における座標系間の変換に関する一次変換行列は、次のメソッドを使って設定します。

導入されたバージョン:
DoJa-5.0 (903i)

フィールドの概要
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座標系をセットする際の一次変換行列を設定します。
 

フィールドの詳細

TYPE_POINT

public static final int TYPE_POINT
Pointを表わすタイプです(=1)。

関連項目:
定数フィールド値

TYPE_LINE

public static final int TYPE_LINE
Lineを表わすタイプです(=2)。

関連項目:
定数フィールド値

TYPE_RAY

public static final int TYPE_RAY
Rayを表わすタイプです(=3)。

関連項目:
定数フィールド値

TYPE_TRIANGLE

setTransform(