#pragma once #ifndef DISPLAY_H // make sure sfml is installed: // linux - sudo apt-get install libsfml-dev // windows - manual dl from https://www.sfml-dev.org/download.php #include //#include #include "Line.h" //class Point; //class Line; #define OFFSET 10.f #define WIDTH 800 #define HEIGHT 600 class Display { private: int m_stepSize; bool m_useAkl; sf::Font m_font; sf::Text m_textStatus; //std::vector m_points; std::vector m_points; std::vector m_labels; //sf::VertexArray m_points; //sf::VertexArray m_labels; //std::vector m_hull; std::vector m_hullPoints; //sf::VertexArray m_hull; //sf::ConvexShape m_convex; // shape for convex hull -> does not fit because points have to be aligned already //std::map > m_pointsForLine; std::vector m_lines; //std::list m_lines; //Line *m_curLine = nullptr; // get any value if the underlying vector gets resized and moved in memory Line m_curLine; // -> either make a copy int m_curLineIdx = -1; // or just use index unsigned int m_step = 0; void setCurrentLine(); void update(); void render(sf::RenderWindow &); public: Display(const std::vector &, int stepSize = 0, bool akl = false); void show(); }; #endif // DISPLAY_H