chore: clang-format-ted codebase

This commit is contained in:
Sara Gerretsen 2025-10-14 15:05:54 +02:00
parent 697ba9f2f8
commit fc74361bb3
4 changed files with 194 additions and 189 deletions

View file

@ -1,11 +1,12 @@
#pragma once #pragma once
#include <vector>
#include <random>
#include <cmath>
#include <SFML/Graphics.hpp> #include <SFML/Graphics.hpp>
#include <cmath>
#include <cstdlib>
#include <random>
#include <vector>
namespace v1 {
struct Ball { struct Ball {
sf::CircleShape shape; sf::CircleShape shape;
sf::Vector2f velocity; sf::Vector2f velocity;
@ -31,7 +32,7 @@ private:
std::uniform_real_distribution<float> radiusDist; std::uniform_real_distribution<float> radiusDist;
public: public:
BallGame::BallGame() { BallGame() {
gen = std::mt19937(rd()); gen = std::mt19937(rd());
posDist = std::uniform_real_distribution<float>(5.0f, 795.0f); posDist = std::uniform_real_distribution<float>(5.0f, 795.0f);
velDist = std::uniform_real_distribution<float>(-200.0f, 200.0f); velDist = std::uniform_real_distribution<float>(-200.0f, 200.0f);
@ -87,7 +88,8 @@ public:
float velAlongNormal = relativeVel.x * normal.x + relativeVel.y * normal.y; float velAlongNormal = relativeVel.x * normal.x + relativeVel.y * normal.y;
// Don't resolve if velocities are separating // Don't resolve if velocities are separating
if (velAlongNormal > 0) continue; if (velAlongNormal > 0)
continue;
// Apply collision response (elastic collision) // Apply collision response (elastic collision)
float restitution = 0.0f; // Bounce factor (0 = no bounce, 1 = perfect bounce) float restitution = 0.0f; // Bounce factor (0 = no bounce, 1 = perfect bounce)
@ -112,8 +114,7 @@ public:
// Clamp position to prevent sticking // Clamp position to prevent sticking
if (pos.x - radius <= 0) { if (pos.x - radius <= 0) {
ball.shape.setPosition(sf::Vector2f(radius, pos.y)); ball.shape.setPosition(sf::Vector2f(radius, pos.y));
} } else {
else {
ball.shape.setPosition(sf::Vector2f(windowSize.x - radius, pos.y)); ball.shape.setPosition(sf::Vector2f(windowSize.x - radius, pos.y));
} }
} }
@ -123,18 +124,17 @@ public:
// Clamp position to prevent sticking // Clamp position to prevent sticking
if (pos.y - radius <= 0) { if (pos.y - radius <= 0) {
ball.shape.setPosition(sf::Vector2f(pos.x, radius)); ball.shape.setPosition(sf::Vector2f(pos.x, radius));
} } else {
else {
ball.shape.setPosition(sf::Vector2f(pos.x, windowSize.y - radius)); ball.shape.setPosition(sf::Vector2f(pos.x, windowSize.y - radius));
} }
} }
} }
} }
void drawBalls( sf::RenderWindow& window ) const void drawBalls(sf::RenderWindow &window) const {
{
for (const auto &ball : balls) { for (const auto &ball : balls) {
window.draw(ball.shape); window.draw(ball.shape);
} }
} }
}; };
} // namespace v1

View file

