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

Object
  拡張com.nttdocomo.ui.graphics3d.collision.AbstractShape
      拡張com.nttdocomo.ui.graphics3d.collision.AbstractBV
          拡張com.nttdocomo.ui.graphics3d.collision.Cylinder
              拡張com.nttdocomo.ui.graphics3d.collision.AABCylinder
すべての実装インタフェース:
AxisAlignedBV, BoundingVolume, Shape

public class AABCylinder
extends Cylinder
implements AxisAlignedBV

ワールド座標のY軸に中心軸が平行となるCylinderを表わすクラスです。
AxisAlignedBVインターフェースの説明を参照してください。

このクラスは、AABV(Axis-Aligned Bounding Volume)の1つです。

Cylinder形状のOBV(Oriented Bounding Volume)クラスは、Cylinderクラスです。

AABCylinderオブジェクトをワールド座標系にセットした際に、中心軸がY軸と平行にならない場合、 中心軸がY軸と平行になる円柱の半径・高さは近似による算出を行います。

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

フィールドの概要
 
インタフェース 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
 
コンストラクタの概要
AABCylinder(float radius, float height)
           半径と高さを指定してAABCylinderオブジェクトを生成します。
 
メソッドの概要
 void createMesh(int rgb, int mode, float v)
           テスト描画用のPrimitiveオブジェクトを生成します。
 float getEffectiveRadius(Vector3D vec)
           指定した方向の実効半径(Effective Radius)を取得します。
 float getHeight(boolean isTrans)
           AABCylinderオブジェクトの高さを取得します。
 Primitive getMesh()
           テスト描画用のPrimitiveオブジェクトを取得します。
 Transform getMeshTransform(Transform meshTrans)
           テスト描画用の一次変換行列を取得します。
 float getRadius(boolean isTrans)
           AABCylinderオブジェクトの半径を取得します。
 
クラス com.nttdocomo.ui.graphics3d.collision.Cylinder から継承したメソッド
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
 

コンストラクタの詳細

AABCylinder

public AABCylinder(float radius,
                   float height)

半径と高さを指定してAABCylinderオブジェクトを生成します。

パラメータ:
radius - 半径を指定します。
height - 高さを指定します。
例外:
IllegalArgumentException - 引数radius、heightのうち、1つでも0以下の値がある場合に発生します。
関連項目:
図形サイズ・位置、ベクトル、行列設定値に関する注意事項
メソッドの詳細

getEffectiveRadius

public float getEffectiveRadius(Vector3D vec)
インタフェース BoundingVolume の記述:

指定した方向の実効半径(Effective Radius)を取得します。

実効半径:
引数vecを法線ベクトルに持つ平面が、BoundingVolumeの中心からvecの方向にあり、 BoundingVolumeに接する状態にあるとき、BoundingVolumeの中心と平面の距離が実効半径となります。

定義:
インタフェース BoundingVolume 内の getEffectiveRadius
オーバーライド:
クラス Cylinder 内の getEffectiveRadius
パラメータ:
vec - 実効半径を求める方向のベクトルを指定します。
戻り値:
実効半径を返します。
例外:
NullPointerException - 引数vecがnullの場合に発生します。
IllegalArgumentException - 引数vecが零ベクトルの場合に発生します。
関連項目:
図形サイズ・位置、ベクトル、行列設定値に関する注意事項

getRadius

public float getRadius(boolean isTrans)

AABCylinderオブジェクトの半径を取得します。

パラメータ:
isTrans - ワールド座標系に変換されたデータを取得する場合はtrueを指定します。 BV座標系におけるデータを取得する場合はfalseを指定します。
戻り値:
半径を返します。

getHeight

public float getHeight(boolean isTrans)

AABCylinderオブジェクトの高さを取得します。

パラメータ:
isTrans - ワールド座標系に変換されたデータを取得する場合はtrueを指定します。 BV座標系におけるデータを取得する場合はfalseを指定します。
戻り値:
高さを返します。

createMesh

public void createMesh(int rgb,
                       int mode,
                       float v)
インタフェース Shape の記述:

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

描画の方法は、getMeshメソッドでPrimitiveオブジェクトを取得し、getMeshTransformメソッドで 一次変換行列を取得して、これらをGraphics3DrenderObject3Dメソッドの引数に渡して描画します。

生成したPrimitiveオブジェクトは、形状クラスで保持されます。 setメソッドで形状を変更した場合は、createMeshメソッドでPrimitiveオブジェクトを 再生成してください。それ以外の場合は再生成する必要はありませんが、描画ごとに getMeshメソッドでPrimitiveオブジェクトを取得して使用するようにしてください。 (AABVでは、ワールド座標軸に平行になるようにPrimitiveオブジェクトの頂点データが変更 されます) 不要になった場合はdeleteMeshメソッドで削除してください。

色、ブレンドモード、透明度の設定に関する制限に関しては、Primitiveクラスを参照してください。
ブレンドモードにDrawableObject3D.BLEND_ALPHA、透明度に50%のような値を使用すると、 図形位置の確認がしやすくなります。

※ 図形サイズ・位置に関する注意事項
生成される頂点座標は、本パッケージの内部処理で使用しているfloat型から、Primititdocomo/ui/graphics3d/Primitive.html" title="com.nttdocomo.ui.graphics3d 蜀