com.docomostar.opt.ui.eruption
クラス Camera

Object
  上位を拡張 com.docomostar.opt.ui.eruption.Object3D
      上位を拡張 com.docomostar.opt.ui.eruption.Animatable
          上位を拡張 com.docomostar.opt.ui.eruption.Camera
すべての実装されたインタフェース:
NodeDeformerNode

public final class Camera
extends Animatable
implements NodeDeformerNode

メッシュや Figure の描画に用いるカメラおよびフォグを表します。

NodeDeformerNode インタフェースを実装するクラスの 1 つです。
カメラの投影方法は、幅と高さを指定して平行投影を設定する方法、画角とアスペクト比を指定して透視投影を設定する方法と、 視錐台から直接設定する方法があります。また、オブジェクトを指定して、それに追従するようにカメラの向きを変えることもできます。

フォグは setFogType(int) において MCE_FOG_TYPE_NONE 以外を設定した上で描画することにより表示されます。
投影テクスチャ使用時にプロジェクタの役割を担うのも Camera です。その際にはフォグ関連の設定は無視されます。

端末によって、本クラスはサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点で UnsupportedOperationException が発生します。


フィールドの概要
static int MCE_CAMERA_TYPE_FRUSTUM
          視錐台で投影方法を表します(=2)。
static int MCE_CAMERA_TYPE_PARALLEL
          平行投影を表します(=0)。
static int MCE_CAMERA_TYPE_PERSPECTIVE
          透視投影を表します(=1)。
static int MCE_FOG_TYPE_EXPONENT
          フォグ-指数指定を表します(=2)。
static int MCE_FOG_TYPE_LINEAR
          フォグ-リニア指定を表します(=1)。
static int MCE_FOG_TYPE_NONE
          フォグ無効を表します(=0)。
 
クラス com.docomostar.opt.ui.eruption.Animatable から継承されたフィールド
MCE_MAX_ACTION_NUM
 
クラス com.docomostar.opt.ui.eruption.Object3D から継承されたフィールド
MCE_CLASS_TYPE_ACTION, MCE_CLASS_TYPE_ACTIONCONTROLLER, MCE_CLASS_TYPE_ACTIONTABLE, MCE_CLASS_TYPE_APPEARANCE, MCE_CLASS_TYPE_BONE, MCE_CLASS_TYPE_BONEDEFORMER, MCE_CLASS_TYPE_CAMERA, MCE_CLASS_TYPE_EFFECTSOURCE, MCE_CLASS_TYPE_FIGURE, MCE_CLASS_TYPE_GEOMETRICSHAPE, MCE_CLASS_TYPE_GRAPHICS3D, MCE_CLASS_TYPE_INDEXBUFFER, MCE_CLASS_TYPE_INTERSECTIONATTRIBUTES, MCE_CLASS_TYPE_LIGHT, MCE_CLASS_TYPE_MORPHDEFORMER, MCE_CLASS_TYPE_NODEDEFORMER, MCE_CLASS_TYPE_OBJECT3D, MCE_CLASS_TYPE_PARTICLE, MCE_CLASS_TYPE_TEXTURE, MCE_CLASS_TYPE_TEXTURETABLE, MCE_CLASS_TYPE_TRACKBALL, MCE_CLASS_TYPE_TRANSFORMTREE, MCE_CLASS_TYPE_VERTEXBUFFER
 
コンストラクタの概要
Camera()
          Camera を生成します。
 
