78 lines
3.4 KiB
C++
78 lines
3.4 KiB
C++
/*
|
|
* 说明: 图像轨迹对象(画图)
|
|
*
|
|
* 作者: 杨海洋
|
|
* 日期: 2023-03-06
|
|
*/
|
|
|
|
#ifndef GRAPHICIMAGE_H
|
|
#define GRAPHICIMAGE_H
|
|
|
|
#include "IGraphicAbstract.h"
|
|
|
|
class GraphicImage : public IGraphicAbstract
|
|
{
|
|
public:
|
|
GraphicImage(int width = IMG_SIZE_WIDTH, int height = IMG_SIZE_HEIGHT);
|
|
virtual ~GraphicImage();
|
|
|
|
virtual void recreating() override;
|
|
virtual void resize(int w, int h) override;
|
|
virtual void setScaling(int s) override;
|
|
virtual int scale() override;
|
|
virtual double scaling() override;
|
|
virtual int width() override;
|
|
virtual int height() override;
|
|
virtual int depth() override;
|
|
virtual int channel() override;
|
|
virtual const TMapping& mapping() override;
|
|
virtual int size() override;
|
|
virtual void clean() override;
|
|
virtual const char* data() override;
|
|
virtual const char* image() override;
|
|
virtual void display() override;
|
|
|
|
virtual void drawLine (const Pointi& p1, const Pointi& p2,
|
|
const RgbColor& color = RGB_BLUE, int thickness = IMG_THICKNESS) override;
|
|
|
|
virtual void drawLine (const Linei& line,
|
|
const RgbColor& color = RGB_BLUE, int thickness = IMG_THICKNESS) override;
|
|
|
|
virtual void drawDashedLine (const Pointi& p1, const Pointi& p2, int divide = IMG_DIVIDE,
|
|
const RgbColor& color = RGB_BLUE, int thickness = IMG_THICKNESS) override;
|
|
|
|
virtual void drawDashedLine (const Linei& line, int divide = IMG_DIVIDE,
|
|
const RgbColor& color = RGB_BLUE, int thickness = IMG_THICKNESS) override;
|
|
|
|
virtual void drawDottedLine (const Pointi& p1, const Pointi& p2, int divide = IMG_DIVIDE,
|
|
const RgbColor& color = RGB_BLUE, int radius = IMG_RADIUS) override;
|
|
|
|
virtual void drawDottedLine (const Linei& line, int divide = IMG_DIVIDE,
|
|
const RgbColor& color = RGB_BLUE, int radius = IMG_RADIUS) override;
|
|
|
|
virtual void drawText (const Pointi& p, const std::string& text,
|
|
const RgbColor& color = RGB_BLACK, int size = IMG_FONT_SIZE) override;
|
|
virtual void drawText2 (const Pointi& p, const std::string& text,
|
|
const RgbColor& color = RGB_BLACK, const RgbColor& bg = RGB_RED,
|
|
int size = IMG_FONT_SIZE) override;
|
|
|
|
virtual void drawPoint (const Pointi& p,
|
|
const RgbColor& color = RGB_RED, int radius = IMG_RADIUS) override;
|
|
|
|
private:
|
|
void toRgb();
|
|
private:
|
|
unsigned char* m_rgb = nullptr;
|
|
CxxImage* m_img = nullptr;
|
|
TMapping m_mapping;
|
|
int m_scale = MAP_OPER_SCALE;
|
|
const int m_depth = 1;
|
|
const int m_channel = 4;
|
|
const unsigned char m_default = 255; //默认底色 白色
|
|
bool m_showVersion = true;
|
|
bool m_showTime = true;
|
|
};
|
|
|
|
|
|
#endif // GRAPHICIMAGE_H
|