diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..fe47a05 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,30 @@ +Checks: > + clang-analyzer-*, + bugprone-*, + performance-*, + readability-*, + modernize-*, + portability-*, + misc-unused-parameters, + misc-unused-alias-decls, + misc-unused-using-decls, + -readability-magic-numbers, + -readability-identifier-naming, + -modernize-use-trailing-return-type + +WarningsAsErrors: '' + +HeaderFilterRegex: '.*' + +AnalyzeTemporaryDtors: true +FormatStyle: file + +CheckOptions: + - key: modernize-use-nullptr.NullMacros + value: 'NULL' + - key: readability-braces-around-statements.ShortStatementLines + value: '1' + - key: modernize-loop-convert.MinConfidence + value: reasonable + - key: readability-function-cognitive-complexity.Threshold + value: '25' diff --git a/input_file.cpp b/input_file.cpp index 22c0f6d..8ccfcd8 100644 --- a/input_file.cpp +++ b/input_file.cpp @@ -31,22 +31,22 @@ template static const char* GetTypeName() return typeid(T).name(); } -template <> static const char* GetTypeName() +template <> const char* GetTypeName() { return "integer"; } -template <> static const char* GetTypeName() +template <> const char* GetTypeName() { return "float"; } -template <> static const char* GetTypeName() +template <> const char* GetTypeName() { return "vector"; } -template <> static const char* GetTypeName() +template <> const char* GetTypeName() { return "string"; } diff --git a/input_file.hpp b/input_file.hpp index 456911f..56b2362 100644 --- a/input_file.hpp +++ b/input_file.hpp @@ -2,8 +2,6 @@ #include #include -#include -#include #include "shapes/group.hpp" diff --git a/main.cpp b/main.cpp index 6dc0f42..ec9cf36 100644 --- a/main.cpp +++ b/main.cpp @@ -6,6 +6,7 @@ #include "input_file.hpp" #include "renderers/pgm_renderer.hpp" #include "renderers/svg_renderer.hpp" +#include template void Render(const shapes::Group& shapes, const std::filesystem::path& path, size_t width, size_t height) diff --git a/renderers/bitmap.hpp b/renderers/bitmap.hpp index c6e155a..b1f83b0 100644 --- a/renderers/bitmap.hpp +++ b/renderers/bitmap.hpp @@ -2,8 +2,6 @@ #include #include -#include -#include #include class Color diff --git a/renderers/pgm_renderer.cpp b/renderers/pgm_renderer.cpp index b55b283..ed91c6a 100644 --- a/renderers/pgm_renderer.cpp +++ b/renderers/pgm_renderer.cpp @@ -78,24 +78,39 @@ void PgmRenderer::RasterizeLine(int x0, int y0, int x1, int y1) // perpendicular offsets for thickness int ox = 0, oy = 0; - if (dx > dy) { + if (dx > dy) + { oy = 1; - } else { + } + else + { ox = 1; } - while (1) { + while (1) + { // draw a square of pixels for thickness - for (int i = -w/2; i <= w/2; i++) { - for (int j = -w/2; j <= w/2; j++) { - m_bitmap.Put(x0 + i*ox, y0 + j*oy, lineColor, 0xFF); + for (int i = -w / 2; i <= w / 2; i++) + { + for (int j = -w / 2; j <= w / 2; j++) + { + m_bitmap.Put(x0 + i * ox, y0 + j * oy, lineColor, 0xFF); } } - if (x0 == x1 && y0 == y1) break; + if (x0 == x1 && y0 == y1) + break; int e2 = 2 * err; - if (e2 > -dy) { err -= dy; x0 += sx; } - if (e2 < dx) { err += dx; y0 += sy; } + if (e2 > -dy) + { + err -= dy; + x0 += sx; + } + if (e2 < dx) + { + err += dx; + y0 += sy; + } } } @@ -106,15 +121,18 @@ void PgmRenderer::RasterizeCircle(int cx, int cy, int r) const Color circleColor{0x00}; float w = 2.0f; - int r_outer = r + w / 2; int r_inner = r - w / 2; - if (r_inner < 0) r_inner = 0; + if (r_inner < 0) + r_inner = 0; - for (int y = -r_outer; y <= r_outer; y++) { - for (int x = -r_outer; x <= r_outer; x++) { - int dist2 = x*x + y*y; - if (dist2 <= r_outer*r_outer && dist2 >= r_inner*r_inner) { + for (int y = -r_outer; y <= r_outer; y++) + { + for (int x = -r_outer; x <= r_outer; x++) + { + int dist2 = x * x + y * y; + if (dist2 <= r_outer * r_outer && dist2 >= r_inner * r_inner) + { m_bitmap.Put(cx + x, cy + y, circleColor, 0xFF); } } diff --git a/renderers/pgm_renderer.hpp b/renderers/pgm_renderer.hpp index 785e646..9b80188 100644 --- a/renderers/pgm_renderer.hpp +++ b/renderers/pgm_renderer.hpp @@ -26,4 +26,4 @@ class PgmRenderer : public Renderer void RasterizeCircle(int xm, int ym, int r); void Flush(); -}; \ No newline at end of file +}; diff --git a/renderers/renderer.hpp b/renderers/renderer.hpp index e0706f5..12f3ed4 100644 --- a/renderers/renderer.hpp +++ b/renderers/renderer.hpp @@ -8,9 +8,5 @@ class Renderer virtual void DrawRectangle(const math::Vector& pos, const math::Vector& size, float angle) = 0; virtual void DrawCircle(const math::Vector& center, float radius) = 0; - virtual void Flush() - { - } - virtual ~Renderer() = default; };