aboutsummaryrefslogtreecommitdiff
path: root/NvCloth/samples/SampleBase/scene/SceneController.cpp
diff options
context:
space:
mode:
authorMarijn Tamis <[email protected]>2018-05-03 18:22:48 +0200
committerMarijn Tamis <[email protected]>2018-05-03 18:22:48 +0200
commitca32c59a58d37c1822e185a2d5f3d0d3e8943593 (patch)
treeb06b9eec03f34344ef8fc31aa147b2714d3962ee /NvCloth/samples/SampleBase/scene/SceneController.cpp
parentForced rename of platform folders in cmake dir. Git didn't pick this up before. (diff)
downloadnvcloth-ca32c59a58d37c1822e185a2d5f3d0d3e8943593.tar.xz
nvcloth-ca32c59a58d37c1822e185a2d5f3d0d3e8943593.zip
NvCloth 1.1.4 Release. (24070740)
Diffstat (limited to 'NvCloth/samples/SampleBase/scene/SceneController.cpp')
-rw-r--r--NvCloth/samples/SampleBase/scene/SceneController.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/NvCloth/samples/SampleBase/scene/SceneController.cpp b/NvCloth/samples/SampleBase/scene/SceneController.cpp
index fa35d5d..2eedfe4 100644
--- a/NvCloth/samples/SampleBase/scene/SceneController.cpp
+++ b/NvCloth/samples/SampleBase/scene/SceneController.cpp
@@ -76,6 +76,8 @@ void SceneController::onSampleStart()
mPhysXPrimitiveRenderMaterial = new RenderMaterial(getRenderer().getResourceManager(), "physx_primitive", "");
mPhysXPlaneRenderMaterial = new RenderMaterial(getRenderer().getResourceManager(), "physx_primitive_plane", "");
+ mWeightedModelSkinRenderMaterial = new RenderMaterial(getRenderer().getResourceManager(), "weighted_model_skinned", "");
+
/*{
IRenderMesh* mesh = getRenderer().getPrimitiveRenderMesh(PrimitiveRenderMeshType::Plane);
@@ -184,13 +186,20 @@ void SceneController::changeScene(int index)
mActiveScene = Scene::CreateScene(0, this);
}
mActiveScene->onInitialize();
+ mDebugLineRenderBuffer->clear();
+ mActiveScene->drawDebugVisualization();
}
void SceneController::Animate(double dt)
{
if(mPaused && (mSingleStep <= 0))
{
- //Re render debug lines from last frame
+ if(mActiveScene->debugVisualizationUpdateRequested())
+ {
+ mDebugLineRenderBuffer->clear();
+ mActiveScene->drawDebugVisualization();
+ }
+ //else Re render debug lines from last frame
getRenderer().queueRenderBuffer(mDebugLineRenderBuffer);
return;
}
@@ -200,8 +209,6 @@ void SceneController::Animate(double dt)
dt = 1.0 / 60.0;
}
- mDebugLineRenderBuffer->clear();
-
mLeftOverTime += dt * mTimeScale;
double simulationStep = 0.0;
@@ -211,6 +218,8 @@ void SceneController::Animate(double dt)
simulationStep = 1.0 / 60.0;
mActiveScene->Animate(simulationStep);
+ mDebugLineRenderBuffer->clear();
+ mActiveScene->drawDebugVisualization();
getRenderer().queueRenderBuffer(mDebugLineRenderBuffer);
}
@@ -267,6 +276,10 @@ void SceneController::drawUI()
for(int i = 0; i < Scene::GetSceneCount(); i++)
{
pressed = pressed | ImGui::RadioButton(Scene::GetSceneName(i), &mActiveSceneIndex, i);
+ if(i == mActiveSceneIndex)
+ {
+ pressed = pressed | mActiveScene->drawSubScenes();
+ }
}
if(pressed)
changeScene(mActiveSceneIndex);