--- /dev/null
+#ifndef __PAINTER_H__
+#define __PAINTER_H__
+
+#include <stdint.h>
+#include <QtWidgets>
+#include "vector.h"
+#include "glyphpoints.h"
+
+//#define SCREEN_ZOOM (1.0 / 4.0)
+
+// Forward declarations
+
+class Painter
+{
+ public:
+ Painter(QPainter * p = 0);
+ ~Painter();
+
+ void SetRenderHint(int);
+ void SetPen(QPen);
+ void SetPen(uint32_t, float size = 0, int style = 0);
+ void SetBrush(QBrush);
+ void SetBrush(uint32_t);
+ void SetFont(QFont);
+ void DrawAngledText(Vector, double, QString, double);
+ void DrawTextObject(Vector, QString, double, double angle = 0);
+ void DrawArc(Vector, double, double, double);
+ void DrawEllipse(Vector, double, double);
+ void DrawHandle(Vector);
+ void DrawArrowHandle(Vector, double);
+ void DrawArrowToLineHandle(Vector, double);
+ void DrawLine(int, int, int, int);
+ void DrawLine(Vector, Vector);
+ void DrawPoint(int, int);
+ void DrawRoundedRect(QRectF, double, double);
+ void DrawPaddedRect(QRectF);
+ void DrawRect(QRectF);
+ void DrawText(QRectF, int, QString);
+ void DrawArrowhead(Vector, Vector, double);
+ void DrawCrosshair(Vector);
+ void DrawInformativeText(QString);
+ void DrawBezier(Point, Point, Point);
+ void DrawBezier(IPoint, IPoint, IPoint);
+ void DrawSquareDot(Vector);
+ void DrawRoundDot(Vector);
+ void DrawSquareDotN(Vector, uint32_t);
+ void DrawRoundDotN(Vector, uint32_t);
+
+ public:
+ static Vector CartesianToQtCoords(Vector);
+ static Vector QtToCartesianCoords(Vector);
+
+ public:
+ // Class variables
+// static Vector origin; // The window origin, not location of the origin
+// static double zoom; // Window zoom factor
+// static Vector screenSize; // Width & height of the window we're drawing on
+
+ private:
+ QPainter * painter;
+};
+
+#endif // __PAINTER_H__