![]() |
Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|

Public 型 | |
| enum | { MENU_MAIN = MENU_SCENE } |
| ページID | |
| enum | { ID_RESET, ID_UP, ID_DOWN, ID_LEFT, ID_RIGHT } |
| アクションID | |
Public 型 inherited from SampleApp | |
| 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 メソッド | |
| virtual void | Init (int argc, char *argv[]) |
| FWAppの実装 [詳細] | |
| virtual void | BuildScene () |
| 派生クラスが実装する関数 [詳細] | |
| virtual void | OnAction (int menu, int id) |
| アクション処理 [詳細] | |
Public メソッド inherited from SampleApp | |
| 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 | OnStep () |
| 1ステップのシミュレーション | |
| virtual void | OnDraw (GRRenderIf *render) |
| 描画 | |
| 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 変数 | |
| int | argc |
| char ** | argv |
| PHSolidIf * | soTarget |
Public 変数 inherited from SampleApp | |
| 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インスタンス | |
|
inlinevirtual |
シーン構築を行う.
SampleAppを再定義しています。
参照先 ObjectIf::AddChildObject(), PHBallJointSplineLimitIf::AddNode(), PHBodyIf::AddShape(), CRSdkIf::CreateCreature(), PHBallJointIf::CreateLimit(), CRSdkIf::CreateSdk(), PHSdkIf::CreateShape(), PHBallJointLimitDesc::damper, CRBodyIf::FindByLabel(), CRBoneIf::GetPHJoint(), CRBoneIf::GetPHSolid(), PHBallJointLimitDesc::limitDir, Spr::Rad(), PHBallJointIf::SetDamper(), PHSolidIf::SetDynamical(), PHSolidIf::SetFramePosition(), PHBallJointIf::SetSpring(), と PHBallJointLimitDesc::spring.
|
inlinevirtual |
シェーダ
光源設定
床用の形状
シーンの作成
描画設定
< ソリッド描画,ワイヤフレーム描画
< 座標軸
< 座標軸のスタイル
< 力
< 接触断面
SampleAppを再定義しています。
参照先 FWApp::Init().
|
inlinevirtual |