#ifndef ROOT_TImage
#define ROOT_TImage
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TAttImage
#include "TAttImage.h"
#endif
#ifndef ROOT_GuiTypes
#include "GuiTypes.h"
#endif
#ifndef ROOT_TVectorDfwd
#include "TVectorDfwd.h"
#endif
class TVirtualPad;
class TArrayD;
class TArrayL;
class TH2D;
class TPoint;
class TText;
class TImage : public TNamed, public TAttImage {
friend TImage operator+(const TImage &i1, const TImage &s2);
friend TImage operator/(const TImage &i1, const TImage &s2);
public:
   
   enum EImageFileTypes {
      kXpm = 0,
      kZCompressedXpm,
      kGZCompressedXpm,
      kPng,
      kJpeg,
      kXcf,
      kPpm,
      kPnm,
      kBmp,
      kIco,
      kCur,
      kGif,
      kTiff,
      kXbm,
      kFits,
      kTga,
      kXml,
      kUnknown,
      kAnimGif
   };
   enum EText3DType {
      kPlain = 0,  
      kEmbossed,
      kSunken,
      kShadeAbove,
      kShadeBelow,
      kEmbossedThick,
      kSunkenThick,
      kOutlineAbove,
      kOutlineBelow,
      kOutlineFull,
      k3DTypes
   };
   enum ECharType {
      kUTF8 = 0,
      kChar = 1,
      kUnicode = 4
   };
   enum ETileType {
      kStretch = 0,
      kTile,
      kStretchY,
      kStretchX
   };
   enum ECoordMode {
      kCoordModeOrigin = 0,
      kCoordModePrevious
   };
   enum EColorChan {
      kRedChan   = BIT(0),
      kGreenChan = BIT(1),
      kBlueChan  = BIT(2),
      kAlphaChan = BIT(3),
      kAllChan   = kRedChan | kGreenChan | kBlueChan | kAlphaChan 
   };
protected:
   TImage(const char *file) : TNamed(file, "") { }
   TImage() { }
public:
   TImage(const TImage &img) : TNamed(img), TAttImage(img) { }
   TImage &operator=(const TImage &img)
            { TNamed::operator=(img); TAttImage::operator=(img); return *this; }
   TImage(UInt_t , UInt_t ) : TNamed(), TAttImage() { }
   virtual ~TImage() { }
   
   virtual TObject *Clone(const char *) const { return 0; }
   
   virtual void ReadImage(const char * , EImageFileTypes  = TImage::kUnknown) {}
   virtual void WriteImage(const char * , EImageFileTypes  = TImage::kUnknown)  {}
   virtual void SetImage(const Double_t * , UInt_t , UInt_t , TImagePalette *  = 0) {}
   virtual void SetImage(const TArrayD & , UInt_t , TImagePalette *  = 0) {}
   virtual void SetImage(const TVectorD & , UInt_t , TImagePalette *  = 0) {}
   virtual void SetImage(Pixmap_t , Pixmap_t  = 0) {}
   
   virtual void FromPad(TVirtualPad * , Int_t  = 0, Int_t  = 0, UInt_t  = 0, UInt_t  = 0) {}
   
