You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.2 KiB
C++
94 lines
3.2 KiB
C++
//////////////////////////////////////////////////////////////////////////////
|
|
//文件 EpsWriter.h
|
|
//主要功能:
|
|
// 写EPS3.0格式类
|
|
//
|
|
//程序编写: 2005-12-07
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
#include "DrawImage\ImageBase.h"
|
|
|
|
namespace NFormatWriter
|
|
{
|
|
|
|
class CEpsWriter
|
|
{
|
|
public:
|
|
typedef struct _EpsState
|
|
{
|
|
COLORREF curcol; //! current color
|
|
COLORREF bkcurcol;
|
|
double linewidth; //! current linewidth
|
|
CString dash; //! current dash style
|
|
LOGFONT m_font; //! current font
|
|
} EpsState;
|
|
|
|
public:
|
|
CEpsWriter(void);
|
|
virtual ~CEpsWriter(void);
|
|
|
|
void WriteHeader();
|
|
void WriteFooter();
|
|
|
|
void WriteColorFill(void);
|
|
void WriteColorString();
|
|
void PushState();
|
|
void PopState();
|
|
|
|
void SetFile(CFile* pFile);
|
|
void SetCurrentColor(COLORREF col);
|
|
void SetLineWidth(double width);
|
|
void SetFont(long scale);
|
|
void SetFont(const LOGFONT& logFont);
|
|
void SetDefaultFontName(LPCTSTR lpszFontName);
|
|
|
|
virtual void DrawArrow(double tailx, double taily, double tipx, double tipy, double tailthickness, double headthickness, double headlength, bool filled =true);
|
|
virtual void DrawArrowAbs(double tailx, double taily, double dtipx, double dtipy, double tailthickness, double headthickness, double headlength, bool filled =true);
|
|
|
|
void DrawImage(CImageBase* pImage, double x, double y, double cx, double cy);
|
|
void DrawLine(double x1, double y1, double x2, double y2);
|
|
void DrawRect(double llx, double lly, double urx, double ury, bool filled = false);
|
|
void DrawLineStrip(int n, double* pX, double* pY, bool open = true, bool filled = false);
|
|
void DrawStepStrip(int n, double* pX, double* pY, bool open = true, bool filled = false);
|
|
|
|
void DrawBox(double llx, double lly, double dx, double dy, bool filled = false);
|
|
void DrawCircle(double cx, double cy, double radius, bool filled = false);
|
|
void DrawTriangle(double cx, double cy, double radius, bool filled = false);
|
|
void DrawSquare(double cx, double cy, double radius, bool filled = false);
|
|
void DrawTriangle(CPoint2D* pointThree, COLORREF* pColorThree, bool filled = false);
|
|
|
|
void DrawBoxStrip(int n, double* pLlx, double* pLly, double dx, double dy, bool filed = false);
|
|
void DrawCircleStrip(int n, double* pCx, double* pCy, double radius, bool filled = false);
|
|
void DrawTriangleStrip(int n, double* pCx, double* pCy, double radius, bool filled = false);
|
|
void DrawSquareStrip(int n, double* pCx, double* pCy, double radius, bool filled = false);
|
|
|
|
void DrawGridHor(double llx, double urx, double lly, double ury,double dy);
|
|
void DrawGridVer(double llx, double urx, double lly, double ury,double dx);
|
|
|
|
void DrawText(double x, double y, const char* txt, DWORD dwAlignsH, double angle = 0);
|
|
void DrawSurface(int nx, int ny, double llx, double lly, double dx, double dy, double* pColor);
|
|
void DrawVectorField(int nx, int ny, double llx, double lly, double dx, double dy, double* pV, double lineWidth = 1);
|
|
|
|
void WriteString(CString str);
|
|
void AddComment(const char* str);
|
|
|
|
CSize8 m_mapSize;
|
|
|
|
protected:
|
|
void InitState();
|
|
|
|
EpsState m_state;
|
|
CList<EpsState,EpsState> m_listState;
|
|
|
|
CFile* m_pFile;
|
|
CString m_strDefaultFontName;
|
|
|
|
int dummycnt;
|
|
double gouraudeps;
|
|
};
|
|
|
|
};
|
|
|
|
using namespace NFormatWriter;
|