// @(#)root/histpainter:$Id: TGraph2DPainter.h,v 1.00
// 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_TGraph2DPainter
#define ROOT_TGraph2DPainter


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGraph2DPainter                                                      //
//                                                                      //
// helper class to draw 2D graphs                                       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_Object
#include "TObject.h"
#endif

class TGraph2D;
class TGraphDelaunay;
class TList;

class TGraph2DPainter : public TObject {

protected:

   Double_t   *fX;            //!Pointer to fGraph2D->fX
   Double_t   *fY;            //!Pointer to fGraph2D->fY
   Double_t   *fZ;            //!Pointer to fGraph2D->fZ
   Double_t   *fXN;           //!Pointer to fDelaunay->fXN
   Double_t   *fYN;           //!Pointer to fDelaunay->fYN
   Double_t   *fEX;           //!Pointer to fGraph2D->fXE
   Double_t   *fEY;           //!Pointer to fGraph2D->fYE
   Double_t   *fEZ;           //!Pointer to fGraph2D->fZE
   Double_t    fXNmin;        //!Equal to fDelaunay->fXNmin
   Double_t    fXNmax;        //!Equal to fDelaunay->fXNmax
   Double_t    fYNmin;        //!Equal to fDelaunay->fYNmin
   Double_t    fYNmax;        //!Equal to fDelaunay->fYNmax
   Double_t    fXmin;         //!
   Double_t    fXmax;         //!
   Double_t    fYmin;         //! fGraph2D->fHistogram limits
   Double_t    fYmax;         //!
   Double_t    fZmin;         //!
   Double_t    fZmax;         //!
   Int_t       fNpoints;      //!Equal to fGraph2D->fNpoints
   Int_t       fNdt;          //!Equal to fDelaunay->fNdt
   Int_t      *fPTried;       //!Pointer to fDelaunay->fPTried
   Int_t      *fNTried;       //!Pointer to fDelaunay->fNTried
   Int_t      *fMTried;       //!Pointer to fDelaunay->fMTried

   TGraphDelaunay *fDelaunay; // Pointer to the TGraphDelaunay to be painted
   TGraph2D *fGraph2D;        // Pointer to the TGraph2D in fDelaunay

   void     FindTriangles();
   void     PaintLevels(Int_t *T, Double_t *x, Double_t *y, Int_t nblev=0, Double_t *glev=0);
   void     PaintPolyMarker0(Int_t n, Double_t *x, Double_t *y);

public:

   TGraph2DPainter();
   TGraph2DPainter(TGraphDelaunay *gd);

   virtual ~TGraph2DPainter();

   TList *GetContourList(Double_t contour);
   void   Paint(Option_t *option);
   void   PaintContour(Option_t *option);
   void   PaintErrors(Option_t *option);
   void   PaintPolyMarker(Option_t *option);
   void   PaintPolyLine(Option_t *option);
   void   PaintTriangles(Option_t *option);

   ClassDef(TGraph2DPainter,0)  // TGraph2D painter
};

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