@ -9,6 +9,13 @@
#include <imgui.h> #include <imgui.h>
#include <print> #include <print>
#include "Balls.hpp"
namespace v1 {
static BallGame sim;
}
namespace v2 {
}
void configure(AppConfig &config) { void configure(AppConfig &config) {
config.window_title = "CHANGEME"; config.window_title = "CHANGEME";
config.frame_rate_limit = std::nullopt; config.frame_rate_limit = std::nullopt;
@ -18,7 +25,6 @@ void configure(AppConfig &config) {
void setup() { void setup() {
ImGui::GetIO().ConfigFlags |= (ImGuiConfigFlags_NavEnableKeyboard | ImGuiConfigFlags_NavEnableGamepad | ImGuiConfigFlags_DockingEnable); ImGui::GetIO().ConfigFlags |= (ImGuiConfigFlags_NavEnableKeyboard | ImGuiConfigFlags_NavEnableGamepad | ImGuiConfigFlags_DockingEnable);
sf::View view{get_window().getView()}; sf::View view{get_window().getView()};
view.setCenter({0.f, 0.f});
set_render_view(view); set_render_view(view);
} }
@ -29,18 +35,17 @@ void handle_window_event(sf::Event const &event) {
if (sf::Event::Resized const *resized{event.getIf<sf::Event::Resized>()}) { if (sf::Event::Resized const *resized{event.getIf<sf::Event::Resized>()}) {
sf::View view{get_window().getView()}; sf::View view{get_window().getView()};
view.setSize({static_cast<float>(resized->size.x), static_cast<float>(resized->size.y)}); view.setSize({static_cast<float>(resized->size.x), static_cast<float>(resized->size.y)});
view.setCenter({view.getSize().x / 2.f, view.getSize().y / 2.f});
set_render_view(view); set_render_view(view);
} }
} }
void loop(double delta) { void loop(double delta) {
v1::sim.updateBalls(get_window().getSize(), delta);
} }
void draw_scene(sf::RenderTarget &target, sf::RenderStates const &states) { void draw_scene(sf::RenderTarget &target, sf::RenderStates const &states) {
static sf::RectangleShape rect{{300, 300}}; v1::sim.drawBalls(get_window());
sf::RenderStates n_states{states};
n_states.transform.translate({-150, -150});
target.draw(rect, n_states);
} }
void draw_main_menu_bar() { void draw_main_menu_bar() {

View file

@ -19,7 +19,7 @@ struct AppConfig {
extern AppConfig const &get_application_configuration(); extern AppConfig const &get_application_configuration();
extern sf::Time const &get_delta_time(); extern sf::Time const &get_delta_time();
extern sf::RenderWindow const &get_window(); extern sf::RenderWindow &get_window();
extern void set_render_view(sf::View const &view); extern void set_render_view(sf::View const &view);
#endif // !LLCS_DEFS_H #endif // !LLCS_DEFS_H

View file

@ -16,8 +16,9 @@ void initialize_window() {
cfg = AppConfig(); cfg = AppConfig();
configure(cfg); configure(cfg);
window.create(cfg.mode, cfg.window_title); window.create(cfg.mode, cfg.window_title);
if (cfg.frame_rate_limit) if (cfg.frame_rate_limit) {
window.setFramerateLimit(cfg.frame_rate_limit.value_or(0)); window.setFramerateLimit(cfg.frame_rate_limit.value_or(0));
}
window.setVerticalSyncEnabled(cfg.vsync); window.setVerticalSyncEnabled(cfg.vsync);
view = window.getDefaultView(); view = window.getDefaultView();
} }
@ -39,8 +40,7 @@ void try_handle_input_event(sf::Event const &event) {
event.is<sf::Event::TouchBegan>() || event.is<sf::Event::TouchEnded>() || event.is<sf::Event::TouchBegan>() || event.is<sf::Event::TouchEnded>() ||
event.is<sf::Event::TouchMoved>() || event.is<sf::Event::TouchMoved>() ||
event.is<sf::Event::MouseButtonPressed>() || event.is<sf::Event::MouseButtonReleased>() || event.is<sf::Event::MouseButtonPressed>() || event.is<sf::Event::MouseButtonReleased>() ||
event.is<sf::Event::MouseMoved>() || event.is<sf::Event::MouseMovedRaw>() event.is<sf::Event::MouseMoved>() || event.is<sf::Event::MouseMovedRaw>()};
};
if (is_input_event) { if (is_input_event) {
handle_input_event(event); handle_input_event(event);
} }
@ -50,21 +50,21 @@ void try_handle_window_event(sf::Event const &event) {
bool const is_window_event{ bool const is_window_event{
event.is<sf::Event::FocusGained>() || event.is<sf::Event::FocusGained>() ||
event.is<sf::Event::FocusLost>() || event.is<sf::Event::FocusLost>() ||
event.is<sf::Event::Resized>() event.is<sf::Event::Resized>()};
};
if (is_window_event) { if (is_window_event) {
handle_window_event(event); handle_window_event(event);
} }
} }
void poll_events() { void poll_events() {
while (std::optional const event{ window.pollEvent() }) while (std::optional const event{window.pollEvent()}) {
{
ImGui::SFML::ProcessEvent(window, *event); ImGui::SFML::ProcessEvent(window, *event);
try_handle_input_event(*event); try_handle_input_event(*event);
try_handle_window_event(*event); try_handle_window_event(*event);
if (event->is<sf::Event::Closed>()) { window.close(); } if (event->is<sf::Event::Closed>()) {
window.close();
}
} }
} }
@ -110,7 +110,7 @@ sf::Time const &get_delta_time() {
return delta_time; return delta_time;
} }
sf::RenderWindow const &get_window() { sf::RenderWindow &get_window() {
return window; return window;
} }