summaryrefslogtreecommitdiff
path: root/inc/CGM_Driver.hxx
blob: ba5ceac2fc08c1dd3e21ce2e42e0fc9aa7c5c743 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _CGM_Driver_HeaderFile
#define _CGM_Driver_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_CGM_Driver_HeaderFile
#include <Handle_CGM_Driver.hxx>
#endif

#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _PlotMgt_PlotterDriver_HeaderFile
#include <PlotMgt_PlotterDriver.hxx>
#endif
#ifndef _Handle_PlotMgt_Plotter_HeaderFile
#include <Handle_PlotMgt_Plotter.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#ifndef _Quantity_Length_HeaderFile
#include <Quantity_Length.hxx>
#endif
#ifndef _Aspect_TypeOfColorSpace_HeaderFile
#include <Aspect_TypeOfColorSpace.hxx>
#endif
#ifndef _Handle_Aspect_ColorMap_HeaderFile
#include <Handle_Aspect_ColorMap.hxx>
#endif
#ifndef _Handle_Aspect_TypeMap_HeaderFile
#include <Handle_Aspect_TypeMap.hxx>
#endif
#ifndef _Handle_Aspect_WidthMap_HeaderFile
#include <Handle_Aspect_WidthMap.hxx>
#endif
#ifndef _Standard_ShortReal_HeaderFile
#include <Standard_ShortReal.hxx>
#endif
#ifndef _Standard_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
class PlotMgt_Plotter;
class Aspect_ColorMap;
class Aspect_TypeMap;
class Aspect_WidthMap;


//! This class defines a CGM (Computer Graphic Metafile) plotter Driver. <br>
//!         All necessary information about methods (purpose, level, category, etc.) <br>
//!         can be found in CDL files from the inheritance tree (PlotMgt_PlotterDriver, <br>
//!         Aspect_Driver). <br>
class CGM_Driver : public PlotMgt_PlotterDriver {

public:

  
  Standard_EXPORT   CGM_Driver(const Handle(PlotMgt_Plotter)& aPlotter,const Standard_CString aName,const Quantity_Length aDX,const Quantity_Length aDY,const Aspect_TypeOfColorSpace aTypeOfColorSpace = Aspect_TOCS_RGB);
  
  Standard_EXPORT   CGM_Driver(const Standard_CString aName,const Quantity_Length aDX,const Quantity_Length aDY,const Aspect_TypeOfColorSpace aTypeOfColorSpace = Aspect_TOCS_RGB);
  
  Standard_EXPORT   virtual  void BeginDraw() ;
  
  Standard_EXPORT   virtual  void EndDraw(const Standard_Boolean dontFlush = Standard_False) ;
  
  Standard_EXPORT   virtual  Standard_Boolean SizeOfImageFile(const Standard_CString anImageFile,Standard_Integer& aWidth,Standard_Integer& aHeight) const;



  DEFINE_STANDARD_RTTI(CGM_Driver)

protected:

  
  Standard_EXPORT   virtual  void Close() ;
~CGM_Driver()
{
  Close();
}
  
  Standard_EXPORT   virtual  void InitializeColorMap(const Handle(Aspect_ColorMap)& aColorMap) ;
  
  Standard_EXPORT   virtual  void InitializeTypeMap(const Handle(Aspect_TypeMap)& aTypeMap) ;
  
  Standard_EXPORT   virtual  void InitializeWidthMap(const Handle(Aspect_WidthMap)& aWidthMap) ;
  
  Standard_EXPORT   virtual  void PlotLineAttrib(const Standard_Integer ColorIndex,const Standard_Integer TypeIndex,const Standard_Integer WidthIndex) ;
  
  Standard_EXPORT   virtual  void PlotPolyAttrib(const Standard_Integer ColorIndex,const Standard_Integer TileIndex,const Standard_Boolean DrawEdge) ;
  
  Standard_EXPORT   virtual  Standard_Boolean PlotPoint(const Standard_ShortReal X,const Standard_ShortReal Y) ;
  
  Standard_EXPORT   virtual  Standard_Boolean PlotSegment(const Standard_ShortReal X1,const Standard_ShortReal Y1,const Standard_ShortReal X2,const Standard_ShortReal Y2) ;
  
  Standard_EXPORT   virtual  Standard_Boolean PlotPolyline(const Standard_Address xArray,const Standard_Address yArray,const Standard_Address nPts,const Standard_Integer nParts) ;
  
  Standard_EXPORT   virtual  Standard_Boolean PlotPolygon(const Standard_Address xArray,const Standard_Address yArray,const Standard_Address nPts,const Standard_Integer nParts) ;
  
  Standard_EXPORT   virtual  Standard_Boolean PlotArc(const Standard_ShortReal X,const Standard_ShortReal Y,const Standard_ShortReal anXradius,const Standard_ShortReal anYradius,const Standard_ShortReal sAngle,const Standard_ShortReal oAngle) ;
  
  Standard_EXPORT   virtual  Standard_Boolean PlotPolyArc(const Standard_ShortReal X,const Standard_ShortReal Y,const Standard_ShortReal anXradius,const Standard_ShortReal anYradius,const Standard_ShortReal sAngle,const Standard_ShortReal oAngle) ;
  
  Standard_EXPORT   virtual  Standard_Boolean PlotImage(const Standard_ShortReal aX,const Standard_ShortReal aY,const Standard_ShortReal aWidth,const Standard_ShortReal aHeight,const Standard_ShortReal aScale,const Standard_CString anImageFile,const Standard_Address anArrayOfPixels,const Standard_Integer aLineIndex = -1) ;



private: 

  
  Standard_EXPORT     void BeginFile(const Handle(PlotMgt_Plotter)& aPlotter,const Quantity_Length aDX,const Quantity_Length aDY,const Aspect_TypeOfColorSpace aTypeOfColorSpace) ;
  
  Standard_EXPORT     void InitializeDriver(const Standard_CString aName) ;
  
  Standard_EXPORT     void WriteData(const Standard_Integer aCode,const Standard_Address pLongData,const Standard_Address pFloatData,const Standard_Address pCharData) ;

Standard_Integer myBKIndex;
Standard_Integer myCurrentPage;
Standard_Boolean myFileIsOpened;
Standard_Integer myFillIndex;
Standard_Integer myEdgeColor;
Standard_Integer myEdgeType;
Standard_Integer myEdgeWidth;
Standard_Integer myInteriorStyle;
Standard_Integer myEdgeVisibility;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif