Springhead
An open source physics engine for virtual reality, haptics and motion generation.
クラス SampleApp
SampleAppに対する継承グラフ

構成

struct  Action
 アクション情報 [詳細]
 
struct  Menu
 

Public 型

enum  MenuID {
  MENU_ALWAYS = 0, MENU_SCENE = 1, MENU_COMMON = 100, MENU_CONFIG = MENU_COMMON,
  MENU_DRAW, MENU_STATE, MENU_EDITOR, MENU_COMMON_LAST
}
 メニューID MENU_ALWAYSはいつでも表示される シーンに対応するメニューは1~99のIDを使用(シーンは99個まで) 100以降を共有メニューが使用 [詳細]
 
enum  ActionAlways { ID_EXIT, ID_RUN, ID_STEP }
 アクションID 常につかえるアクション [詳細]
 
enum  ActionState {
  ID_LOAD_STATE, ID_SAVE_STATE, ID_RELEASE_STATE, ID_READ_STATE,
  ID_WRITE_STATE, ID_DUMP
}
 ステートの保存と復帰(未検証)
 
enum  ActionConfig {
  ID_SWITCH_LCP_PENALTY, ID_TOGGLE_GRAVITY, ID_TOGGLE_JOINT, ID_TOGGLE_ABA,
  ID_INC_TIMESTEP, ID_DEC_TIMESTEP, ID_INC_TIMER, ID_DEC_TIMER
}
 物理シミュレーションの設定 [詳細]
 
enum  ActionDraw {
  ID_DRAW_GRAPHICS, ID_DRAW_SOLID, ID_DRAW_WIREFRAME, ID_DRAW_AXIS,
  ID_DRAW_FORCE, ID_DRAW_CONTACT
}
 描画の設定 [詳細]
 
enum  ShapeID {
  SHAPE_BOX, SHAPE_CAPSULE, SHAPE_ROUNDCONE, SHAPE_SPHERE,
  SHAPE_ELLIPSOID, SHAPE_ROCK, SHAPE_BLOCK, SHAPE_COIN
}
 形状ID
 
typedef map< int, MenuMenus
 
- Public 型 inherited from FWApp
enum  { TypeNone, TypeGLUT, TypeGLUI }
 

Public メソッド

FWSceneIfGetFWScene ()
 アクティブなシーン
 
PHSceneIfGetPHScene ()
 
void AddMenu (int menu, UTString brief)
 メニューの登録
 
ActionAddAction (int menu, int id, UTString desc, UTString msg="", UTString descd="", UTString msgd="")
 アクションの登録
 
void AddHotKey (int menu, int id, int key, UTString alt="")
 アクションとキーの対応
 
bool ToggleAction (int menu, int id)
 On/Offの反転
 
PHSolidIfCreateFloor (bool bWall)
 床の作成
 
void SwitchScene (int id)
 
void Drop (int shape, int mat, Vec3d v, Vec3d w, Vec3d p, Quaterniond q)
 色々な形の物体を作成 [詳細]
 
void Shoot (int shape, int mat)
 
void DrawMenu (GRRenderIf *render, int id, Vec2f &offset)
 メニューの表示
 
void DrawHelp (GRRenderIf *render)
 付加情報の表示
 
virtual double ShapeScale ()
 
 SampleApp ()
 
virtual void BuildScene ()
 派生クラスが実装する関数 [詳細]
 
virtual void OnStep ()
 1ステップのシミュレーション
 
virtual void OnDraw (GRRenderIf *render)
 描画
 
virtual void OnAction (int menu, int id)
 アクション処理 [詳細]
 
virtual void Init (int argc, char *argv[])
 FWAppの実装 [詳細]
 
virtual void Cleanup ()
 
virtual void TimerFunc (int id)
 タイマー処理 繰り返し実行を行う. デフォルトではid = 0でコールバック [詳細]
 
virtual void Display ()
 シーンの描画 シーンが表示されるときに呼ばれる. 描画処理をカスタマイズしたい場合にオーバライドする. デフォルトではFWSdk::Drawが呼ばれる.
 
virtual void Keyboard (int key, int x, int y)
 キーボードイベントのハンドラ [詳細]
 
- Public メソッド inherited from FWApp
virtual void Init ()
 初期化 FWAppオブジェクトの初期化を行う.最初に必ず呼ぶ.
 
void InitInNewThread ()
 Create new thead and start.
 
void EndThread ()
 
void DisableIdleFunc ()
 IdleFuncの呼び出しを有効化/無効化する glutの場合,glutIdleFuncに対応する. [詳細]
 
void EnableIdleFunc (bool on=true)
 
void StartMainLoop ()
 メインループの実行 glutの場合,glutMainLoopの実行
 
void EndMainLoop ()
 メインループの終了 freeglutの場合,glutLeaveMainLoopを実行、それ以外の場合は exit(0)
 
