diff --git a/src/main.cpp b/src/main.cpp index ed0d420..fefe163 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -27,15 +27,8 @@ int main(int argc, char **argv) { ImGui::SFML::ProcessEvent(event); if(event.type == sf::Event::Closed) { window.close(); - } else if(event.type == sf::Event::KeyPressed) { - if(event.key.code == sf::Keyboard::H) { - state.flags.set(0); - } - } else if(event.type == sf::Event::KeyReleased) { - if(event.key.code == sf::Keyboard::H) { - state.flags.reset(0); - } } + state.handle_event(&event); // update ImGui::SFML::Update(window, state.dt); diff --git a/src/state.cpp b/src/state.cpp index 97cca0e..8825e33 100644 --- a/src/state.cpp +++ b/src/state.cpp @@ -5,10 +5,38 @@ Tri::State::State() : width(800), height(600), -dt(sf::microseconds(16666)) -{} +dt(sf::microseconds(16666)), +currentTri_state(CurrentState::NONE) +{ + currentTri.setPointCount(3); + currentTri.setFillColor(sf::Color::White); +} + +void Tri::State::handle_event(sf::Event *event) { + if(event->type == sf::Event::KeyPressed) { + if(event->key.code == sf::Keyboard::H) { + flags.set(0); + } + } else if(event->type == sf::Event::KeyReleased) { + if(event->key.code == sf::Keyboard::H) { + flags.reset(0); + } + } else if(event->type == sf::Event::MouseButtonPressed) { + switch(currentTri_state) { + case CurrentState::NONE: + break; + case CurrentState::FIRST: + break; + case CurrentState::SECOND: + break; + case CurrentState::THIRD: + break; + } + } +} void Tri::State::update() { + // Seems misleading, but imgui handles setting up the window during update Tri::draw_help(this); } diff --git a/src/state.hpp b/src/state.hpp index c76457f..f3707e1 100644 --- a/src/state.hpp +++ b/src/state.hpp @@ -2,8 +2,10 @@ #define TRIANGLES_STATE_HPP #include +#include #include +#include namespace Tri { struct State { @@ -16,6 +18,11 @@ namespace Tri { const unsigned int height; const sf::Time dt; + std::vector tris; + sf::ConvexShape currentTri; + enum CurrentState { NONE, FIRST, SECOND, THIRD } currentTri_state; + + void handle_event(sf::Event *event); void update(); void draw(); };