#ifndef MHEXAGON_H
#define MHEXAGON_H

//////////////////////////////////////////////////////////////
//
//   MHexagon
//
//   A Hexagon for the MAGIC event display
//
//////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#include <TObject.h>
#endif 

#ifndef ROOT_TAttLine
#include <TAttLine.h>
#endif 

#ifndef ROOT_TAttFill
#include <TAttFill.h>
#endif 

class MGeomPix;

class MHexagon : public TObject, public TAttLine, public TAttFill
{
protected:

    Float_t fX;  // X coordinate  of center
    Float_t fY;  // Y coordinate  of center
    Float_t fD;  // diameter D or better distance between opposite sides

public:

    MHexagon();
    MHexagon(Float_t x, Float_t y, Float_t d);
    MHexagon(MGeomPix &pix);
    MHexagon(const MHexagon &hexagon);
    virtual ~MHexagon();

    void Copy (TObject &hexagon);

    virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
    virtual void  DrawHexagon( Float_t x, Float_t y, Float_t d);

    virtual void  ExecuteEvent(Int_t event, Int_t px, Int_t py);

    virtual void  ls (Option_t *Option="");
    virtual void  Paint(Option_t *Option="");
    virtual void  PaintHexagon(Float_t x, Float_t y, Float_t d);
    virtual void  Print(Option_t *Option="") const;

    ClassDef(MHexagon, 0)    // A hexagon for MAGIC
};

#endif

