|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.opt.ui.eruption.Object3D
com.docomostar.opt.ui.eruption.Animatable
com.docomostar.opt.ui.eruption.Camera
public final class Camera
メッシュや 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 |
| コンストラクタの概要 | |
|---|---|
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 |
| フィールドの詳細 |
|---|
public static final int MCE_CAMERA_TYPE_PARALLEL
public static final int MCE_CAMERA_TYPE_PERSPECTIVE
public static final int MCE_CAMERA_TYPE_FRUSTUM
public static final int MCE_FOG_TYPE_NONE
public static final int MCE_FOG_TYPE_LINEAR
public static final int MCE_FOG_TYPE_EXPONENT
| コンストラクタの詳細 |
|---|
public Camera()
Camera を生成します。
初期値は以下の通りです。MCE_CAMERA_TYPE_PERSPECTIVE
null
null
MCE_FOG_TYPE_NONE
false
| メソッドの詳細 |
|---|
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 以下の場合に発生します。
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 以下の場合に発生します。
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 以下の場合に発生します。
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 -
public final int getCameraType()
MCE_CAMERA_TYPE_PARALLEL
MCE_CAMERA_TYPE_PERSPECTIVE
MCE_CAMERA_TYPE_FRUSTUM
public final float getAspect()
public final float getAngle()
public final int getWidth()
MCE_CAMERA_TYPE_PERSPECTIVE / MCE_CAMERA_TYPE_FRUSTUM の場合、常に 0 を返します。public final int getHeight()
MCE_CAMERA_TYPE_PERSPECTIVE / MCE_CAMERA_TYPE_FRUSTUM の場合、常に 0 を返します。public final float getNear()
Nearクリップ面までの距離を取得します。
Nearクリップ面までの距離を返します。public final float getFar()
Farクリップ面までの距離を取得します。
Farクリップ面までの距離を返します。public final float getOpticalCenterX()
setPerspectiveFov(float, float, float, float, float, float) で設定した Far クリップ面の横方向変動率を取得します。
public final float getOpticalCenterY()
setPerspectiveFov(float, float, float, float, float, float) で設定した Far クリップ面の縦方向変動率を取得します。
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 の場合に発生します。public final NodeDeformerNode getTargetNode()
setTargetAndUpNode(NodeDeformerNode, NodeDeformerNode) で設定した、追従するオブジェクトを返します。
public final NodeDeformerNode getUpNode()
setTargetAndUpNode(NodeDeformerNode, NodeDeformerNode) で設定した、y軸方向を示すオブジェクトを返します。
public final void setFogType(int type)
type - フォグタイプを指定します。指定できる値は、以下の通りです。
MCE_FOG_TYPE_NONE
MCE_FOG_TYPE_LINEAR
MCE_FOG_TYPE_EXPONENT
IllegalArgumentException -
type が不正な場合に発生します。public final int getFogType()
public final void setFogColor(int bgr)
bgr - 色 (0xBBGGRR)を指定します。public final int getFogColor()
0xBBGGRR)を返します。
内部では処理に最適化された値が保持されているため、setFogColor(int) でセットした値とは必ずしも一致せず、若干の誤差を含む場合があります。
public final void setFogDensity(float d)
d - フォグ濃度を指定します。public final float getFogDensity()
public final void setFogStartEnd(float s,
float e)
Start/End を設定します。
s - Startを指定します。e - Endを指定します。public final float getFogStart()
Start を取得します。
Startを返します。public final float getFogEnd()
End を取得します。
Endを返します。public final void setFogHint(boolean enable)
enable - フォグのヒントを指定します。指定できる値は、以下の通りです。truefalse
public final boolean getFogHint()
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 内の getToWorldTransformdst - 取得する変換行列の格納先を指定します。public final void setTransform(Transform src)
NodeDeformerNode の記述:
対応する TransformTree ノードの変換行列を設定します。
NodeDeformerNode 内の setTransformsrc - 設定する変換行列を指定します。public final void getTransform(Transform dst)
NodeDeformerNode の記述:
対応する TransformTree ノードの変換行列を取得します。
NodeDeformerNode 内の getTransformdst - 取得する変換行列の格納先を指定します。public final void setIdentity()
NodeDeformerNode の記述:
対応する TransformTree ノードの変換行列を恒等変換行列に設定します。
NodeDeformerNode 内の setIdentitypublic final void setTranslate(Vector3D v)
NodeDeformerNode の記述:
対応する TransformTree ノードの移動成分に設定します。
NodeDeformerNode 内の setTranslatev - 移動成分を表す Vector3D を指定します。
public final void setRotateEuler(int type,
Vector3D v)
NodeDeformerNode の記述:
対応する TransformTree ノードの回転をオイラー角で設定します。
NodeDeformerNode 内の setRotateEulertype - 回転順を指定します。指定できる値は、以下の通りです。
Transform.MCE_ROTATE_EULER_XYZ
Transform.MCE_ROTATE_EULER_XZY
Transform.MCE_ROTATE_EULER_YXZ
Transform.MCE_ROTATE_EULER_YZX
Transform.MCE_ROTATE_EULER_ZXY
Transform.MCE_ROTATE_EULER_ZYX
v - 回転成分を表す Vector3D(1.0=360度) を指定します。public final void mulScale(Vector3D v)
NodeDeformerNode の記述:
対応する TransformTree ノードにスケーリング成分を乗算します。
NodeDeformerNode 内の mulScalev - 乗算するスケーリング成分を表す Vector3D を指定します。public final void resetTransform()
NodeDeformerNode の記述:
NodeDeformerNode 内の resetTransform
public final void addSiblingNode(NodeDeformerNode node,
Transform offset)
NodeDeformerNode の記述:NodeDeformer)に兄弟ノードを追加します。
This に対して TransformTree 内の同一 Transform を使用する兄弟ノードを追加します。
NodeDeformerNode 内の addSiblingNodenode - 追加する兄弟ノードを指定します。offset - 追加する兄弟ノードのオフセットを表すTransform を指定します。オフセットなしの場合は null を設定します。public final void removeFromParent()
NodeDeformerNode の記述:NodeDeformer)から自身を除去します。
NodeDeformerNode 内の removeFromParentpublic final void setVisible(boolean visible)
NodeDeformerNode の記述:NodeDeformerNode に対して可視/不可視を設定します。
This の可視/不可視を設定します。Figure の場合、不可視状態では自身の持つメッシュが描画されなくなるだけであり、自分よりも下の階層は通常通り描画されます。
Light, Camera を不可視にした場合、描画時にそれらは無効となります。
NodeDeformerNode 内の setVisiblevisible - 指定できる値は、以下の通りです。
true
false
public final boolean isVisible()
NodeDeformerNode の記述:NodeDeformerNode の可視状態を検査します。
NodeDeformerNode 内の isVisibletrue
false
public final NodeDeformer getParent()
NodeDeformerNode の記述:NodeDeformer)を取得します。
NodeDeformerNode 内の getParentNodeDeformer) を返します。public final int getParentIndex()
NodeDeformerNode の記述:NodeDeformer)における自身のインデックスを取得します。
NodeDeformerNode 内の getParentIndexNodeDeformer)における自身のインデックスを返します。
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
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ドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。