com.nttdocomo.ui.graphics3d.collision
クラス AbstractShape

Object
  拡張com.nttdocomo.ui.graphics3d.collision.AbstractShape
すべての実装インタフェース:
Shape
直系の既知のサブクラス:
AbstractBV, Line, Plane, Point, Triangle

public abstract class AbstractShape
extends Object
implements Shape

形状を表わす抽象クラスです。(Shapeインターフェースを実現)
Shapeインターフェースの説明を参照してください。

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

フィールドの概要
 
インタフェース 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
 
メソッドの概要
 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座標系をセットする際の一次変換行列を設定します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース com.nttdocomo.ui.graphics3d.collision.Shape から継承したメソッド
createMesh
 

メソッドの詳細

getShapeType

public final int getShapeType()
インタフェース Shape の記述:

形状タイプを取得します。

定義:
インタフェース Shape 内の getShapeType
戻り値:
形状タイプを返します。
関連項目:
Shape.TYPE_POINT, Shape.TYPE_LINE, Shape.TYPE_RAY, Shape.TYPE_TRIANGLE, Shape.TYPE_PLANE, Shape.TYPE_SPHERE, Shape.TYPE_BOX, Shape.TYPE_CYLINDER, Shape.TYPE_CAPSULE, Shape.TYPE_AAB_BOX, Shape.TYPE_AAB_CYLINDER, Shape.TYPE_AAB_CAPSULE

getMesh

public Primitive getMesh()
インタフェース Shape の記述:

テスト描画用のPrimitiveオブジェクトを取得します。
開発時の図形位置の確認用としての利用を前提としたメソッドです。

保持しているPrimitiveオブジェクトへの参照を返します。

取得したPrimitiveオブジェクトに対して、disposeメソッドを実行しないようにしてください。 disposeを実行すると、 Graphics3D.renderObject3D(DrawableObject3D, Transform)メソッド実行時に例外が発生します。

定義:
インタフェース Shape 内の getMesh
戻り値:
テスト描画用のPrimitiveオブジェクトを返します。 createMeshメソッドでPrimitiveオブジェクトが生成されていない場合はnullを返します。
例外:
UIException - 保持しているPrimitiveオブジェクトが既に dispose() されている場合に発生します (ILLEGAL_STATE)。

getMeshTransform

public Transform getMeshTransform(Transform meshTrans)
インタフェース Shape の記述:

テスト描画用の一次変換行列を取得します。
開発時の図形位置の確認用としての利用を前提としたメソッドです。

定義:
インタフェース Shape 内の getMeshTransform
パラメータ:
meshTrans - 一次変換行列の値を受け取るTransformオブジェクトを指定します。 指定されたTransformオブジェクトに値をコピーして、戻り値で返します。nullが指定された 場合は、Transformオブジェクトを生成して値をコピーし、戻り値で返します。
戻り値:
一次変換行列を返します。 createMeshメソッドでPrimitiveオブジェクトが生成されていない場合、保持しているPrimitiveオブジェクトが既に dispose() されている場合はnullを返します。

deleteMesh

public final void deleteMesh()
インタフェース Shape の記述:

createMeshメソッドで生成したテスト描画用のPrimitiveオブジェクトを削除します。

Primitiveオブジェクトがdispose()されている状態で呼び出した場合、Primitiveオブジェクト の参照を切ります。
次の状態で呼び出した場合は何もしません。

定義:
インタフェース Shape 内の deleteMesh

setTransform

public final void setTransform(Transform trans)
インタフェース Shape の記述:

ワールド座標系に対してShape座標系をセットする際の一次変換行列を設定します。

初期値は単位行列で、Shape座標系 がワールド座標系と一致します。

次のBoundingVolumeオブジェクトに対してこのメソッドを実行しても無視されます。

設定する行列の3×3部分が直交行列となり、全方向同一スケールとなるように指定してください。そうでない場合の 衝突判定、可視判定は保証されません。

定義:
インタフェース Shape 内の setTransform
パラメータ:
trans - ワールド座標系に対してShape座標系をセットする際の一次変換行列を 設定します。nullを設定すると単位行列として扱われ、Shape座標系がワールド座標系と一致 します。
例外:
IllegalArgumentException - 引数transの1〜3列の列ベクトルに零ベクトルがある場合に発生します。
関連項目:
図形サイズ・位置、ベクトル、行列設定値に関する注意事項

