Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TVirtualPS.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/base:$Id$
0002 // Author: Rene Brun   05/09/99
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 #ifndef ROOT_TVirtualPS
0012 #define ROOT_TVirtualPS
0013 
0014 
0015 //////////////////////////////////////////////////////////////////////////
0016 //                                                                      //
0017 // TVirtualPS                                                           //
0018 //                                                                      //
0019 // Abstract interface to a PostScript driver.                           //
0020 //                                                                      //
0021 //////////////////////////////////////////////////////////////////////////
0022 
0023 
0024 #include "TNamed.h"
0025 #include "TAttLine.h"
0026 #include "TAttFill.h"
0027 #include "TAttText.h"
0028 #include "TAttMarker.h"
0029 
0030 class TVirtualPS : public TNamed, public TAttLine, public TAttFill, public TAttMarker, public TAttText {
0031 
0032 private:
0033    TVirtualPS(const TVirtualPS&) = delete;
0034    TVirtualPS& operator=(const TVirtualPS&) = delete;
0035 
0036 protected:
0037    Int_t          fNByte{0};                // Number of bytes written in the file (PDF)
0038    Int_t          fLenBuffer{0};            // Buffer length
0039    Int_t          fSizBuffer{0};            // Buffer size
0040    Bool_t         fPrinted{kFALSE};         // True when a page must be printed
0041    std::ofstream *fStream{nullptr};         // File stream identifier
0042    char          *fBuffer{nullptr};         // File buffer
0043    const char    *fImplicitCREsc{nullptr};  // Escape symbol before enforced new line
0044 
0045 public:
0046    TVirtualPS();
0047    TVirtualPS(const char *filename, Int_t type=-111);
0048    virtual     ~TVirtualPS();
0049    virtual void  CellArrayBegin(Int_t W, Int_t H, Double_t x1, Double_t x2, Double_t y1, Double_t y2) = 0;
0050    virtual void  CellArrayFill(Int_t r, Int_t g, Int_t b) = 0;
0051    virtual void  CellArrayEnd() = 0;
0052    virtual void  Close(Option_t *opt="") = 0;
0053    virtual void  DrawBox(Double_t x1, Double_t y1,Double_t x2, Double_t  y2) = 0;
0054    virtual void  DrawFrame(Double_t xl, Double_t yl, Double_t xt, Double_t  yt,
0055                            Int_t mode, Int_t border, Int_t dark, Int_t light) = 0;
0056    virtual void  DrawPolyMarker(Int_t n, Float_t *x, Float_t *y) = 0;
0057    virtual void  DrawPolyMarker(Int_t n, Double_t *x, Double_t *y) = 0;
0058    virtual void  DrawPS(Int_t n, Float_t *xw, Float_t *yw) = 0;
0059    virtual void  DrawPS(Int_t n, Double_t *xw, Double_t *yw) = 0;
0060    virtual void  NewPage() = 0;
0061    virtual void  Open(const char *filename, Int_t type=-111) = 0;
0062    virtual void  Text(Double_t x, Double_t y, const char *string) = 0;
0063    virtual void  Text(Double_t x, Double_t y, const wchar_t *string) = 0;
0064    virtual void  SetColor(Float_t r, Float_t g, Float_t b) = 0;
0065 
0066    virtual void  PrintFast(Int_t nch, const char *string="");
0067    virtual void  PrintStr(const char *string="");
0068    virtual void  WriteInteger(Int_t i, Bool_t space=kTRUE);
0069    virtual void  WriteReal(Float_t r, Bool_t space=kTRUE);
0070    virtual void  PrintRaw(Int_t len, const char *str);
0071    virtual void *GetStream() const { return (void*)fStream; }
0072    virtual void  SetStream(std::ofstream *os) { fStream = os; }
0073 
0074    virtual void  SetType(Int_t /*type*/ = -111) { }
0075    virtual Int_t GetType() const { return 111; }
0076 
0077    ClassDefOverride(TVirtualPS,0)  //Abstract interface to a PostScript driver
0078 };
0079 
0080 
0081 R__EXTERN TVirtualPS  *gVirtualPS;
0082 
0083 #endif