メソッドの概要
 void addSiblingNode(NodeDeformerNode node, Transform offset)
          親(NodeDeformer)に兄弟ノードを追加します。
 float getAngle()
          y軸方向の画角を取得します。
 float getAspect()
          アスペクト比を取得します。
 int getCameraType()
          カメラタイプを取得します。
 float getFar()
          Farクリップ面までの距離を取得します。
 int getFogColor()
          フォグカラーを取得します。
 float getFogDensity()
          フォグ濃度を取得します。
 float getFogEnd()
          フォグの End を取得します。
 boolean getFogHint()
          フォグのヒントを取得します。
 float getFogStart()
          フォグの Start を取得します。
 int getFogType()
          フォグタイプを取得します。
 int getHeight()
          投影面の高さを取得します。
 float getNear()
          Nearクリップ面までの距離を取得します。
 float getOpticalCenterX()
          x方向のカメラセンターを取得します。
 float getOpticalCenterY()
          y方向のカメラセンターを取得します。
 NodeDeformer getParent()
          親(NodeDeformer)を取得します。
 int getParentIndex()
          親(NodeDeformer)における自身のインデックスを取得します。
 NodeDeformerNode getTargetNode()
          ターゲットとして追従するオブジェクトを取得します。
 void getToWorldTransform(Transform dst)
          ワールド座標への変換行列を取得します。
 void getTransform(Transform dst)
          変換行列を取得します。
 NodeDeformerNode getUpNode()
          y軸方向を示すオブジェクトを取得します。
 int getWidth()
          投影面の幅を取得します。
 boolean isVisible()
          NodeDeformerNode の可視状態を検査します。
 void mulScale(Vector3D v)
          変換行列にスケーリング成分を乗算します。
 void removeFromParent()
          親(NodeDeformer)から自身を除去します。
 void resetTransform()
          ノードの変換行列を初期状態(ロード時の初期値)にします。
 void setFogColor(int bgr)
          フォグカラーを設定します。
 void setFogDensity(float d)
          フォグ濃度を設定します。
 void setFogHint(boolean enable)
          フォグのヒントを設定します。
 void setFogStartEnd(float s, float e)
          フォグの Start/End を設定します。
 void setFogType(int type)
          フォグタイプを設定します。
 void setFrustum(float left, float right, float bottom, float top, float z_near, float z_far)
          視錐台を指定して透視投影を設定します。
 void setIdentity()
          変換行列を恒等変換行列に設定します。
 void setParallel(int width, int height, float z_near, float z_far)
          平行投影を設定します。
 void setPerspectiveFov(float aspect, float angle, float z_near, float z_far)
          透視投影を設定します。
 void setPerspectiveFov(float aspect, float angle, float z_near, float z_far, float opcx, float opcy)
          変動率を用いた透視投影を設定します。
 void setRotateEuler(int type, Vector3D v)
          変換行列の回転をオイラー角で設定します。
 void setTargetAndUpNode(NodeDeformerNode target, NodeDeformerNode up)
          ターゲットとして追従するオブジェクトを設定します。
 void setTransform(Transform src)
          変換行列を設定します。
 void setTranslate(Vector3D v)
          変換行列の移動成分を設定します。
 void setVisible(boolean visible)
          NodeDeformerNode に対して可視/不可視を設定します。
 
クラス com.docomostar.opt.ui.eruption.Animatable から継承されたメソッド
getAction, getAction, getActionController, getFrame, getRefGid, getRefGid, setAction, setAction, setActionController, setFrame, setRefGid, setRefGid, setUseActionControllerNum, updatePosture
 
クラス com.docomostar.opt.ui.eruption.Object3D から継承されたメソッド
dispose, equals, findObject3D, findObject3D, getClassType, getUserId, hashCode, isDisposed, isRenderEnable, setRenderEnable, setUserId
 
クラス Object から継承されたメソッド
getClass, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

MCE_CAMERA_TYPE_PARALLEL

public static final int MCE_CAMERA_TYPE_PARALLEL
平行投影を表します(=0)。

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

MCE_CAMERA_TYPE_PERSPECTIVE

public static final int MCE_CAMERA_TYPE_PERSPECTIVE
透視投影を表します(=1)。

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

MCE_CAMERA_TYPE_FRUSTUM

public static final int MCE_CAMERA_TYPE_FRUSTUM
視錐台で投影方法を表します(=2)。

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

MCE_FOG_TYPE_NONE

public static final int MCE_FOG_TYPE_NONE
フォグ無効を表します(=0)。

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

MCE_FOG_TYPE_LINEAR

public static final int MCE_FOG_TYPE_LINEAR
フォグ-リニア指定を表します(=1)。

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

MCE_FOG_TYPE_EXPONENT

public static final int MCE_FOG_TYPE_EXPONENT
フォグ-指数指定を表します(=2)。

関連項目:
定数フィールド値
コンストラクタの詳細

Camera

public Camera()
Camera を生成します。 初期値は以下の通りです。

メソッドの詳細

setPerspectiveFov

public final void setPerspectiveFov(float aspect,
                                    float angle,
                                    float z_near,
                                    float z_far)
透視投影を設定します。

正常終了した場合、カメラタイプは MCE_CAMERA_TYPE_PERSPECTIVE に変更されます。

パラメータ:
aspect - アスペクト比を指定します。
angle - 角度(1.0=360度)を指定します。
z_near - Near クリップ面を指定します。
z_far - Far クリップ面を指定します。
例外:
IllegalArgumentException -
aspect が 0 以下の場合に発生します。
IllegalArgumentException -
angle が (0.0, 0.5) 以外の場合に発生します。
IllegalArgumentException -
z_far - z_near が 0 以下の場合に発生します。

