|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.ui.graphics3d.collision.AbstractShape
com.nttdocomo.ui.graphics3d.collision.Plane
無限平面を表わすクラスです。
Shape
インターフェースの説明を参照してください。
フィールドの概要 |
インタフェース 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 |
コンストラクタの概要 | |
Plane(Vector3D pos,
Vector3D nor)
平面上の1点と法線ベクトルを指定して平面を生成します。 |
|
Plane(Vector3D v0,
Vector3D v1,
Vector3D v2)
平面上の3点を指定して平面を生成します。 |
メソッドの概要 | |
void |
createMesh(int rgb,
int mode,
float v)
テスト描画用の Primitive オブジェクトを生成します。 |
Vector3D |
getNormal(boolean isTrans)
Planeオブジェクトの法線ベクトルを取得します。 |
Vector3D |
getPosition(boolean isTrans)
Planeオブジェクトの平面上の1点を取得します。 |
boolean |
isHittingFromBackFaceEnabled()
裏側から、 Line またはRay が衝突する場合も、衝突していると判定するかどうかの設定状態を
取得します。
|
void |
set(Vector3D pos,
Vector3D nor)
平面上の1点と法線ベクトルを指定して平面を設定します。 |
void |
set(Vector3D v0,
Vector3D v1,
Vector3D v2)
平面上の3点を指定して平面を設定します。 |
void |
setHittingFromBackFaceEnabled(boolean enable)
裏側から、 Line またはRay が衝突する場合も、衝突していると判定するかどうかを設定します。
|
クラス com.nttdocomo.ui.graphics3d.collision.AbstractShape から継承したメソッド |
deleteMesh, getAttribute, getMesh, getMeshTransform, getScale, getShapeType, getTransform, setAttribute, setTransform |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public Plane(Vector3D pos, Vector3D nor)
平面上の1点と法線ベクトルを指定して平面を生成します。
pos
- 平面上の1点を表わすVector3Dオブジェクトを指定します。nor
- 法線ベクトルを表わすVector3Dオブジェクトを指定します。
NullPointerException
- 引数posまたはnorがnullの場合に発生します。
IllegalArgumentException
- 引数norが零ベクトルの場合に発生します。
public Plane(Vector3D v0, Vector3D v1, Vector3D v2)
平面上の3点を指定して平面を生成します。
v0
- 平面上の点0を表わすVector3Dオブジェクトを指定します。v1
- 平面上の点1を表わすVector3Dオブジェクトを指定します。v2
- 平面上の点2を表わすVector3Dオブジェクトを指定します。
NullPointerException
- 引数v0、v1、v2の1つ以上がnullの場合に発生します。
IllegalArgumentException
- 引数v0、v1、v2が1直線上にある場合(3点が重なる場合も含む)に発生します。
メソッドの詳細 |
public void set(Vector3D pos, Vector3D nor)
平面上の1点と法線ベクトルを指定して平面を設定します。
pos
- 平面上の1点を表わすVector3Dオブジェクトを指定します。nor
- 法線ベクトルを表わすVector3Dオブジェクトを指定します。
NullPointerException
- 引数posまたはnorがnullの場合に発生します。
IllegalArgumentException
- 引数norが零ベクトルの場合に発生します。
public void set(Vector3D v0, Vector3D v1, Vector3D v2)
平面上の3点を指定して平面を設定します。
v0
- 平面上の点0を表わすVector3Dオブジェクトを指定します。v1
- 平面上の点1を表わすVector3Dオブジェクトを指定します。v2
- 平面上の点2を表わすVector3Dオブジェクトを指定します。
NullPointerException
- 引数v0、v1、v2の1つ以上がnullの場合に発生します。
IllegalArgumentException
- 引数v0、v1、v2が1直線上にある場合(3点が重なる場合も含む)に発生します。
public Vector3D getPosition(boolean isTrans)
Planeオブジェクトの平面上の1点を取得します。
isTrans
- ワールド座標系に変換されたデータを取得する場合はtrueを指定します。
Shape座標系におけるデータを取得する場合はfalseを指定します。
public Vector3D getNormal(boolean isTrans)
Planeオブジェクトの法線ベクトルを取得します。
isTrans
- ワールド座標系に変換されたデータを取得する場合はtrueを指定します。
Shape座標系におけるデータを取得する場合はfalseを指定します。
public void createMesh(int rgb, int mode, float v)
Shape
の記述:
テスト描画用のPrimitive
オブジェクトを生成します。
開発時の図形位置の確認用としての利用を前提としたメソッドです。
描画の方法は、getMesh
メソッドでPrimitive
オブジェクトを取得し、getMeshTransform
メソッドで
一次変換行列を取得して、これらをGraphics3D
のrenderObject3D
メソッドの引数に渡して描画します。
生成したPrimitive
オブジェクトは、形状クラスで保持されます。
setメソッドで形状を変更した場合は、createMesh
メソッドでPrimitive
オブジェクトを
再生成してください。それ以外の場合は再生成する必要はありませんが、描画ごとに
getMesh
メソッドでPrimitive
オブジェクトを取得して使用するようにしてください。
(AABVでは、ワールド座標軸に平行になるようにPrimitive
オブジェクトの頂点データが変更
されます)
不要になった場合はdeleteMesh
メソッドで削除してください。
色、ブレンドモード、透明度の設定に関する制限に関しては、Primitive
クラスを参照してください。
ブレンドモードにDrawableObject3D.BLEND_ALPHA
、透明度に50%のような値を使用すると、
図形位置の確認がしやすくなります。
※ 図形サイズ・位置に関する注意事項
生成される頂点座標は、本パッケージの内部処理で使用しているfloat型から、Primitiveの
頂点座標で使われているshort型の範囲(-32768以上かつ32767 以下)にマッピングされるため、
範囲に収まらないサイズ・位置の場合、正常に描画されないことがあります。
また、Ray
、Plane
は、描画上は有限の大きさとなり、端が存在します。
rgb
- 0x00rrggbbの形式で、Primitiveオブジェクトの色を指定します。上位8ビットは無視されます。mode
- ブレンドモードを指定します。DrawableObject3D.BLEND_NORMAL
、DrawableObject3D.BLEND_ALPHA
、DrawableObject3D.BLEND_ADD
のいずれかを指定します。v
- 透明度をパーセントで指定します。100の時が不透明です。
IllegalArgumentException
- 引数modeがDrawableObject3D.BLEND_NORMAL
, DrawableObject3D.BLEND_ALPHA
, DrawableObject3D.BLEND_ADD
のいずれかでもない場合に発生します。
IllegalArgumentException
- 引数vがFloatNaNの場合、0未満の場合、あるいは100より大きい場合に発生します。
public void setHittingFromョ遽