Files
IQ.Pilot/iqpilot/tools/cabana/ui/chart/sparkline.h
2026-09-02 16:46:45 -05:00

35 lines
840 B
C++

#pragma once
#include <vector>
#include "imgui.h"
#include "tools/cabana/dbc/dbc.h"
#include "tools/cabana/streams/abstractstream.h"
class Sparkline {
public:
void update(const cabana::Signal *sig, CanEventIter first, CanEventIter last, int range, ImVec2 sz, double window_end);
inline double freq() const { return freq_; }
bool isEmpty() const { return render_points_.empty(); }
void draw(ImDrawList *draw_list, ImVec2 pos) const;
ImVec2 size = {};
double min_val = 0;
double max_val = 0;
private:
struct Point {
double x, y;
};
void render(const CabanaColor &color, int range, ImVec2 sz, double window_end);
std::vector<Point> points_;
std::vector<ImVec2> render_points_;
ImU32 color_ = 0;
double window_end_ = 0;
double xscale_ = 0;
bool draw_individual_points_ = false;
double freq_ = 0;
};