Stage3D API
version 0.12

Stage3D
クラス Actor

java.lang.Object
  拡張Stage3D.Actor
直系の既知のサブクラス:
ActorGroup, CameraMan

public class Actor
extends java.lang.Object

このクラスはStageクラスとあわせて使用する。このクラスはStage3D APIに置ける三次元オブジェクトの雛形である。基本的にこのクラスをそのまま使用することはなく、extendsして必要な形にしてから使用する。 このクラスには三次元オブジェクトの移動と回転を簡単に指定するメソッドが用意されており、プログラマは直接ベクトルのプログラムを書くことなくそれらを使うことができる。 Java3Dに置けるグループにBranchGroupとTransformGroupがある。Actorクラスは一つのBranchGroup、一つのTransformGroupを持っている。BranchGroupはLocaleを継承したStageクラスへ三次元オブジェクトを追加するための物である。TransformGroupは、Actorクラスのメソッドでの移動や回転を行うためのものとなっている。 setAngleとgetAngleで設定される角度は極座標の角度である緯度、経度の二つで指定される。なお、極座標で言う中心軸はStageのsetUpwardVecによって設定された物を使用します(標準は(0,1,0))。回転はVector3dクラスにより表されており、それぞれ{x,y,z}={緯度,経度,なし}として扱う。 なお、実装されているメソッド以外を用いてTransformGroupを変更した場合は位置情報ならrehashPosition()、角度情報ならrehashAngle()メソッドを実行してクラスの内部情報に反映する必要がある。


コンストラクタの概要
Actor()
          新しいインスタンスを作成する。
 
メソッドの概要
 void addActing(int q, Acting acting)
          q番目のActingListにactingを追加する。
 void afterSetName()
          StageクラスのgetNewActorメソッドによってインスタンスが 作成され、名前を設定された後に呼び出される。
 Acting createActing(DataPack.DataPack datapack)
          このActor用のActingのインスタンスを作成する。
 void doActing()
          ターンが回って来たときに実行されるメソッドである。
 Acting getActingInQueue(int q)
          引数qで与えられた番号のActingListの実行中のActingを 取得する。
 Acting getActingInQueue(java.lang.String actingname)
          引数actingnameで指定された名前のActingが 実行中であるならそのActingを取得する。
 ActingList[] getActingList()
          このActorが持っているActingListすべての配列を返す。
 javax.vecmath.Vector3d getAngle()
          角度を取得する
 javax.media.j3d.BranchGroup getBranchGroup()
          このActingのBranchGroupを取得する。
 javax.vecmath.Vector3d getDirection()
          方向の単位ベクトルを取得する。
 java.lang.String getName()
          このActorの名前を返す。
 javax.vecmath.Vector3d getOldAngle()
          1ターン前の角度を取得する
 javax.vecmath.Vector3d getPosition()
          位置を取得する。
 javax.vecmath.Matrix3d getRotation()
          このActorの向きへの回転を表すMatrix3dを返す。
 Stage getStage()
          このActorの所属するStageを返す。
 DataPack.DataPack getStatus(int th)
          引数thで与えられた番号のActingListの実行中のActingの コマンドを取得する。
 DataPack.DataPack getStatus(java.lang.String actingname)
          引数actingnameで指定された名前のActingが 実行中であるならそのActingのコマンドを取得する。
 DataPack.DataPack[] getStatuses()
          Actorの持つすべてのActingListの 実行中のActingのコマンドを取得する。
 javax.media.j3d.TransformGroup getTransformGroup()
          このActingのTransformGroupを取得する。
 void interpret(DataPack.DataPack datapack)
          引数datapackをコマンドとしてActingを作成して 0番目のActingListに作成する。
 void interpret(DataPack.DataPack datapack, int q)
          引数datapackをコマンドとしてActingを作成して q番目のActingListに作成する。
 void movePosition(javax.vecmath.Vector3d vec)
          次のターンまでの間、vecで指定した位置に 補完しながら移動する。
 void rehashAngle()
          Stage3Dパッケージ外からgetTransformGroup()メソッドによって 取得したTransformGroupのTransform3DのRotation情報を変更した 場合に内部の情報を更新するためのメソッドである。
 void rehashPosition()
          Stage3Dパッケージ外からgetTransformGroup()メソッドによって 取得したTransformGroupのTransform3DのPosition情報を変更した 場合に内部の情報を更新するためのメソッドである。
 void removeActing(java.lang.String actingname)
          setActingメソッドで登録されたActingの登録解除を行う。
 void removeAllActing()
          setActingメソッドで登録されたActingすべての登録解除を行う。
 void setActing(java.lang.String actingname, java.lang.Class acting)
          このActorが使用可能なActingとしてActingに名前をつけて 登録する。
 void setAngle(javax.vecmath.Vector3d vec)
          角度を設定する。
 void setAngleVector(javax.vecmath.Vector3d vec)
          方向を設定する。
 void setPosition(javax.vecmath.Vector3d vec)
          位置を設定する。
 void setRotation(javax.vecmath.Matrix3d m)
          このActorの回転を表すMatrix3dを設定する。
 void turnAngle(javax.vecmath.Vector3d vec)
          次のターンまでの間、vecで指定した角度まで 補完しながら回転する。
 void turnAngleVector(javax.vecmath.Vector3d vec)
          次のターンまでの間、vecで指定した方向に 補完しながら回転する。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Actor