setFrustum

public final void setFrustum(float left,
                             float right,
                             float bottom,
                             float top,
                             float z_near,
                             float z_far)
視錐台を指定して透視投影を設定します。

正常終了した場合、カメラタイプは MCE_CAMERA_TYPE_FRUSTUM に変更されます。

パラメータ:
left - Near クリップ面における左側面の位置を指定します。
right - Near クリップ面における右側面の位置を指定します。
bottom - Near クリップ面における底面の位置を指定します。
top - Near クリップ面における上面の位置を指定します。
z_near - Nearクリップ面を指定します。
z_far - Farクリップ面を指定します。
例外:
IllegalArgumentException -
right - left が 0.0 以下の場合に発生します。
IllegalArgumentException -
top - bottom が 0.0 以下の場合に発生します。
IllegalArgumentException -
z_far - z_near が 0.0 以下の場合に発生します。

setParallel

public final void setParallel(int width,
                              int height,
                              float z_near,
                              float z_far)
平行投影を設定します。

正常終了した場合、カメラタイプは MCE_CAMERA_TYPE_PARALLEL に変更されます。

パラメータ:
width - 幅を指定します。
height - 高さを指定します。
z_near - Nearクリップ面を指定します。
z_far - Farクリップ面を指定します。
例外:
IllegalArgumentException -
width が [1, 32767] 以外の場合に発生します。
IllegalArgumentException -
height が [1, 32767] 以外の場合に発生します。
IllegalArgumentException -
z_far - z_near が 0 以下の場合に発生します。

setPerspectiveFov

public final void setPerspectiveFov(float aspect,
                                    float angle,
                                    float z_near,
                                    float z_far,
                                    float opcx,
                                    float opcy)
変動率を用いた透視投影を設定します。

投影面の各辺の長さをそれぞれ 1.0、現在の中心位置を (0.0, 0.0) として変動率の設定もあわせて行います。
正常終了した場合、カメラタイプは MCE_CAMERA_TYPE_PERSPECTIVE に変更されます。aspect, angle, zNear を極端に小さく、または大きくしたとき、視錐台の作成に失敗することがあります。

パラメータ:
aspect - アスペクト比を指定します。
angle - 角度(1.0=360度)を指定します。
z_near - Near クリップ面を指定します。
z_far - Far クリップ面を指定します。
opcx - Far クリップ面の横方向変動率を指定します。
opcy - Far クリップ面の縦方向変動率を指定します。
例外:
IllegalArgumentException -
opcx が [-100.0, 100.0] 以外の場合に発生します。
IllegalArgumentException -
opcy が [-100.0, 100.0] 以外の場合に発生します。
IllegalArgumentException -
指定したパラメータで、視錐台が作成できない場合に発生します。

getCameraType

public final int getCameraType()
カメラタイプを取得します。

戻り値:
カメラタイプを返します。返す値は以下の通りです。

getAspect

public final float getAspect()
アスペクト比を取得します。

戻り値:
アスペクト比を返します。

getAngle

public final float getAngle()
y軸方向の画角を取得します。

戻り値:
画角(1.0=360度)を返します。

getWidth

public final int getWidth()
投影面の幅を取得します。

戻り値:
投影面の幅を返します。MCE_CAMERA_TYPE_PERSPECTIVE / MCE_CAMERA_TYPE_FRUSTUM の場合、常に 0 を返します。

getHeight

public final int getHeight()
投影面の高さを取得します。

戻り値:
投影面の高さを返します。MCE_CAMERA_TYPE_PERSPECTIVE / MCE_CAMERA_TYPE_FRUSTUM の場合、常に 0 を返します。

getNear

public final float getNear()
Nearクリップ面までの距離を取得します。

戻り値:
Nearクリップ面までの距離を返します。

getFar

public final float getFar()
Farクリップ面までの距離を取得します。

戻り値:
Farクリップ面までの距離を返します。

getOpticalCenterX

public final float getOpticalCenterX()
x方向のカメラセンターを取得します。

setPerspectiveFov(float, float, float, float, float, float) で設定した Far クリップ面の横方向変動率を取得します。

戻り値:
x方向のカメラセンターを返します。

getOpticalCenterY

public final float getOpticalCenterY()
y方向のカメラセンターを取得します。

setPerspectiveFov(float, float, float, float, float, float) で設定した Far クリップ面の縦方向変動率を取得します。

戻り値:
y方向のカメラセンターを返します。

setTargetAndUpNode

public final void setTargetAndUpNode(NodeDeformerNode target,
                                     NodeDeformerNode up)
ターゲットとして追従するオブジェクトを設定します。

