#ifndef T_HEAL_PAINTER
#define T_HEAL_PAINTER
#include "TString.h"
#include "TVirtualHealPainter.h"
class TAxis;
class TCutG;
class THealPix;
const Int_t kMaxCuts2 = 16;
class THealPainter : public TVirtualHealPainter {
protected:
THealPix* fHeal;
TAxis* fXaxis;
TAxis* fYaxis;
TAxis* fZaxis;
TList* fFunctions;
Double_t* fXbuf;
Double_t* fYbuf;
Int_t fNcuts;
Int_t fCutsOpt[kMaxCuts2];
TCutG* fCuts[kMaxCuts2];
virtual Bool_t Vertices(Int_t bin, Int_t& n, Double_t* x, Double_t* y,
Double_t* xdiv, Double_t* ydiv,
Bool_t* used, Bool_t& divided,
Double_t xmin, Double_t xmax,
Double_t ymin, Double_t ymax);
public:
enum {
kThetaPhi,
kGalactic,
kCelestial,
kLatLong
};
enum {
kEquirect,
kAitoff,
kHammer,
kLambert,
kPolar
};
THealPainter();
virtual ~THealPainter();
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
virtual void DrawPanel();
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
virtual TList* GetContourList(Double_t contour) const;
virtual Bool_t IsInside(Int_t x, Int_t y);
virtual Bool_t IsInside(Double_t x, Double_t y);
virtual Int_t MakeChopt(Option_t* option);
virtual Int_t MakeCuts(char* cutsopt);
virtual void Paint(Option_t* option = "");
virtual void PaintAxis(Bool_t drawGridOnly = kFALSE);
virtual void PaintColorLevels(Option_t* option);
virtual void PaintBoxes(Option_t* option);
virtual void PaintContour(Option_t* option);
virtual void PaintFrame();
virtual void PaintFunction(Option_t* option);
virtual void PaintLego(Option_t* option);
virtual void PaintPalette();
virtual void PaintScatterPlot(Option_t* option);
virtual void PaintStat(Int_t dostat, TF1* fit);
virtual void PaintSurface(Option_t* option);
virtual void PaintTable(Option_t* option);
virtual void PaintTitle();
virtual void PaintTriangles(Option_t *option);
virtual void ProcessMessage(const char* mess, const TObject* obj);
virtual void RecalculateRange();
virtual void SetHealPix(THealPix *hp);
virtual Int_t TableInit();
ClassDef(THealPainter, 0)
};
#endif // T_HEAL_PAINTER