virtual void IdleFunc ()
 アイドル処理 イベントが何もない場合にバックグラウンド処理を行う.
 
virtual void Reshape (int w, int h)
 描画領域のサイズ変更 [詳細]
 
virtual void MouseButton (int button, int state, int x, int y)
 マウスイベントのハンドラ
 
virtual void MouseMove (int x, int y)
 マウスイベントのハンドラ デフォルトでは左ドラッグで視点変更,右ドラッグでズームイン/アウト
 
virtual void Joystick (unsigned int buttonMask, int x, int y, int z)
 ジョイスティックのハンドラ
 
virtual void AtExit ()
 終了処理ハンドラ
 
virtual bool OnMouse (int button, int state, int x, int y)
 DVKeyMouseHandlerの仮想関数 デフォルトではFWAppの従来のイベントハンドラを呼びだすのみ. こちらを直接オーバライドしてもよい.
 
virtual bool OnMouseMove (int button, int x, int y, int zdelta)
 マウスが動いたときの処理 [詳細]
 
virtual bool OnDoubleClick (int button, int x, int y)
 ダブルクリック時の処理 [詳細]
 
virtual bool OnKey (int state, int key, int x, int y)
 キー入力処理 [詳細]
 
virtual void OnControlUpdate (FWControlIf *ctrl)
 GUI系イベントハンドラ [詳細]
 
FWWinIfCreateWin (const FWWinDesc &desc=FWWinDesc(), FWWinIf *parent=0)
 ウィンドウに対応するコンテキストを作る [詳細]
 
int NWin ()
 ウィンドウの数
 
FWWinIfGetWinFromId (int wid)
 ウィンドウをIDから探す [詳細]
 
FWWinIfGetWin (int index)
 ウィンドウを取得する [詳細]
 
FWWinIfGetCurrentWin ()
 現在のウィンドウを取得する
 
void DestroyWin (FWWinIf *win)
 ウィンドウを削除する
 
void SetCurrentWin (FWWinIf *win)
 現在のウィンドウを設定する
 
void PostRedisplay ()
 カレントウィンドウのノーマルプレーンを,再描画の必要に応じてマークする
 
int GetModifier ()
 Ctrl, Shift, Altの状態を返す 個々の派生クラスで実装される
 
void SetGRHandler (int type)
 描画の設定 FWGraphicsHandlerを設定する.最初に必ず呼ぶ.
 
GRDeviceIfGRInit ()
 FWGraphicsHandlerの初期化 FWGraphicsHandlerの初期化を行う.最初に必ず呼ぶ.
 
GRDeviceIfGRInit (int argc, char *argv[]=NULL, int type=TypeGLUT)
 
void GetDisplayLock ()
 Display関数呼び出しの排他ロックを取得する
 
void ReleaseDisplayLock ()
 Display関数呼び出しの排他ロックを解放する
 
void InitWindow ()
 削除候補API [詳細]
 
void Clear ()
 初期状態にする
 
void Reset ()
 リセットする
 
- Public メソッド inherited from FWAppBase
virtual void UserFunc ()
 ユーザ関数 メインループ実行中にユーザが処理を加えたい場合,ここに記述する. 物理シミュレーションのステップの前に呼ばれる.
 
FWSdkIfGetSdk ()
 SDKを取得する
 
void CreateSdk ()
 SDKを作成する
 
UTTimerIfCreateTimer (UTTimerIf::Mode mode=UTTimerIf::FRAMEWORK)
 タイマーを作成する [詳細]
 
UTTimerIfGetTimer (int i)
 タイマーを取得する [詳細]
 
int NTimers ()
 
- Public メソッド inherited from UTRefCount
 UTRefCount (const UTRefCount &r)
 
UTRefCountoperator= (const UTRefCount &r)
 
int AddRef () const
 
int DelRef () const
 
int RefCount () const
 

Public 変数

Menus menus
 
int curMenu
 表示中の共有メニュー
 
stringstream ss
 
UTString message
 一行メッセージ
 
FWEditorOverlay editor
 内部情報の表示/編集機能
 
UTRef< ObjectStatesIfstates
 状態保存用
 
UTTimerIftimer
 タイマ
 
CDBoxIfshapeFloor
 床用の形状
 
CDBoxIfshapeWallX
 
CDBoxIfshapeWallZ
 
CDBoxIfshapeBox
 作りおき形状
 
CDSphereIfshapeSphere
 
CDEllipsoidIfshapeEllipsoid
 
CDCapsuleIfshapeCapsule
 
CDRoundConeIfshapeRoundCone
 
CDConvexMeshIfshapeCoin
 
bool showHelp
 状態 [詳細]
 
int curScene
 アクティブなシーンの番号
 
Vec3d tmpGravity
 重力無効化時の退避変数
 