パラメータ:
target - 追従するオブジェクトを指定します。
up - Y 軸方向をしめすオブジェクトを指定します。null の場合、y軸方向はワールドにおける (0.0, 1.0, 0.0) になります。
例外:
IllegalArgumentException -
target != null かつ target がシーンノードではない場合に発生します。
IllegalArgumentException -
up != null かつ up がシーンノードではない場合に発生します。
IllegalArgumentException -
target == null かつ up != null の場合に発生します。
IllegalArgumentException -
This == target または This == up の場合に発生します。

getTargetNode

public final NodeDeformerNode getTargetNode()
ターゲットとして追従するオブジェクトを取得します。

setTargetAndUpNode(NodeDeformerNode, NodeDeformerNode) で設定した、追従するオブジェクトを返します。

戻り値:
追従するオブジェクトを返します。

getUpNode

public final NodeDeformerNode getUpNode()
y軸方向を示すオブジェクトを取得します。

setTargetAndUpNode(NodeDeformerNode, NodeDeformerNode) で設定した、y軸方向を示すオブジェクトを返します。

戻り値:
y軸方向を示すオブジェクトを返します。

setFogType

public final void setFogType(int type)
フォグタイプを設定します。

パラメータ:
type - フォグタイプを指定します。指定できる値は、以下の通りです。
例外:
IllegalArgumentException -
type が不正な場合に発生します。

getFogType

public final int getFogType()
フォグタイプを取得します。

戻り値:
フォグタイプを返します。

setFogColor

public final void setFogColor(int bgr)
フォグカラーを設定します。

パラメータ:
bgr - 色 (0xBBGGRR)を指定します。

getFogColor

public final int getFogColor()
フォグカラーを取得します。

戻り値:
色 (0xBBGGRR)を返します。

内部では処理に最適化された値が保持されているため、setFogColor(int) でセットした値とは必ずしも一致せず、若干の誤差を含む場合があります。


setFogDensity

public final void setFogDensity(float d)
フォグ濃度を設定します。

パラメータ:
d - フォグ濃度を指定します。

getFogDensity

public final float getFogDensity()
フォグ濃度を取得します。

戻り値:
フォグ濃度を返します。

setFogStartEnd

public final void setFogStartEnd(float s,
                                 float e)
フォグの Start/End を設定します。

パラメータ:
s - Startを指定します。
e - Endを指定します。

getFogStart

public final float getFogStart()
フォグの Start を取得します。

戻り値:
フォグの Startを返します。

getFogEnd

public final float getFogEnd()
フォグの End を取得します。

戻り値:
フォグの Endを返します。

setFogHint

public final void setFogHint(boolean enable)
フォグのヒントを設定します。

パラメータ:
enable - フォグのヒントを指定します。指定できる値は、以下の通りです。
  • 品質優先 - true
  • 速度優先 - false

getFogHint

public final boolean getFogHint()
フォグのヒントを取得します。

戻り値:
フォグのヒントを返します。

getToWorldTransform

public final void getToWorldTransform(Transform dst)
インタフェース NodeDeformerNode の記述:
ワールド座標への変換行列を取得します。

ワールド座標への変換行列は Figure.updatePosture(Transform)、または TransformTree.relatedMultiply() が呼ばれたときに更新されます。
そのため、最新の変換行列が必要なときには、This の属する Figure が持つ TransformTree に対して TransformTree.relatedMultiply() を呼ぶか、 This の属する Figure に対して Figure.updatePosture(Transform)、または内部的に同 API を呼んで更新処理を行います。
API(Collision3D.isHit(Vector3D, Vector3D, Figure, Transform, GeometricShape[], int[], int),
Collision3D.isHit(GeometricShape, Figure, Transform, Transform, GeometricShape[], int[], int),
Collision3D.isHit(Vector3D, Vector3D, Vector3D, Figure, Transform, GeometricShape[], int[], int),
Collision3D.isInViewVolume(Figure, Transform, Camera, Transform, IndexBuffer[], int[], int),
Collision3D.isInViewVolume(Figure, Transform, Camera, Vector3D, Vector3D, Vector3D, IndexBuffer[], int[], int),
Figure.pick(Vector3D, Vector3D, IntersectionAttributes, int, boolean, Transform),
Graphics3D.drawFigure(Figure, Transform, int),
Graphics3D.addDrawQueueFigure(Figure, Transform))
を事前に呼んでおいた場合、最新の変換行列の情報が dst に反映されるようになります。

定義:
インタフェース NodeDeformerNode 内の getToWorldTransform
パラメータ:
dst - 取得する変換行列の格納先を指定します。

