This repository has been archived on 2024-01-28. You can view files and clone it, but cannot push or open issues/pull-requests.
ecg-prog-filtered/u02/include/sweep_line_tool.h

25 lines
709 B
C++

// SPDX-License-Identifier: LGPL-3.0-or-later
#pragma once
#include "tool_base.h"
class sweep_line_tool : public tool_base {
public:
sweep_line_tool(canvas_buffer &canvas);
// Draw example triangle
void draw();
// Compatibility for main application (only handles draw methods with one or two points)
void draw(int _x, int _y);
// Draw triangle provided by three given points
void draw(int x0, int y0, int x1, int y1, int x2, int y2);
void set_text(std::stringstream &stream);
private:
// Draw every pixel on the specified y coordinate,
// in the interval given by the boundaries b1 and b2.
// The boundaries do not need to be sorted.
void draw_interval(int b1, int b2, int y);
};