Zadanie 3 Add sphere scale

This commit is contained in:
Władysław Kuczerenko 2024-06-28 17:24:34 +02:00
parent ab3cfb1f31
commit acb612da42
4 changed files with 5 additions and 2 deletions

View File

@ -28,5 +28,5 @@ Size=256,127
[Window][Track Ball] [Window][Track Ball]
Pos=60,180 Pos=60,180
Size=247,125 Size=325,209

View File

@ -19,6 +19,7 @@ const int ballsAmount = 2;
const float initTimeStep = 0.001f; const float initTimeStep = 0.001f;
const float initCameraScale = 1.0f; const float initCameraScale = 1.0f;
const float initSphereScale = 0.05f;
bool shouldUpdate = true; bool shouldUpdate = true;
bool shouldAlwaysUpdate = true; bool shouldAlwaysUpdate = true;
@ -26,6 +27,7 @@ float t = 0.0f;
float timeStep = initTimeStep; float timeStep = initTimeStep;
float cameraScale = initCameraScale; float cameraScale = initCameraScale;
float sphereScale = initSphereScale;
int currentTrackedBall = -1; int currentTrackedBall = -1;
struct Ball { struct Ball {
@ -51,6 +53,7 @@ void imGuiTrackBallFrame(){
ImGui::Begin("Track Ball"); ImGui::Begin("Track Ball");
ImGui::SliderFloat("Camera scale", &cameraScale, 0.1f, 2.0f, "%.3f", 1.0f); ImGui::SliderFloat("Camera scale", &cameraScale, 0.1f, 2.0f, "%.3f", 1.0f);
ImGui::SliderFloat("Sphere scale", &sphereScale, 0.01f, 0.1f, "%.3f", 1.0f);
if(ImGui::Button("Track red ball")){ if(ImGui::Button("Track red ball")){
@ -261,7 +264,7 @@ void display() {
// Rysowanie kul // Rysowanie kul
for (const auto &ball : balls) { for (const auto &ball : balls) {
glm::mat4 model = glm::translate(glm::mat4(1.0f), glm::vec3(ball.position.x, ball.position.y, 0.0f)); glm::mat4 model = glm::translate(glm::mat4(1.0f), glm::vec3(ball.position.x, ball.position.y, 0.0f));
model = glm::scale(model, glm::vec3(0.05f, 0.05f, 1.0f)); // Skala dla małych kul model = glm::scale(model, glm::vec3(sphereScale, sphereScale, 1.0f)); // Skala dla małych kul
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model)); glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model));
glUniform3f(colorLoc, ball.color.r, ball.color.g, ball.color.b); glUniform3f(colorLoc, ball.color.r, ball.color.g, ball.color.b);
drawSmallCircle(); // Rysujemy małe koło reprezentujące kulę drawSmallCircle(); // Rysujemy małe koło reprezentujące kulę

Binary file not shown.