** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: sgp.h,v 1.14 2000/08/25 15:59:13 kevin Exp $
+** $Id: sgp.h,v 1.18 2000/09/04 09:06:46 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
#ifdef HAVE_WXWINDOWS
#include <wx/wx.h>
+#include <wx/font.h>
#endif
#if HAVE_G2_H
#endif
SGPDriver (const char* szWinTitle = "", int xsize = 640, int ysize = 480);
-
+
~SGPDriver ();
int getPhysicalXSize () const
#ifdef HAVE_WXWINDOWS
wxDC* idWX () const
{ return m_pDC; }
+
+ void setDC (wxDC* dc)
+ { m_pDC = dc; }
#endif
};
private:
int m_iPhysicalXSize; // Physical Window size
int m_iPhysicalYSize;
- const SGPDriver m_driver;
+ SGPDriver m_driver;
double xw_min; // Window extents
double yw_min;
double m_dCurrentWorldY;
double m_dTextAngle;
bool m_bRecalcTransform;
+ double m_dPointsPerPixel; // points (72pt/in) per screen pixel;
// Master coordinates are coordinates before CTM transformation
// World coordinates are coordinates defined by setWindow()
static int s_iRGBColorCount;
#if HAVE_WXWINDOWS
- wxPen* m_pPen;
+ wxPen m_pen;
+ wxFont m_font;
#endif
public:
SGP (const SGPDriver& driver);
void drawCircle (const double r);
- void drawArc (double start, double stop, const double r);
+ void drawArc (const double r, double start, double stop);
void drawRect (double xmin, double ymin, double xmax, double ymax);
void lineAbs(double x, double y);
void moveAbs(double x, double y);
void setColor (int icol);
void setLineStyle (int style);
void setTextSize (double height);
+ void setTextNDCSize (double height);
+ void setTextPointSize (double height);
void setTextAngle (double angle);
void setTextColor (int iFGcolor, int iBGcolor);
+ void setPenWidth (int width);
void setMarker (int idMarker, int color);
void setRasterOp (int ro);
+ void getWindow (double& xmin, double& ymin, double& xmax, double& ymax);
+ void getViewport (double& xmin, double& ymin, double& xmax, double& ymax);
+ void getTextExtent (const char *szText, double* x, double* y);
+ double getCharHeight ();
+ double getCharWidth ();
+ SGPDriver& getDriver() {return m_driver;}
+ const SGPDriver& getDriver() const {return m_driver;}
+
void ctmClear ();
void ctmSet (const TransformationMatrix2D& m);
void preTranslate (double x, double y);
void stylusNDC (double x, double y, bool beam);
void pointNDC (double x, double y);
void markerNDC (double x, double y);
+
+#if HAVE_WXWINDOWS
+ void setDC (wxDC* pDC);
+#endif
};