getTransform

public Transform getTransform(int transType,
                              Transform trans)
インタフェース Shape の記述:

指定した座標系間の一次変換行列を取得します。

次の一次変換行列を取得することができます。

  • TRANS_SHAPE_WORLD
    Shape座標系からワールド座標系への一次変換行列(スケールあり)。
    setTransformで設定した一次変換行列を取得します。
  • TRANS_SHAPE_WORLD_NOSCALE
    Shape座標系からワールド座標系への一次変換行列(スケールなし)。
  • TRANS_BV_SHAPE
    BV座標系からShape座標系への一次変換行列。
    (getRotategetCenter(false)の結果を行列として1つにしたもの)
  • TRANS_BV_WORLD
    BV座標系からワールド座標系への一次変換行列(スケールあり)。
    (TRANS_SHAPE_WORLDとTRANS_BV_SHAPEの組合せ)
  • TRANS_BV_WORLD_NOSCALE
    BV座標系からワールド座標系への一次変換行列(スケールなし)。
    TRANS_BV_WORLDにおいてBoundingVolumeのサイズにスケールがかかっていない行列。 BoundingVolumeの中心(BV座標系の原点)がShape座標系の原点と異なる位置の場合、中心位置に関しては スケールがかかります。

次のBoundingVolumeオブジェクトに対してこのメソッドを実行した場合にも、ワールド座標系−Shape座標系間の一次変換行列を取得することができます。

(取得する一次変換行列は、ワールド座標系とShape座標系の間に入る座標系に関する変換行列を すべて含めて計算されたものです。)

定義:
インタフェース Shape 内の getTransform
パラメータ:
transType - 取得する一次変換行列のタイプを指定します。 Shape.TRANS_SHAPE_WORLDShape.TRANS_SHAPE_WORLD_NOSCALEShape.TRANS_BV_SHAPEShape.TRANS_BV_WORLDShape.TRANS_BV_WORLD_NOSCALEのいずれかを指定します。
trans - 一次変換行列の値を受け取るTransformオブジェクトを指定します。 指定されたTransformオブジェクトに値をコピーして、戻り値で返します。nullが指定された 場合は、Transformオブジェクトを生成して値をコピーし、戻り値で返します。
戻り値:
指定した座標系間の一次変換行列を返します。PointLineRayTrianglePlaneオブジェクトに対して、transTypeにShape.TRANS_BV_SHAPEShape.TRANS_BV_WORLDShape.TRANS_BV_WORLD_NOSCALEが指定された場合は、次の処理を行います。
例外:
IllegalArgumentException - transTypeにShape.TRANS_SHAPE_WORLDShape.TRANS_SHAPE_WORLD_NOSCALEShape.TRANS_BV_SHAPEShape.TRANS_BV_WORLDShape.TRANS_BV_WORLD_NOSCALE 以外が指定された場合に発生します

getScale

public float getScale()
インタフェース Shape の記述:

Shape座標系からワールド座標系への一次変換行列におけるスケール成分を取得します。

定義:
インタフェース Shape 内の getScale
戻り値:
Shape座標系からワールド座標系への一次変換行列におけるスケール成分を返します。 全方向同一スケールが設定されることを前提としていますが、同一スケールでない場合は、 最大値を返します。

setAttribute

public final void setAttribute(Object attribute)
インタフェース Shape の記述:

形状に属性オブジェクトを付加します。

Objectクラスを継承した任意のクラスのオブジェクトを付加することができます。これにより、 図形ごとにユーザー独自の属性を設定することができます。

引数attributeにnullを指定することにより、既に設定されている属性オブジェクトを除去 することができます。

定義:
インタフェース Shape 内の setAttribute
パラメータ:
attribute - 形状に付加する属性オブジェクトを指定します。

getAttribute

public final Object getAttribute()
インタフェース Shape の記述:

形状に付加している属性オブジェクトを取得します。

定義:
インタフェース Shape 内の getAttribute
戻り値:
形状に付加している属性オブジェクトを返します。設定されていない場合はnullを返します。