UTString appName
 属性: 派生クラスがコンストラクタで設定する [詳細]
 
int numScenes
 シーンの数
 
float ymargin
 ヘルプの描画属性
 
float xmargin
 
float yline
 
float xkeys
 
float xbrief
 
GRShaderIfshaderBase
 シェーダ
 
GRShaderIfshaderShadowCreate
 
GRShaderIfshaderShadowRender
 

Additional Inherited Members

- Static Public メソッド inherited from FWApp
static FWAppGetApp ()
 FWAppインスタンスを取得する
 
- Protected 型 inherited from FWApp
typedef std::vector< UTRef
< FWWinIf > > 
Wins
 
- Protected 型 inherited from FWAppBase
typedef std::vector< UTRef
< UTTimerIf > > 
Timers
 
- Protected メソッド inherited from FWApp
void AssignScene (FWWinIf *win)
 ウィンドウにシーンを与える [詳細]
 
void StartInThread ()
 Initialize in new thead.
 
void CheckAndPostRedisplay ()
 
- Protected 変数 inherited from FWApp
bool bThread
 GLUTを別スレッドで動かす場合 true.
 
volatile bool bPostRedisplay
 別スレッドに再描画の要求をするためのフラグ true で再描画
 
volatile bool bEndThread
 別スレッドの場合にスレッドを終了させる。
 
UTCriticalSection displayLock
 
Wins wins
 
- Protected 変数 inherited from FWAppBase
UTRef< FWSdkIffwSdk
 Framework SDK.
 
Timers timers
 Timers to call periodic processing.
 
- Static Protected 変数 inherited from FWApp
static FWAppinstance
 唯一のFWAppインスタンス
 

列挙型

列挙型の値
ID_EXIT 

終了

ID_RUN 

シミュレーションの開始と停止

ID_STEP 

ステップ実行

列挙型の値
ID_SWITCH_LCP_PENALTY 

LCPとペナルティ法を切り替える

ID_TOGGLE_GRAVITY 

重力の有効化と無効化

ID_TOGGLE_JOINT 

関節の有効化と無効化

ID_TOGGLE_ABA 

ABAの有効化と無効化

ID_INC_TIMESTEP 

タイムステップを増やす

ID_DEC_TIMESTEP 

タイムステップを減らす

ID_INC_TIMER 

タイマ周期を増やす

ID_DEC_TIMER 

タイマ周期を減らす

enum ActionDraw
列挙型の値
ID_DRAW_GRAPHICS 

グラフィクスシーンの表示

ID_DRAW_SOLID 

ソリッド

ID_DRAW_WIREFRAME 

ワイヤフレーム

ID_DRAW_AXIS 

座標軸

ID_DRAW_FORCE 

ID_DRAW_CONTACT 

接触断面

enum MenuID
列挙型の値
MENU_ALWAYS 

いつでも有効なメニュー

MENU_SCENE 

シーンメニュー

MENU_COMMON 

共有メニュー

MENU_CONFIG 

パラメータ設定系

MENU_DRAW 

描画設定系

MENU_STATE 

ステート保存系

MENU_EDITOR 

FWEditorを表示

コンストラクタとデストラクタ

SampleApp ( )
inline

いつでも有効系

共有コマンドはシーンコマンドとの衝突回避のために大文字を割り当てる ステートの保存や復帰

シミュレーション設定

描画設定系

関数

virtual void BuildScene ( )
inlinevirtual

シーン構築を行う.

FWOptimizerSample, MyApp, VTrajSampleApp, MyApp, IKSampleApp, MyApp, MyApp, MyApp, MyApp, MyApp, ShoulderJointLimitApp, VirtualHumanApp, IKSampleApp, MyApp, MyApp, と FWMyApptestで再定義されています。

virtual void Init ( int  argc,
char *  argv[] 
)
inlinevirtual
virtual void Keyboard ( int  key,
int  x,
int  y 
)
inlinevirtual
引数
keyキーコード
xカーソルx座標
yカーソルy座標 特殊キーのキーコードは使用するグラフィクスライブラリに依存する.

*GLUTの場合,glutKeyboardFuncコールバックとglutSpecialFuncコールバックで キーコードが重複している.そこでglutSpecialFuncコールバックに渡されたキーコードには 256が加算されてKeyboardに渡される.

FWAppを再定義しています。

MyApp, MyApp, MyApp, と MyAppで再定義されています。

参照元 MyApp::Keyboard().

virtual void TimerFunc ( int  id)
inlinevirtual

時刻のチェックと画面の更新を行う

FWAppを再定義しています。

MyApp, と MyAppで再定義されています。

変数

UTString appName

サンプル名. 派生クラスがコンストラクタで設定する

bool showHelp

ヘルプ表示


このクラスの説明は次のファイルから生成されました: