Files
Renderive/Qt/plot/Plot.h
T
2026-08-10 19:55:29 +08:00

44 lines
1.1 KiB
C++

#pragma once
#include "Core2/export.h"
#include <QColor>
#include <QEvent>
#include <QPaintEvent>
#include <QString>
#include <QWidget>
#include <memory>
namespace renderive {
struct Abs_Plot_Private;
class Latency_Eager_Plot;
class Explicit_Plot;
class LIB_DECL Abs_Plot : public QWidget {
Q_OBJECT
public:
virtual void init();
[[nodiscard]] QColor background_color() const;
[[nodiscard]] Plot_Core* core() const;
[[nodiscard]] std::shared_ptr<Renderable> root_renderable() const;
[[nodiscard]] std::shared_ptr<Renderable> create_renderable_node(
const std::shared_ptr<Renderable>& parent, const QString& object_name = {}) const;
void set_background_color(const QColor& color);
void remove_renderable(const std::shared_ptr<Renderable>& renderable);
~Abs_Plot() override;
protected:
explicit Abs_Plot(Abs_Plot_Private* private_data);
void start_render_timer();
void stop_render_timer();
void update_render_interval();
bool event(QEvent* event) final;
void paintEvent(QPaintEvent* event) final;
Abs_Plot_Private* d{};
};
} // namespace renderive