   virtual void UnZoom() {}
   virtual void Zoom(UInt_t , UInt_t , UInt_t , UInt_t ) {}
   virtual void Flip(Int_t  = 180) {}
   virtual void Gray(Bool_t  = kTRUE) {}
   virtual Bool_t IsGray() const { return kFALSE; }
   virtual void Mirror(Bool_t  = kTRUE) {}
   virtual void Scale(UInt_t , UInt_t ) {}
   virtual void Slice(UInt_t , UInt_t , UInt_t ,  UInt_t ,
                      UInt_t , UInt_t ) {}
   virtual void Tile(UInt_t , UInt_t ) {}
   virtual void Crop(Int_t  = 0, Int_t  = 0, UInt_t  = 0, UInt_t  = 0) {}
   virtual void Pad(const char *  = "#FFFFFFFF", UInt_t  = 0, 
                   UInt_t  = 0, UInt_t  = 0, UInt_t  = 0) {}
   virtual void Blur(Double_t  = 3, Double_t  = 3) { }
   virtual Double_t *Vectorize(UInt_t  = 256, UInt_t  = 4, Int_t  = 0) { return 0; }
   virtual void HSV(UInt_t  = 0, UInt_t  = 360, Int_t  = 0, Int_t  = 0, Int_t  = 0, 
                    Int_t  = 0, Int_t  = 0, UInt_t  = 0, UInt_t  = 0) {}
   virtual void Gradient(UInt_t  = 0, const char *  = "#FFFFFF #000000", const char *  = 0,
                         Int_t  = 0, Int_t  = 0, UInt_t  = 0, UInt_t  = 0) {}
   virtual void Merge(const TImage * , const char *  = "alphablend", Int_t  = 0, Int_t  = 0) {}
   virtual void Append(const TImage * , const char *  = "+", const char *  = "#00000000") {}
   virtual void Bevel(Int_t  = 0, Int_t  = 0, UInt_t  = 0, UInt_t  = 0,
                      const char *  = "#ffdddddd", const char *  = "#ff555555", 
                      UShort_t  = 1, Bool_t  = kFALSE) {}
   virtual void DrawText(Int_t  = 0, Int_t  = 0, const char *  = "", Int_t  = 12, 
                         const char *  = 0, const char *  = "fixed",
                         EText3DType  = TImage::kPlain, const char *  = 0, Float_t  = 0) { }
   virtual void DrawText(TText * , Int_t  = 0, Int_t  = 0) { }
   
   virtual void BeginPaint(Bool_t  = kTRUE) {}
   virtual void EndPaint() {}
   virtual void DrawLine(UInt_t , UInt_t , UInt_t , UInt_t , 
                         const char *  = "#000000", UInt_t  = 1) {}
   virtual void DrawDashLine(UInt_t , UInt_t , UInt_t , UInt_t , UInt_t ,
                             const char * , const char *  = "#000000", UInt_t  = 1) {}
   virtual void DrawBox(Int_t , Int_t , Int_t , Int_t , 
                         const char *  = "#000000", UInt_t  = 1, Int_t  = 0) {}
   virtual void DrawRectangle(UInt_t , UInt_t , UInt_t , UInt_t , 
                              const char *  = "#000000", UInt_t  = 1) {}
   virtual void FillRectangle(const char *  = 0, Int_t  = 0, Int_t  = 0, 
                              UInt_t  = 0, UInt_t  = 0) {}
   virtual void DrawPolyLine(UInt_t , TPoint * , const char *  = "#000000", 
                             UInt_t  = 1, TImage::ECoordMode  = kCoordModeOrigin) {}
   virtual void PutPixel(Int_t , Int_t , const char *  = "#000000") {}
   virtual void PolyPoint(UInt_t , TPoint * , const char *  = "#000000", 
                          TImage::ECoordMode  = kCoordModeOrigin) {}
   virtual void DrawSegments(UInt_t , Segment_t * , const char *  = "#000000", UInt_t  = 1) {}
   virtual void FillPolygon(UInt_t , TPoint * , const char *  = "#000000",
                           const char *  = 0, UInt_t  = 16, UInt_t  = 16) {}
   virtual void FillPolygon(UInt_t , TPoint * , TImage * ) {}
   virtual void CropPolygon(UInt_t , TPoint * ) {}
   virtual void DrawFillArea(UInt_t , TPoint * , const char *  = "#000000",
                           const char *  = 0, UInt_t  = 16, UInt_t  = 16) {}
   virtual void DrawFillArea(UInt_t , TPoint * , TImage * ) {}
   virtual void FillSpans(UInt_t , TPoint * , UInt_t * ,  const char *  = "#000000",
                         const char *  = 0, UInt_t  = 16, UInt_t  = 16) {}
   virtual void FillSpans(UInt_t , TPoint * , UInt_t * , TImage * ) {}
   virtual void CropSpans(UInt_t , TPoint * , UInt_t * ) {}
   virtual void CopyArea(TImage * , Int_t , Int_t , UInt_t , UInt_t ,
                         Int_t  = 0, Int_t  = 0, Int_t  = 3, EColorChan  = kAllChan) {}
   virtual void DrawCellArray(Int_t , Int_t , Int_t , Int_t , Int_t , Int_t , UInt_t * ) {}
   virtual void FloodFill(Int_t , Int_t , const char * , const char * , const char *  = 0) {}
   virtual void DrawCubeBezier(Int_t , Int_t , Int_t , Int_t , Int_t , Int_t , const char *  = "#000000", UInt_t  = 1) {}
   virtual void DrawStraightEllips(Int_t , Int_t , Int_t , Int_t , const char *  = "#000000", Int_t  = 1) {}
   virtual void DrawCircle(Int_t , Int_t , Int_t , const char *  = "#000000", Int_t  = 1) {}
   virtual void DrawEllips(Int_t , Int_t , Int_t , Int_t , Int_t , const char *  = "#000000", Int_t  = 1) {}
   virtual void DrawEllips2(Int_t , Int_t , Int_t , Int_t , Int_t , const char *  = "#000000", Int_t  = 1) {}
   virtual void SetEditable(Bool_t  = kTRUE) {}
   virtual Bool_t IsEditable() const { return kFALSE; }
   
