Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|
構成 | |
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, Menu > | Menus |
Public 型 inherited from FWApp | |
enum | { TypeNone, TypeGLUT, TypeGLUI } |
Public メソッド | |
FWSceneIf * | GetFWScene () |
アクティブなシーン | |
PHSceneIf * | GetPHScene () |
void | AddMenu (int menu, UTString brief) |
メニューの登録 | |
Action & | AddAction (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の反転 | |
PHSolidIf * | CreateFloor (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系イベントハンドラ [詳細] | |
FWWinIf * | CreateWin (const FWWinDesc &desc=FWWinDesc(), FWWinIf *parent=0) |
ウィンドウに対応するコンテキストを作る [詳細] | |
int | NWin () |
ウィンドウの数 | |
FWWinIf * | GetWinFromId (int wid) |
ウィンドウをIDから探す [詳細] | |
FWWinIf * | GetWin (int index) |
ウィンドウを取得する [詳細] | |
FWWinIf * | GetCurrentWin () |
現在のウィンドウを取得する | |
void | DestroyWin (FWWinIf *win) |
ウィンドウを削除する | |
void | SetCurrentWin (FWWinIf *win) |
現在のウィンドウを設定する | |
void | PostRedisplay () |
カレントウィンドウのノーマルプレーンを,再描画の必要に応じてマークする | |
int | GetModifier () |
Ctrl, Shift, Altの状態を返す 個々の派生クラスで実装される | |
void | SetGRHandler (int type) |
描画の設定 FWGraphicsHandlerを設定する.最初に必ず呼ぶ. | |
GRDeviceIf * | GRInit () |
FWGraphicsHandlerの初期化 FWGraphicsHandlerの初期化を行う.最初に必ず呼ぶ. | |
GRDeviceIf * | GRInit (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 () |
ユーザ関数 メインループ実行中にユーザが処理を加えたい場合,ここに記述する. 物理シミュレーションのステップの前に呼ばれる. | |
FWSdkIf * | GetSdk () |
SDKを取得する | |
void | CreateSdk () |
SDKを作成する | |
UTTimerIf * | CreateTimer (UTTimerIf::Mode mode=UTTimerIf::FRAMEWORK) |
タイマーを作成する [詳細] | |
UTTimerIf * | GetTimer (int i) |
タイマーを取得する [詳細] | |
int | NTimers () |
Public メソッド inherited from UTRefCount | |
UTRefCount (const UTRefCount &r) | |
UTRefCount & | operator= (const UTRefCount &r) |
int | AddRef () const |
int | DelRef () const |
int | RefCount () const |
Public 変数 | |
Menus | menus |
int | curMenu |
表示中の共有メニュー | |
stringstream | ss |
UTString | message |
一行メッセージ | |
FWEditorOverlay | editor |
内部情報の表示/編集機能 | |
UTRef< ObjectStatesIf > | states |
状態保存用 | |
UTTimerIf * | timer |
タイマ | |
CDBoxIf * | shapeFloor |
床用の形状 | |
CDBoxIf * | shapeWallX |
CDBoxIf * | shapeWallZ |
CDBoxIf * | shapeBox |
作りおき形状 | |
CDSphereIf * | shapeSphere |
CDEllipsoidIf * | shapeEllipsoid |
CDCapsuleIf * | shapeCapsule |
CDRoundConeIf * | shapeRoundCone |
CDConvexMeshIf * | shapeCoin |
bool | showHelp |
状態 [詳細] | |
int | curScene |
アクティブなシーンの番号 | |
Vec3d | tmpGravity |
重力無効化時の退避変数 | |
UTString | appName |
属性: 派生クラスがコンストラクタで設定する [詳細] | |
int | numScenes |
シーンの数 | |
float | ymargin |
ヘルプの描画属性 | |
float | xmargin |
float | yline |
float | xkeys |
float | xbrief |
GRShaderIf * | shaderBase |
シェーダ | |
GRShaderIf * | shaderShadowCreate |
GRShaderIf * | shaderShadowRender |
Additional Inherited Members | |
Static Public メソッド inherited from FWApp | |
static FWApp * | GetApp () |
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< FWSdkIf > | fwSdk |
Framework SDK. | |
Timers | timers |
Timers to call periodic processing. | |
Static Protected 変数 inherited from FWApp | |
static FWApp * | instance |
唯一のFWAppインスタンス | |
enum ActionAlways |
enum ActionConfig |
enum ActionDraw |
enum MenuID |
|
inline |
いつでも有効系
共有コマンドはシーンコマンドとの衝突回避のために大文字を割り当てる ステートの保存や復帰
シミュレーション設定
描画設定系
|
inlinevirtual |
シーン構築を行う.
FWOptimizerSample, MyApp, VTrajSampleApp, MyApp, IKSampleApp, MyApp, MyApp, MyApp, MyApp, MyApp, ShoulderJointLimitApp, VirtualHumanApp, IKSampleApp, MyApp, MyApp, と FWMyApptestで再定義されています。
|
inline |
|
inlinevirtual |
シェーダ
光源設定
床用の形状
シーンの作成
描画設定
< ソリッド描画,ワイヤフレーム描画
< 座標軸
< 座標軸のスタイル
< 力
< 接触断面
FWAppを再定義しています。
FWOptimizerSample, VTrajSampleApp, IKSampleApp, ShoulderJointLimitApp, VirtualHumanApp, MyApp, PythonSprApp, MyEPApp, と IKSampleAppで再定義されています。
参照先 GRLightDesc::ambient, GRLightDesc::diffuse, FWWinIf::GetTrackball(), FWWinBaseDesc::height, CDCapsuleDesc::length, CDRoundConeDesc::length, GRLightDesc::position, GRRenderBaseIf::PushLight(), Spr::Rad(), CDCapsuleDesc::radius, CDRoundConeDesc::radius, HITrackballIf::SetPosition(), HITrackballIf::SetTarget(), GRLightDesc::specular, FWWinBaseDesc::title, CDConvexMeshDesc::vertices, と FWWinBaseDesc::width.
|
inlinevirtual |
|
inlinevirtual |
いつでも有効アクション
IKSampleApp, VTrajSampleApp, FWOptimizerSample, MyApp, MyApp, MyApp, MyApp, MyApp, MyApp, MyApp, ShoulderJointLimitApp, MyApp, PythonSprApp, VirtualHumanApp, MyApp, MyApp, MyEPApp, と FWMyApptestで再定義されています。
参照先 PHTreeNodeIf::Enable(), SampleApp::Action::enabled, PHTreeNodeIf::GetRootNode(), Spr::max(), SampleApp::Action::message, と Spr::min().
参照元 FWMyApptest::OnAction(), MyEPApp::OnAction(), VirtualHumanApp::OnAction(), PythonSprApp::OnAction(), MyApp::OnAction(), ShoulderJointLimitApp::OnAction(), FWOptimizerSample::OnAction(), VTrajSampleApp::OnAction(), と IKSampleApp::OnAction().
|
inlinevirtual |
UTString appName |
サンプル名. 派生クラスがコンストラクタで設定する
bool showHelp |
ヘルプ表示