public Actor()
新しいインスタンスを作成する。 Actorクラスのコンストラクタは通常引数無しの コンストラクタしか使用されない。 これはActorのインスタンスは基本的にClass.newInstance メソッドによって作成される仕様による物である。

メソッドの詳細

getRotation

public javax.vecmath.Matrix3d getRotation()
このActorの向きへの回転を表すMatrix3dを返す。

戻り値:
このActorの向きへの回転を表すMatrix3d。

setRotation

public void setRotation(javax.vecmath.Matrix3d m)
このActorの回転を表すMatrix3dを設定する。

パラメータ:
m - このActorの向きに設定するMatrix3d。

turnAngle

public void turnAngle(javax.vecmath.Vector3d vec)
次のターンまでの間、vecで指定した角度まで 補完しながら回転する。

パラメータ:
vec - Actorを向かせる角度。

turnAngleVector

public void turnAngleVector(javax.vecmath.Vector3d vec)
次のターンまでの間、vecで指定した方向に 補完しながら回転する。

パラメータ:
vec - Actorを向かせる方向ベクトル。

getOldAngle

public javax.vecmath.Vector3d getOldAngle()
1ターン前の角度を取得する

戻り値:
1ターン前の角度。

getAngle

public javax.vecmath.Vector3d getAngle()
角度を取得する

戻り値:
角度。

setAngle

public void setAngle(javax.vecmath.Vector3d vec)
角度を設定する。

パラメータ:
vec - 設定する角度。

setAngleVector

public void setAngleVector(javax.vecmath.Vector3d vec)
方向を設定する。

パラメータ:
vec - 設定する方向。

setPosition

public void setPosition(javax.vecmath.Vector3d vec)
位置を設定する。

パラメータ:
vec - 設定する位置。

movePosition

public void movePosition(javax.vecmath.Vector3d vec)
次のターンまでの間、vecで指定した位置に 補完しながら移動する。

パラメータ:
vec - Actorを向かせる位置ベクトル。

getPosition

public javax.vecmath.Vector3d getPosition()
位置を取得する。

戻り値:
Actorの位置。

getDirection

public javax.vecmath.Vector3d getDirection()
方向の単位ベクトルを取得する。

戻り値:
方向の単位ベクトル。

rehashPosition

public void rehashPosition()
Stage3Dパッケージ外からgetTransformGroup()メソッドによって 取得したTransformGroupのTransform3DのPosition情報を変更した 場合に内部の情報を更新するためのメソッドである。


rehashAngle

public void rehashAngle()
Stage3Dパッケージ外からgetTransformGroup()メソッドによって 取得したTransformGroupのTransform3DのRotation情報を変更した 場合に内部の情報を更新するためのメソッドである。


afterSetName

public void afterSetName()
StageクラスのgetNewActorメソッドによってインスタンスが 作成され、名前を設定された後に呼び出される。 このメソッドは何も行わず、派生クラスにおいて オーバーライドされるために存在する。


getActingList

public ActingList[] getActingList()
このActorが持っているActingListすべての配列を返す。

