diff --git a/src/simulator.cc b/src/simulator.cc index 5440d51..a9a30e4 100644 --- a/src/simulator.cc +++ b/src/simulator.cc @@ -43,31 +43,17 @@ void simulator_init() { sWorld.mStaticShapes.push_back(sGroundShape); - double restitution = 0.3; + double restitution = 0.8; - int num_bodies = 10; - for (int i = 0; i < num_bodies; i++) { - SimBody body; - - bool create_sphere = i %2; - - if (!create_sphere) { - body = CreateBoxBody( - 1., - Vector3d(2., 1., 1.), - restitution, - Vector3d::Random() * 5., - Vector3d::Zero()); - } else { - body = CreateSphereBody( - 1., - 1., - restitution, - Vector3d::Random() * 5., - Vector3d::Zero()); - } - - sWorld.mBodies.push_back(body); + int num_spheres = 7; + for (int i = 0; i < num_spheres; i++) { + SimBody sphere_body = CreateSphereBody( + 1., + 1., + restitution, + Vector3d::Random() * 5., + Vector3d::Zero()); + sWorld.mBodies.push_back(sphere_body); } for (int i = 0; i < sWorld.mBodies.size(); i++) { @@ -164,6 +150,7 @@ void simulator_update(double dt) { ImGui::Text("Bodies"); for (int i = 0; i < sWorld.mBodies.size(); i++) { + ImGui::PushID(i); SimBody& body = sWorld.mBodies[i]; Vector3f body_pos = body.q.block(0, 0, 3, 1); ImGui::DragFloat3("Pos", body_pos.data(), 0.01f, -5.0f, 5.0f); @@ -176,6 +163,7 @@ void simulator_update(double dt) { Vector4f body_rot = body.mModel.GetQuaternion(2, body.q); ImGui::DragFloat4("Rot", body_rot.data(), 0.01f, -20.0f, 20.0f); + ImGui::PopID(); body.updateCollisionShapes(); } @@ -272,4 +260,4 @@ void simulator_draw(srcmdbuf* cmdbuf) { srcmdbuf_add(cmdbuf, &rcmd); } } -} \ No newline at end of file +}