   virtual UInt_t GetWidth() const { return 0; }
   virtual UInt_t GetHeight() const { return 0; }
   virtual Bool_t IsValid() const { return kTRUE; }
   virtual TImage *GetScaledImage() const { return 0; }
   virtual TArrayL  *GetPixels(Int_t = 0, Int_t = 0, UInt_t  = 0, UInt_t  = 0) { return 0; }
   virtual TArrayD  *GetArray(UInt_t  = 0, UInt_t  = 0, TImagePalette * = gWebImagePalette) { return 0; }
   virtual Pixmap_t  GetPixmap() { return 0; }
   virtual Pixmap_t  GetMask() { return 0; }
   virtual UInt_t   *GetArgbArray() { return 0; }
   virtual UInt_t   *GetRgbaArray() { return 0; }
   virtual UInt_t   *GetScanline(UInt_t ) { return 0; }
   virtual void      GetImageBuffer(char ** , int* , EImageFileTypes  = TImage::kPng) {}
   virtual Bool_t    SetImageBuffer(char ** , EImageFileTypes  = TImage::kPng) { return kFALSE; }
   virtual void      PaintImage(Drawable_t , Int_t , Int_t , Int_t  = 0, Int_t  = 0, UInt_t  = 0, UInt_t  = 0, Option_t *  = "") { }
   virtual void      FromWindow(Drawable_t , Int_t  = 0, Int_t  = 0, UInt_t  = 0, UInt_t  = 0) {}
   static EImageFileTypes GetImageFileTypeFromFilename(const char* opt);
   static TImage *Create();
   static TImage *Open(const char *file, EImageFileTypes type = kUnknown);
   static TImage *Open(char **data);
   static TImage *Open(const char *name, const Double_t *imageData, UInt_t width, UInt_t height, TImagePalette *palette);
   static TImage *Open(const char *name, const TArrayD &imageData, UInt_t width, TImagePalette *palette = 0);
   static TImage *Open(const char *name, const TVectorD &imageData, UInt_t width, TImagePalette *palette = 0);
   TImage    &operator+=(const TImage &i) { Append(&i, "+"); return *this; }
   TImage    &operator/=(const TImage &i) { Append(&i, "/"); return *this; }
   ClassDef(TImage,1)  
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.