戻り値:
このActorが持っているActingListすべての配列。

createActing

public Acting createActing(DataPack.DataPack datapack)
このActor用のActingのインスタンスを作成する。 引数datapackはそのActingのインスタンスの作成に必要な 情報である。このDataPackのgetStringData()で得られる String配列の第一要素がsetActing()メソッドによって 登録された名前である必要があり、getDataPack()によって 得られるDataPack配列をActingのオプションとして渡される。

パラメータ:
datapack - Actingのインスタンスの作成に必要な情報。
戻り値:
作成されたActingを返す。ただし、登録されて いないActingがしていされたり、オプションでエラーが あった場合はnullを返す。

addActing

public void addActing(int q,
                      Acting acting)
q番目のActingListにactingを追加する。

パラメータ:
q - 追加するActingListの番号。
acting - 追加するActing。

getName

public java.lang.String getName()
このActorの名前を返す。 return このActorの名前。


getStage

public Stage getStage()
このActorの所属するStageを返す。 return このActorの所属するStage。


doActing

public void doActing()
ターンが回って来たときに実行されるメソッドである。 Actorが持っているすべてのActingListに含まれる Actingを実行する。これをオーバーライドすれば Actingを使用しないActorを作成することができる。 処理を追加したいなら派生クラスのこのメソッドで super.doActing()を呼び出せばよい。


interpret

public void interpret(DataPack.DataPack datapack)
引数datapackをコマンドとしてActingを作成して 0番目のActingListに作成する。

パラメータ:
datapack - Actingの作成に使用されるコマンド。

interpret

public void interpret(DataPack.DataPack datapack,
                      int q)
引数datapackをコマンドとしてActingを作成して q番目のActingListに作成する。

パラメータ:
datapack - Actingの作成に使用されるコマンド。
q - 追加するActingListの番号。

setActing

public void setActing(java.lang.String actingname,
                      java.lang.Class acting)
このActorが使用可能なActingとしてActingに名前をつけて 登録する。

パラメータ:
actingname - 登録するActingに関連づける名前。
acting - 登録するActingのクラス

removeActing

public void removeActing(java.lang.String actingname)
setActingメソッドで登録されたActingの登録解除を行う。

パラメータ:
actingname - 登録されたActingの名前。
関連項目:
setActing(String actingname,Class acting)

removeAllActing

public void removeAllActing()
setActingメソッドで登録されたActingすべての登録解除を行う。

関連項目:
setActing(String actingname,Class acting)

getTransformGroup

public javax.media.j3d.TransformGroup getTransformGroup()
このActingのTransformGroupを取得する。

戻り値:
このActingのTransformGroup。

getBranchGroup

public javax.media.j3d.BranchGroup getBranchGroup()
このActingのBranchGroupを取得する。

戻り値:
このActingのBranchGroup。

getStatus

public DataPack.DataPack getStatus(java.lang.String actingname)
引数actingnameで指定された名前のActingが 実行中であるならそのActingのコマンドを取得する。

パラメータ:
actingname - コマンドを取得したいActingの名前。
戻り値:
取得したActingのコマンド。 ただし、そのActingが実行中でなければnullを返す。 ActingListに存在していても実行中でなければnullを返す。

getStatus

public DataPack.DataPack getStatus(int th)
引数thで与えられた番号のActingListの実行中のActingの コマンドを取得する。

パラメータ:
th - 対象となるActingListの番号。

getStatuses

public DataPack.DataPack[] getStatuses()
Actorの持つすべてのActingListの 実行中のActingのコマンドを取得する。

戻り値:
ActingListすべての実行中のActingのコマンドの配列。 ただし、空のActingListのある番号はnullとなる。

getActingInQueue

public Acting getActingInQueue(int q)
引数qで与えられた番号のActingListの実行中のActingを 取得する。

パラメータ:
q - 対象となるActingListの番号。

getActingInQueue

public Acting getActingInQueue(java.lang.String actingname)
引数actingnameで指定された名前のActingが 実行中であるならそのActingを取得する。

パラメータ:
actingname - 取得したいActingの名前。
戻り値:
取得したActing。 ただし、そのActingが実行中でなければnullを返す。 ActingListに存在していても実行中でなければnullを返す。

author Takao Sumitomo