Main Page   Class Hierarchy   Compound List   File List   Compound Members  

DrawDriver Class Reference

Drawdriver is the base class for drawing. More...

#include <scrndrv.h>

Inheritance diagram for DrawDriver:

wxDoubleDCBase List of all members.

Public Methods

bool Pending ()
 detect interruption of drawing routines

 DrawDriver ()
 constructors

 ~DrawDriver ()
 destructor

void WriteDirect (ElementList *)
void WriteDirect (Path *_Path)
void WriteDirect (Boundary *_Boundary)
void WriteDirect (Box *_Box)
void WriteDirect (SLine *line)
void WriteDirect (Circle *_Circle)
void WriteDirect (Text *)
void WriteDirect (Arcseg *)
void DrawOrigin ()
 draw the (0,0) crosshair

void DrawGrid (double, long, int)
 draw the drawing grid on the canvas

void Init ()
 initialize the device to draw on

BoundingBox & GetVirtualSizeScreen ()
 return a Boundingbox in virtual coordinates being the visual size of the client window

void SetDrawStyle (DrawStyle)
 set the drawing style (filled, outline, inverted etc.)

DrawStyle GetDrawStyle ()
 get the current drawing style (filled, outline, inverted etc.)

bool IsDrawStyle (DrawStyle)
 is this the current drawstyle?

void ClearScreen ()
 clear the client window

void Write (GdsII *)
 write given object to window

void Write (Point *)
 write given object to window

void Write (Segment *)
 write given object to window

void Write (G_Polygon *)
 write given object to window

void Write (G_Polyline *)
 write given object to window

void SetLayer (int layer)
void UnSetLayer (int layer)
void GDSDrawText (const wxString &text, double x, double y, double x2, double y2, Text *, wxTransformMatrix *)
 draw text on the screen

void GDSDrawLine (double x1, double y1, double x2, double y2)
 draw a line on the screen (using dubbel buffering)

void Transform (double &, double &)
void Transform (double &, double &, double &, double &)
void SetScroll (double vx1, double vy1, double vx2, double vy2)
 to set the total area that can be scrolled

bool NeedToDraw (int layer)
 is this layer visible, and needs drawing?

void WindowsPolygon_NoOutLine ()
 draw simple polygons but no outline

void WindowsPolygon (void)
 draw simple polygons

void WindowsPolyline (void)
 draw simple polylines

void WindowsSpline (void)
 draw simple polylines

void DrawRect (int x1, int y1, int x2, int y2)
 draw a rectangle in window coordinates

bool ClipIt (Element *a_ele)
 does this element need clipping to MAXINT and MININT (not window)

void ltowxc (long l, wxColour &color)
 convert colors from rgb to wxcolours

void SetClippingRegionBox (BoundingBox &a_box)
 set clipping region using x y values of virtual window coordinates


Public Attributes

Structure * _showstructure
 top of visible structures

bool _Selected
 true if the element should be drawn selected

bool _SRefSelected
 true if the reference to the element was selected

bool m_filled
 set true if the element to be drawn needs to be drawn filled

BoundingBox m_virtualsize
 holds the size of the virtual window

BoundingBox _absbox
 used for calculating absolute boundingboxes

wxTransformMatrix_matrix
 holds the matrix from structure reference

OVERLAP _clip_status
 use for checking clipping necessity

bool _visible
 is this structure visible?

bool _clipit
 does this element/structure etc. need clipping to MAXINT and MININT (not window)

G_Polygon_AbsPolygon
 for containing the absolute polygon to draw

TDLI< Segment > * _AI
 iterator for absolute polygon

int _ActiveLayer
 active layer that is currently drawn

DrawStyle _drawstyle
 current drawstyle

DrawStyle _stored_drawstyle
 previous drawstyle

bool _stopdrawing
 interrupt in drawing

bool _busydrawing
 is drawing going on

wxPoint * todraw
 temporary storage of polygons converted to windows coordinates

wxColour * _textColor
 holds the drawing color for text

wxColour * _textSelectedColor
 holds the drawing color selected text

wxColour * _fillcolor
 holds the fill color

wxPen * _penSelected
 the pen used for drawing a border around selected elements

wxPen * _pen
 the pen used for drawing

wxPen * _pengrid
 the pen used for grid drawing

wxPen * _penorigin
 the pen used for origin drawing

wxBrush * _brush
 the brush used for filling

wxBrush * _brushbitm
 used in case of bitmap hatched filling

wxBrush * _brushnorm
 used in case of SOLID filling

wxFont * _font
 font for text elements

wxBitmap * _currentbitmap
 the bitmap brush initial bitmap

int _layer
 active layer to optimize drawing

int _pattern
 holds the patternnumber

double m_virtm_minX
 virtual coordinates of total drawing

double m_virtm_minY
 virtual coordinates of total drawing

double m_virtm_maxX
 virtual coordinates of total drawing

double m_virtm_maxY
 virtual coordinates of total drawing


Detailed Description

Drawdriver is the base class for drawing.

the internal database contents to the screen. For every Object in the database there are members to write it to a screen type device. For instance the display or a printer for doing the low level drawing. All function are using a DC that can be set in front for the driver. This makes the class one big selection of drawing functions using a wxDC.

See also:
Canvas , PrintDriver


Member Function Documentation

void DrawDriver::SetDrawStyle DrawStyle   
 

set the drawing style (filled, outline, inverted etc.)

The drawstyle is used to determine how figures should be drawn on screen.

  • WIREFRAME = draw the outlines only
  • FILLED = draw outlines and fill the polygons
  • SELECTED = draw only a selectedline around already existing objects
  • INVERTED = draw the object in a color being the inverse of the screencolor where the object is drawn
P.S. With the drawstyle wireframe or filled selected objects are also drawn

void DrawDriver::SetLayer int    layer
 

given a layer number, initialize all needed to draw on this layer like colors fill patterns etc.

void DrawDriver::Transform double &   ,
double &   ,
double &   ,
double &   
 

transform relative coordinates to absolute coordinates using the current relative matrix. it is used to draw the contents of structures that are referenced from the top level

void DrawDriver::Transform double &   ,
double &   
 

transform relative coordinates to absolute coordinates using the current relative matrix. it is used to draw the contents of structures that are referenced from the top level

void DrawDriver::UnSetLayer int    layer
 

given a layer number, remove all that was needed to draw on this layer like colors fill patterns etc.

void DrawDriver::WriteDirect Arcseg  
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes

void DrawDriver::WriteDirect Text  
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes

void DrawDriver::WriteDirect Circle   _Circle
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes

void DrawDriver::WriteDirect SLine   line
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes

void DrawDriver::WriteDirect Box   _Box
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes

void DrawDriver::WriteDirect Boundary   _Boundary
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes

void DrawDriver::WriteDirect Path   _Path
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes

void DrawDriver::WriteDirect ElementList *   
 

write the object to the device without history on the current transform matrix this is used in interactive drawing modes


The documentation for this class was generated from the following file: DrawDriver class Reference -- Thu Nov 28 21:24:57 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page