00001 /* 00002 File: EPSRenderer.h 00003 00004 Function: Renders line drawings to a .eps file. 00005 00006 Author(s): Andrew Willmott 00007 00008 Copyright: (c) 1997-2000, Andrew Willmott 00009 */ 00010 00011 #ifndef __EPSRenderer__ 00012 #define __EPSRenderer__ 00013 00014 #include "gcl/Renderer.h" 00015 #include "gcl/EPSPlot.h" 00016 #include "gcl/Clipper.h" 00017 00018 // --- The EPSRenderer class -------------------------------------------------- 00019 00020 00021 class EPSRenderer : public Renderer, public Clipper 00022 { 00023 public: 00024 EPSRenderer(); 00025 00026 Void Attach(StrConst epsFilename); 00027 00028 virtual Void Show(); 00029 virtual Void MakeCurrent(); 00030 virtual Void Print(ostream &s); 00031 00032 virtual Renderer &Begin(RenderStyle style); 00033 virtual Renderer &End(); 00034 00035 virtual Renderer &SetPoint(const Point &p); 00036 virtual Renderer &SetNormal(const Vector &p); 00037 virtual Renderer &SetCoord(const Coord &c); 00038 virtual Renderer &SetColour(const Colour &c); 00039 00040 virtual Renderer &SetTransform(const Transform &t); 00041 virtual Renderer &SetCamera(const Camera &c); 00042 00043 virtual Renderer &Clear(); 00044 virtual Renderer &Pop(); 00045 virtual Renderer &Push(); 00046 00047 virtual Renderer &GetImage(Image &image) // unsupported 00048 {return SELF;}; 00049 virtual Renderer &PutImage(const Image &image, Int x = 0, Int y = 0) 00050 {return SELF;}; 00051 00052 EPSPlot itsPlot; 00053 00054 protected: 00055 Void ViewPoint(const HPoint &hp, Bool draw); 00056 00057 Array<Transform> matrixStack; 00058 RenderStyle style; 00059 Bool start; 00060 Point firstPoint; 00061 String itsFilename; 00062 }; 00063 00064 #endif