Objectcom.nttdocomo.ui.sound3d.CartesianListener
デカルト座標でリスナ(聴者)の位置と向きを指定するオブジェクトを定義します。
リスナの位置と向きを指定する際の考え方は、
デカルト座標の各成分は float で指定しますが、
Transform クラスで 視点座標への変換となるように行列の要素を設定するのと同様です。
すなわち、リスナの向きは、リスナの位置に加えて参照点および上方向ベクトルを指定することによって決まります。
視線方向((参照点 - リスナの位置)によって計算されるベクトル)と上方向ベクトルとが垂直でないときは、
視線方向と垂直になるように上方向ベクトルを補正したものを用いて処理が行われます。
Vector3D と同様にシステム内部で整数演算に変換されて処理されます。
CartesianPosition| コンストラクタの概要 | |
CartesianListener()
リスナの位置と向きを指定するオブジェクトを生成します。 |
|
| メソッドの概要 | |
Vector3D |
getVelocity() [iアプリオプションAPI]
リスナの移動方向と速度を取得します。 |
void |
setLookAt(Vector3D position,
Vector3D look,
Vector3D up)
リスナの位置と参照点と上方向を指定してリスナの向きを設定します。 |
void |
setTransform(Transform transform)
リスナ中心の座標系に変換するための行列を指定してリスナの向きを設定します。 |
void |
setVelocity(Vector3D vector) [iアプリオプションAPI]
リスナの移動方向と速度を指定します。 |
| クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public CartesianListener()
リスナの位置と向きを指定するオブジェクトを生成します。
デフォルトでは、各パラメータは以下のように設定されています。
| メソッドの詳細 |
public void setLookAt(Vector3D position,
Vector3D look,
Vector3D up)
リスナの位置と参照点と上方向を指定してリスナの向きを設定します。
このメソッドで指定した位置および参照点に、
CartesianPosition オブジェクトが持つ座標変換係数をかけた値が実際の位置および参照点として使用されます。
position - リスナの位置を表すベクトルを指定します。look - リスナの参照点を表すベクトルを指定します。up - リスナの上方向を表すベクトルを指定します。
NullPointerException - 引数 position, look, up のいずれかが null の場合に発生します。
IllegalArgumentException - 引数 up が零ベクトルの場合に発生します。
また、この引数が示す値を int 幅の値に変換したときに、
この条件を満たす場合にも発生します。
IllegalArgumentException - 引数 look と position のベクトルが等価な場合に発生します。
また、これらの引数が示す値を int 幅の値に変換したときに、
この条件を満たす場合にも発生します。
IllegalArgumentException - 引数 (look - position) のベクトル演算の結果と、
引数 up のベクトルが平行な場合に発生します。
また、これらの引数が示す値を int 幅の値に変換したときに、
この条件を満たす場合にも発生します。
public void setTransform(Transform transform)
リスナ中心の座標系に変換するための行列を指定してリスナの向きを設定します。
リスナの位置と向きを setLookAt(com.nttdocomo.ui.util3d.Vector3D, com.nttdocomo.ui.util3d.Vector3D, com.nttdocomo.ui.util3d.Vector3D) メソッドを使用して指定する代わりに、
Transform オブジェクトにリスナの位置と向きを設定しておいて、
それをリスナ中心の座標系に変換するための行列として指定することができます。
transform - リスナ中心の座標系に変換するための行列を指定します。
NullPointerException - 引数 transform
に null が指定された場合に発生します。
public void setVelocity(Vector3D vector) [iアプリオプションAPI]
リスナの移動方向と速度を指定します。 リスナの移動方向と速度はドップラー効果の計算のためにのみ使用され、 リスナの位置や向きには影響しません。
このメソッドで指定した速度に座標変換係数をかけた値が実際の速度として使用されます。
[DoJa-4.0 (901i) 以降]
端末によってはサポートされない場合があります。
サポートされない場合、本メソッドの呼び出しは無視されます。
例外は発生しません。
[DoJa-5.0 (903i) 以降]
デフォルトでは null が指定されたのと同じ状態になっています。
vector - リスナの移動方向と速度を表すベクトルを指定します。
引数に null を指定した場合は零ベクトルが指定されたものとみなされます。public Vector3D getVelocity() [iアプリオプションAPI]
リスナの移動方向と速度を取得します。
setVelocity(Vector3D) メソッドで null が設定された場合は、
このメソッドは null を返します。
[DoJa-4.0 (901i) 以降]
端末によってはサポートされない場合があります。
サポートされない場合は、 null を返します。