本文整理汇总了C++中CModelViewerCamera::Reset方法的典型用法代码示例。如果您正苦于以下问题:C++ CModelViewerCamera::Reset方法的具体用法?C++ CModelViewerCamera::Reset怎么用?C++ CModelViewerCamera::Reset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CModelViewerCamera
的用法示例。
在下文中一共展示了CModelViewerCamera::Reset方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetViewForGroup
//--------------------------------------------------------------------------------------
// Sets the camera to view a particular group of objects
//--------------------------------------------------------------------------------------
void SetViewForGroup( int group )
{
assert( group < GROUP_COUNT );
g_Camera.Reset();
static const XMVECTORF32 s_Offset0 = { 0.f, 20.f, 20.f, 0.f };
static const XMVECTORF32 s_Offset = { 0.f, 20.f, -20.f, 0.f };
XMVECTOR vecEye = g_CameraOrigins[group] + ( ( group == 0 ) ? s_Offset0 : s_Offset );
g_Camera.SetViewParams( vecEye, g_CameraOrigins[group] );
XMFLOAT3 vecAt;
XMStoreFloat3( &vecAt, g_CameraOrigins[group] );
g_Camera.SetModelCenter( vecAt );
}
示例2: InitTweakBar
//--------------------------------------------------------------------------------------
// Create TweakBar and add required buttons and variables
//--------------------------------------------------------------------------------------
void InitTweakBar(ID3D11Device* pd3dDevice)
{
g_pTweakBar = TwNewBar("TweakBar");
TwDefine(" TweakBar color='0 128 128' alpha=128 ");
#ifdef TEMPLATE_DEMO
TwType TW_TYPE_TESTCASE = TwDefineEnumFromString("Test Scene", "BasicTest,Scene1,Scene2,Scene3");
#endif
#ifdef RIGIDBODYCOLLISIONS
TwEnumVal sceneIdentifiers[SceneManager::scenes_count] = { {0, SceneManager::scene_names[0]},
{ 1, SceneManager::scene_names[1] }, { 2, SceneManager::scene_names[2] } };
TwType TW_TYPE_TESTCASE = TwDefineEnum("Demo Scene", sceneIdentifiers, SceneManager::scenes_count);
#endif
TwAddVarRW(g_pTweakBar, "Demo Scene", TW_TYPE_TESTCASE, &g_iTestCase, "");
// HINT: For buttons you can directly pass the callback function as a lambda expression.
#if (defined RIGIDBODYCOLLISIONS)
TwAddButton(g_pTweakBar, "Reset Objects in Scene", resetObjectsInScene, nullptr, "");
TwAddButton(g_pTweakBar, "Reset Objects + Settings", resetScene, nullptr, "");
TwAddButton(g_pTweakBar, "Reset Camera", [](void *){g_camera.Reset(); }, nullptr, "");
TwAddVarRW(g_pTweakBar, "Scale", TW_TYPE_FLOAT, &SCM.sceneScale, "min=0.05 step=0.05");
TwAddVarRW(g_pTweakBar, "Timestep", TW_TYPE_FLOAT, &SCM.sceneTimeStep, "min=0 step=0.0005");
TwAddButton(g_pTweakBar, (SCM.simulateByStep ? "Run Step: [(space)]" : "Run Step: [continuous]"), rebuildTwBar, &SCM.simulateByStep, "");
#else
TwAddButton(g_pTweakBar, "Reset Scene", resetScene, nullptr, "");
TwAddButton(g_pTweakBar, "Reset Camera", [](void *){g_camera.Reset(); }, nullptr, "");
// Run mode, step by step, control by space key
TwAddVarRW(g_pTweakBar, "RunStep(space)", TW_TYPE_BOOLCPP, &g_bSimulateByStep, "");
#endif
#if (defined RIGIDBODYCOLLISIONS)
TwAddButton(g_pTweakBar, (SCM.enableInteraction ? "Interactions [enabled]" : "Interactions [disabled]"), rebuildTwBar, &SCM.enableInteraction, "");
if (SCM.enableInteraction)
{
TwAddVarRW(g_pTweakBar, " | select Box", TW_TYPE_INT32, &SCM.selectedBoxIndex, "min=-1");
TwAddVarRW(g_pTweakBar, " | select Corner", TW_TYPE_INT32, &SCM.selectedPointIndex, "min=-1 max=7");
TwAddButton(g_pTweakBar, " | apply force", applyForce, nullptr, "");
TwAddVarRW(g_pTweakBar, " | force x", TW_TYPE_FLOAT, &SCM.forceToApply.x, "");
TwAddVarRW(g_pTweakBar, " | force y", TW_TYPE_FLOAT, &SCM.forceToApply.y, "");
TwAddVarRW(g_pTweakBar, " | force z", TW_TYPE_FLOAT, &SCM.forceToApply.z, "");
}
TwAddButton(g_pTweakBar, (SCM.showAdditionalProperties ? "Properties [visible]" : "Properties [hidden]"), rebuildTwBar, &SCM.showAdditionalProperties, "");
if (SCM.showAdditionalProperties)
{
TwAddVarRW(g_pTweakBar, " | Normals", TW_TYPE_BOOLCPP, &SCM.showNormals, "");
//TwAddVarRW(g_pTweakBar, " | Mass Indicators", TW_TYPE_BOOLCPP, &SCM.showMasses, "");
TwAddVarRW(g_pTweakBar, " | Unit Cube", TW_TYPE_BOOLCPP, &SCM.showUnitBox, "");
}
TwAddButton(g_pTweakBar, (SCM.gravityEnabled ? "Gravity [enabled]" : "Gravity [disabled]"), rebuildTwBar, &SCM.gravityEnabled, "");
if (SCM.gravityEnabled)
{
TwAddVarRW(g_pTweakBar, " | gravity x", TW_TYPE_FLOAT, &SCM.gravityForce.x, "");
TwAddVarRW(g_pTweakBar, " | gravity y", TW_TYPE_FLOAT, &SCM.gravityForce.y, "");
TwAddVarRW(g_pTweakBar, " | gravity z", TW_TYPE_FLOAT, &SCM.gravityForce.z, "");
}
TwAddButton(g_pTweakBar, (SCM.floorEnabled ? "Floor [visible]" : "Floor [hidden]"), rebuildTwBar, &SCM.floorEnabled, "");
if (SCM.floorEnabled)
{
TwAddVarRW(g_pTweakBar, " | Floor Height", TW_TYPE_FLOAT, &SCM.floorPosition.y, "");
}
#endif
#ifdef TEMPLATE_DEMO
switch (g_iTestCase)
{
case 0:
TwAddVarRW(g_pTweakBar, "Draw Spheres", TW_TYPE_BOOLCPP, &g_bDrawSpheres, "");
TwAddVarRW(g_pTweakBar, "Num Spheres", TW_TYPE_INT32, &g_iNumSpheres, "min=1");
TwAddVarRW(g_pTweakBar, "Sphere Size", TW_TYPE_FLOAT, &g_fSphereSize, "min=0.01 step=0.01");
break;
case 1:
TwAddVarRW(g_pTweakBar, "Draw Teapot", TW_TYPE_BOOLCPP, &g_bDrawTeapot, "");
break;
case 2:
TwAddVarRW(g_pTweakBar, "Draw Triangle", TW_TYPE_BOOLCPP, &g_bDrawTriangle, "");
break;
default:
break;
}
#endif
}