ROOT logo
// @(#)root/graf:$Id$
// Author: Rene Brun   12/05/95

/*************************************************************************
 * 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_TMarker
#define ROOT_TMarker


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TMarker                                                              //
//                                                                      //
// Marker.                                                              //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


#ifndef ROOT_TAttMarker
#include "TAttMarker.h"
#endif
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TAttBBox2D
#include "TAttBBox2D.h"
#endif
#ifndef ROOT_GuiTypes
#include "GuiTypes.h"
#endif

class TPoint;

class TMarker : public TObject, public TAttMarker, public TAttBBox2D {

protected:
   Double_t     fX;           //X position of marker (left,center,etc..)
   Double_t     fY;           //Y position of marker (left,center,etc..)

public:
   // TMarker status bits
   enum { kMarkerNDC = BIT(14) };

   TMarker();
   TMarker(Double_t x, Double_t y, Int_t marker);
   TMarker(const TMarker &marker);
   virtual ~TMarker();

   void             Copy(TObject &marker) const;
   virtual Int_t    DistancetoPrimitive(Int_t px, Int_t py);
   virtual void     Draw(Option_t *option="");
   virtual void     DrawMarker(Double_t x, Double_t y);
   virtual void     ExecuteEvent(Int_t event, Int_t px, Int_t py);
   Double_t         GetX() const  {return fX;}
   Double_t         GetY() const  {return fY;}
   virtual void     ls(Option_t *option="") const;
   virtual void     Paint(Option_t *option="");
   virtual void     PaintMarker(Double_t x, Double_t y);
   virtual void     PaintMarkerNDC(Double_t u, Double_t v);
   virtual void     Print(Option_t *option="") const;
   virtual void     SavePrimitive(ostream &out, Option_t *option = "");
   virtual void     SetNDC(Bool_t isNDC=kTRUE);
   virtual void     SetX(Double_t x) { fX = x;} // *MENU*
   virtual void     SetY(Double_t y) { fY = y;} // *MENU*

   virtual Rectangle_t  GetBBox();
   virtual TPoint       GetBBoxCenter();
   virtual void         SetBBoxCenter(const TPoint &p);
   virtual void         SetBBoxCenterX(const Int_t x);
   virtual void         SetBBoxCenterY(const Int_t y);
   virtual void         SetBBoxX1(const Int_t x);
   virtual void         SetBBoxX2(const Int_t x);
   virtual void         SetBBoxY1(const Int_t y);
   virtual void         SetBBoxY2(const Int_t y);

   static  void     DisplayMarkerTypes();

   ClassDef(TMarker,3)  //Marker
};

#endif

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