setTransform

public final void setTransform(Transform src)
インタフェース NodeDeformerNode の記述:
変換行列を設定します。

対応する TransformTree ノードの変換行列を設定します。

定義:
インタフェース NodeDeformerNode 内の setTransform
パラメータ:
src - 設定する変換行列を指定します。

getTransform

public final void getTransform(Transform dst)
インタフェース NodeDeformerNode の記述:
変換行列を取得します。

対応する TransformTree ノードの変換行列を取得します。

定義:
インタフェース NodeDeformerNode 内の getTransform
パラメータ:
dst - 取得する変換行列の格納先を指定します。

setIdentity

public final void setIdentity()
インタフェース NodeDeformerNode の記述:
変換行列を恒等変換行列に設定します。

対応する TransformTree ノードの変換行列を恒等変換行列に設定します。

定義:
インタフェース NodeDeformerNode 内の setIdentity

setTranslate

public final void setTranslate(Vector3D v)
インタフェース NodeDeformerNode の記述:
変換行列の移動成分を設定します。

対応する TransformTree ノードの移動成分に設定します。

定義:
インタフェース NodeDeformerNode 内の setTranslate
パラメータ:
v - 移動成分を表す Vector3D を指定します。

setRotateEuler

public final void setRotateEuler(int type,
                                 Vector3D v)
インタフェース NodeDeformerNode の記述:
変換行列の回転をオイラー角で設定します。

対応する TransformTree ノードの回転をオイラー角で設定します。

定義:
インタフェース NodeDeformerNode 内の setRotateEuler
パラメータ:
type - 回転順を指定します。指定できる値は、以下の通りです。
v - 回転成分を表す Vector3D(1.0=360度) を指定します。

mulScale

public final void mulScale(Vector3D v)
インタフェース NodeDeformerNode の記述:
変換行列にスケーリング成分を乗算します。

対応する TransformTree ノードにスケーリング成分を乗算します。

定義:
インタフェース NodeDeformerNode 内の mulScale
パラメータ:
v - 乗算するスケーリング成分を表す Vector3D を指定します。

resetTransform

public final void resetTransform()
インタフェース NodeDeformerNode の記述:
ノードの変換行列を初期状態(ロード時の初期値)にします。

定義:
インタフェース NodeDeformerNode 内の resetTransform

addSiblingNode

public final void addSiblingNode(NodeDeformerNode node,
                                 Transform offset)
インタフェース NodeDeformerNode の記述:
親(NodeDeformer)に兄弟ノードを追加します。

This に対して TransformTree 内の同一 Transform を使用する兄弟ノードを追加します。

定義:
インタフェース NodeDeformerNode 内の addSiblingNode
パラメータ:
node - 追加する兄弟ノードを指定します。
offset - 追加する兄弟ノードのオフセットを表すTransform を指定します。オフセットなしの場合は null を設定します。

removeFromParent

public final void removeFromParent()
インタフェース NodeDeformerNode の記述:
親(NodeDeformer)から自身を除去します。

定義:
インタフェース NodeDeformerNode 内の removeFromParent

setVisible

public final void setVisible(boolean visible)
インタフェース NodeDeformerNode の記述:
NodeDeformerNode に対して可視/不可視を設定します。

This の可視/不可視を設定します。Figure の場合、不可視状態では自身の持つメッシュが描画されなくなるだけであり、自分よりも下の階層は通常通り描画されます。
Light, Camera を不可視にした場合、描画時にそれらは無効となります。

定義:
インタフェース NodeDeformerNode 内の setVisible
パラメータ:
visible - 指定できる値は、以下の通りです。
  • 可視にする場合 - true
  • 不可視にする場合 - false

isVisible

public final boolean isVisible()
インタフェース NodeDeformerNode の記述:
NodeDeformerNode の可視状態を検査します。

定義:
インタフェース NodeDeformerNode 内の isVisible
戻り値:
返す値は、以下の通りです。
  • 可視の場合 - true
  • 不可視の場合 - false

getParent

public final NodeDeformer getParent()
インタフェース NodeDeformerNode の記述:
親(NodeDeformer)を取得します。

定義:
インタフェース NodeDeformerNode 内の getParent
戻り値:
親(NodeDeformer) を返します。

getParentIndex

public final int getParentIndex()
インタフェース NodeDeformerNode の記述:
親(NodeDeformer)における自身のインデックスを取得します。

定義:
インタフェース NodeDeformerNode 内の getParentIndex
戻り値:
親(NodeDeformer)における自身のインデックスを返します。


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。