1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpVPainter.h,v 1.8 2006/05/24 13:58:13 ivana Exp $
8 /// \class AliMpVPainter
9 /// \brief Abstract base class for drawing objects into canvas
11 /// \author David Guez, IPN Orsay
13 #ifndef ALI_MP_V_PAINTER_H
14 #define ALI_MP_V_PAINTER_H
21 class AliMpVPainter : public TObject
25 virtual ~AliMpVPainter();
27 void DumpObject() const; // *MENU*
28 virtual void Paint(Option_t *option)=0;
29 virtual TObject* Clone(const char* newname="") const;
30 virtual TObject* DrawClone(Option_t* option) const; // *MENU*
33 TVector2 GetPadPosition() const {return fPadPosition;}
34 TVector2 GetPadDimensions() const {return fPadDimensions;}
35 Int_t GetColor() const {return fColor;}
38 void SetPadPosition(const TVector2 &padPosition){fPadPosition=padPosition;}
39 void SetPadDimension(const TVector2 &padDimensions){fPadDimensions=padDimensions;}
40 void SetColor(Int_t color){fColor=color;}
43 Bool_t IsInside(const TVector2 &point,const TVector2& pos,const TVector2& dim);
44 virtual TVector2 GetPosition() const=0;
45 virtual TVector2 GetDimensions() const=0;
46 void InitGraphContext();
47 void PaintWholeBox(Bool_t fill=kTRUE);
48 virtual Int_t DistancetoPrimitive(Int_t x, Int_t y);
49 TVector2 RealToPad(const TVector2& realPos);
51 static AliMpVPainter *CreatePainter(TObject *object);
54 void AddPainter(AliMpVPainter *painter);
55 AliMpVPainter *DrawObject(TObject *object,Option_t *option="");
58 AliMpVPainter(const AliMpVPainter& right);
59 AliMpVPainter& operator = (const AliMpVPainter& right);
61 Int_t fColor; ///< color
62 TVector2 fPadPosition; ///< position inside the graphics pad
63 TVector2 fPadDimensions; ///< dimensions inside the graphics pad
64 TList *fTrashList; ///< list of painter object created
66 ClassDef(AliMpVPainter,1) // abstract object painter
69 #endif //ALI_MP_V_PAINTER_H