CGM Objects Library
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
DrawGDI.h
1 // DrawGDI.h: interface for the CDrawGDI class.
2 //
5 
6 #if !defined(DRAWGDI_H__INCLUDED)
7 #define DRAWGDI_H__INCLUDED
8 
9 #pragma once
10 
11 #include "DrawBase.h"
12 #include <gdiplus.h>
13 
14 namespace Larson
15 {
17  class CDrawGDI : public CDrawBase
18  {
19  public:
20 #define ANTI_ALIAS 0x1
21 #define INTERPOLATION 0x2
22 
23  CDrawGDI();
24  virtual ~CDrawGDI();
25 
26  void setDisplay(void* pDisplay, void* pOther = 0);
27  void open();
28  void clear();
29  void flush();
30  void drawCellArray(CCgmCellArray *pCgmCellArray);
31  void drawCircle(CCgmCircle *pCgmCircle);
32  void drawDCline(CCgmBaseObj *pCgmBaseObj, DPoint *pDa, long cnt, bool close);
33  void drawDCfill(CCgmBaseObj *pCgmBaseObj, DPoint *pDa, long cnt);
34  void drawDCdots(CCgmBaseObj *pCgmBaseObj, DPoint *pDa, long cnt);
35  void drawEllipse(CCgmEllipse *pCgmEllipse);
36  void drawPath(CCgmBaseObj *pCgmBaseObj, Path *path, bool fill);
37  void drawPoly(CCgmPoly *pCgmPoly);
38  void drawText(CCgmText *pCgmText);
39  void drawTrace(CCgmTrace *pCgmTrace);
40  void close();
41  bool applyClipping(CCgmBaseObj*, DRect*);
42  void unApplyClipping(CCgmBaseObj*);
43  void eraseDCarea(DRect *rect);
44  void setHardclip(DRect *hardclip);
47  void setOptions(int options);
48  Gdiplus::Graphics* getGraphics() { return m_pGraphics; };
49 
50  private:
51  long setFillAttr(CCgmBaseObj *pCgmBaseObj);
52  long setLineAttr(CCgmBaseObj *pCgmBaseObj);
53  Gdiplus::Graphics* m_pGraphics;
54  HDC m_hDC;
55  Gdiplus::Pen* m_pLinePen;
56  Gdiplus::Brush* m_pFillBrush;
57  Gdiplus::GdiplusStartupInput m_gdiplusStartupInput;
58  ULONG_PTR m_gdiplusToken;
59  Gdiplus::Bitmap* m_patternBitmaps[MAX_PATTERNS];
60  int m_drawOptions;
61  };
62 }
63 
64 #endif // DRAWGDI_H__INCLUDED
CCgmCircle – Circle and CircularArc elements container class.
Definition: CgmObj.h:1258
void open()
open device for drawing
Definition: DrawGDI.cpp:107
void close()
close device and release memory
Definition: DrawGDI.cpp:130
bool applyClipping(CCgmBaseObj *, DRect *)
apply clipping rectangle and protection regions if either or both are indicated
Definition: DrawGDI.cpp:2097
virtual ~CDrawGDI()
standard constructor
Definition: DrawGDI.cpp:45
CCgmEllipse – Ellipse and EllipticalArc elements container class.
Definition: CgmObj.h:1309
void clear()
clear display area and set to background color if indicated
Definition: DrawGDI.cpp:115
CCgmCellArray – CellArray element container class.
Definition: CgmObj.h:933
void drawDCline(CCgmBaseObj *pCgmBaseObj, DPoint *pDa, long cnt, bool close)
draw a series of connected or unconnected lines specified by pPts in device coordinates ...
Definition: DrawGDI.cpp:1792
void drawDCfill(CCgmBaseObj *pCgmBaseObj, DPoint *pDa, long cnt)
fill a polygonal area specified by pPts in device coordinates
Definition: DrawGDI.cpp:2019
void setOptions(int options)
Definition: DrawGDI.cpp:86
CDrawGDI – GDI drawing class.
Definition: DrawGDI.h:17
CDrawBase – drawing base class from which all output specific draw classes are derived.
Definition: DrawBase.h:19
Path – graphical path data container class.
Definition: Path.h:17
CCgmPoly – Poly elements container class(Polyline, PolyBezier, Polygon, Disjoint Polyline) ...
Definition: CgmObj.h:883
CCgmBaseObj – graphical element container base class.
Definition: CgmObj.h:121
CCgmTrace – Trace GDP element container class.
Definition: CgmObj.h:1148
CCgmText – Text and RestrictedText elements container class.
Definition: CgmObj.h:794
void setDisplay(void *pDisplay, void *pOther=0)
standard destructor
Definition: DrawGDI.cpp:53
void drawCellArray(CCgmCellArray *pCgmCellArray)
draw a cell array as specfied by pCCgmCellArray, points are in VDC units
Definition: DrawGDI.cpp:1024
void drawCircle(CCgmCircle *pCgmCircle)
Definition: DrawGDI.cpp:1266