ROOT logo
// @(#)root/postscript:$Id: TSVG.h 20882 2007-11-19 11:31:26Z rdm $
// Author: Olivier Couet

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TSVG
#define ROOT_TSVG


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TSVG                                                                 //
//                                                                      //
// SVG driver.                                                          //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TVirtualPS
#include "TVirtualPS.h"
#endif

class TPoints;

class TSVG : public TVirtualPS {

protected:
   Float_t      fXsize;           //Page size along X
   Float_t      fYsize;           //Page size along Y
   Int_t        fType;            //Workstation type used to know if the SVG is open
   Bool_t       fBoundingBox;     //True when the SVG header is printed
   Bool_t       fRange;           //True when a range has been defined
   Int_t        fYsizeSVG;        //Page's Y size in SVG units

public:
   TSVG();
   TSVG(const char *filename, Int_t type=-113);
   virtual ~TSVG();

   void  CellArrayBegin(Int_t W, Int_t H, Double_t x1, Double_t x2, Double_t y1, Double_t y2);
   void  CellArrayFill(Int_t r, Int_t g, Int_t b);
   void  CellArrayEnd();
   void  Close(Option_t *opt="");
   Int_t CMtoSVG(Double_t u) {return Int_t(0.5 + 72*u/2.54);}
   void  DrawBox(Double_t x1, Double_t y1,Double_t x2, Double_t  y2);
   void  DrawFrame(Double_t xl, Double_t yl, Double_t xt, Double_t  yt,
                   Int_t mode, Int_t border, Int_t dark, Int_t light);
   void  DrawPolyLine(Int_t n, TPoints *xy);
   void  DrawPolyLineNDC(Int_t n, TPoints *uv);
   void  DrawPolyMarker(Int_t n, Float_t *x, Float_t *y);
   void  DrawPolyMarker(Int_t n, Double_t *x, Double_t *y);
   void  DrawPS(Int_t n, Float_t *xw, Float_t *yw);
   void  DrawPS(Int_t n, Double_t *xw, Double_t *yw);
   void  Initialize();
   void  MovePS(Int_t x, Int_t y);
   void  NewPage();
   void  Off();
   void  On();
   void  Open(const char *filename, Int_t type=-111);
   void  Range(Float_t xrange, Float_t yrange);
   void  SetColor(Int_t color = 1);
   void  SetColor(Float_t r, Float_t g, Float_t b);
   void  SetFillColor( Color_t cindex=1);
   void  SetLineColor( Color_t cindex=1);
   void  SetLineStyle(Style_t linestyle = 1);
   void  SetLineWidth(Width_t linewidth = 1);
   void  SetLineScale(Float_t =3) { }
   void  SetMarkerColor( Color_t cindex=1);
   void  SetTextColor( Color_t cindex=1);
   void  Text(Double_t x, Double_t y, const char *string);
   void  TextNDC(Double_t u, Double_t v, const char *string);
   Int_t UtoSVG(Double_t u);
   Int_t VtoSVG(Double_t v);
   Int_t XtoSVG(Double_t x);
   Int_t YtoSVG(Double_t y);

   ClassDef(TSVG,0)  //SVG driver
};

#endif
 TSVG.h:1
 TSVG.h:2
 TSVG.h:3
 TSVG.h:4
 TSVG.h:5
 TSVG.h:6
 TSVG.h:7
 TSVG.h:8
 TSVG.h:9
 TSVG.h:10
 TSVG.h:11
 TSVG.h:12
 TSVG.h:13
 TSVG.h:14
 TSVG.h:15
 TSVG.h:16
 TSVG.h:17
 TSVG.h:18
 TSVG.h:19
 TSVG.h:20
 TSVG.h:21
 TSVG.h:22
 TSVG.h:23
 TSVG.h:24
 TSVG.h:25
 TSVG.h:26
 TSVG.h:27
 TSVG.h:28
 TSVG.h:29
 TSVG.h:30
 TSVG.h:31
 TSVG.h:32
 TSVG.h:33
 TSVG.h:34
 TSVG.h:35
 TSVG.h:36
 TSVG.h:37
 TSVG.h:38
 TSVG.h:39
 TSVG.h:40
 TSVG.h:41
 TSVG.h:42
 TSVG.h:43
 TSVG.h:44
 TSVG.h:45
 TSVG.h:46
 TSVG.h:47
 TSVG.h:48
 TSVG.h:49
 TSVG.h:50
 TSVG.h:51
 TSVG.h:52
 TSVG.h:53
 TSVG.h:54
 TSVG.h:55
 TSVG.h:56
 TSVG.h:57
 TSVG.h:58
 TSVG.h:59
 TSVG.h:60
 TSVG.h:61
 TSVG.h:62
 TSVG.h:63
 TSVG.h:64
 TSVG.h:65
 TSVG.h:66
 TSVG.h:67
 TSVG.h:68
 TSVG.h:69
 TSVG.h:70
 TSVG.h:71
 TSVG.h:72
 TSVG.h:73
 TSVG.h:74
 TSVG.h:75
 TSVG.h:76
 TSVG.h:77
 TSVG.h:78
 TSVG.h:79
 TSVG.h:80
 TSVG.h:81
 TSVG.h:82
 TSVG.h:83
 TSVG.h:84
 TSVG.h:85