ROOT  6.06/09
Reference Guide
TEllipse.h
Go to the documentation of this file.
1 // @(#)root/graf:$Id$
2 // Author: Rene Brun 16/10/95
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TEllipse
13 #define ROOT_TEllipse
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TEllipse //
19 // //
20 // An ellipse. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #ifndef ROOT_TObject
25 #include "TObject.h"
26 #endif
27 #ifndef ROOT_TAttLine
28 #include "TAttLine.h"
29 #endif
30 #ifndef ROOT_TAttFill
31 #include "TAttFill.h"
32 #endif
33 #ifndef ROOT_TAttBBox2D
34 #include "TAttBBox2D.h"
35 #endif
36 #ifndef ROOT_TPoint
37 #include "TPoint.h"
38 #endif
39 #ifndef ROOT_GuiTypes
40 #include "GuiTypes.h"
41 #endif
42 
43 
44 class TEllipse : public TObject, public TAttLine, public TAttFill, public TAttBBox2D {
45 
46 protected:
47  Double_t fX1; //X coordinate of centre
48  Double_t fY1; //Y coordinate of centre
49  Double_t fR1; //first radius
50  Double_t fR2; //second radius
51  Double_t fPhimin; //Minimum angle (degrees)
52  Double_t fPhimax; //Maximum angle (degrees)
53  Double_t fTheta; //Rotation angle (degrees)
54 
55 public:
56  // TEllipse status bits
57  enum {
58  kNoEdges = BIT(9) // don't draw lines connecting center to edges
59  };
60  TEllipse();
61  TEllipse(Double_t x1, Double_t y1,Double_t r1,Double_t r2=0,Double_t phimin=0, Double_t phimax=360,Double_t theta=0);
62  TEllipse(const TEllipse &ellipse);
63  virtual ~TEllipse();
64  void Copy(TObject &ellipse) const;
65  virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
66  virtual void Draw(Option_t *option="");
67  virtual void DrawEllipse(Double_t x1, Double_t y1, Double_t r1,Double_t r2,Double_t phimin, Double_t phimax,Double_t theta,Option_t *option="");
68  virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
69  Double_t GetX1() const {return fX1;}
70  Double_t GetY1() const {return fY1;}
71  Double_t GetR1() const {return fR1;}
72  Double_t GetR2() const {return fR2;}
73  Double_t GetPhimin() const {return fPhimin;}
74  Double_t GetPhimax() const {return fPhimax;}
75  Double_t GetTheta() const {return fTheta;}
76  Bool_t GetNoEdges() const;
77  virtual void ls(Option_t *option="") const;
78  virtual void Paint(Option_t *option="");
79  virtual void PaintEllipse(Double_t x1, Double_t y1, Double_t r1,Double_t r2,Double_t phimin, Double_t phimax,Double_t theta,Option_t *option="");
80  virtual void Print(Option_t *option="") const;
81  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
82  virtual void SetNoEdges(Bool_t noEdges=kTRUE); // *TOGGLE* *GETTER=GetNoEdges
83  virtual void SetPhimin(Double_t phi=0) {fPhimin=phi;} // *MENU*
84  virtual void SetPhimax(Double_t phi=360) {fPhimax=phi;} // *MENU*
85  virtual void SetR1(Double_t r1) {fR1=r1;} // *MENU*
86  virtual void SetR2(Double_t r2) {fR2=r2;} // *MENU*
87  virtual void SetTheta(Double_t theta=0) {fTheta=theta;} // *MENU*
88  virtual void SetX1(Double_t x1) {fX1=x1;} // *MENU*
89  virtual void SetY1(Double_t y1) {fY1=y1;} // *MENU*
90  virtual Rectangle_t GetBBox();
91  virtual TPoint GetBBoxCenter();
92  virtual void SetBBoxCenter(const TPoint &p);
93  virtual void SetBBoxCenterX(const Int_t x);
94  virtual void SetBBoxCenterY(const Int_t y);
95  virtual void SetBBoxX1(const Int_t x);
96  virtual void SetBBoxX2(const Int_t x);
97  virtual void SetBBoxY1(const Int_t y);
98  virtual void SetBBoxY2(const Int_t y);
99 
100 
101  ClassDef(TEllipse,3) //An ellipse
102 };
103 
104 #endif
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to one event.
Definition: TEllipse.cxx:198
virtual void Print(Option_t *option="") const
Dump this ellipse with its attributes.
Definition: TEllipse.cxx:576
virtual void PaintEllipse(Double_t x1, Double_t y1, Double_t r1, Double_t r2, Double_t phimin, Double_t phimax, Double_t theta, Option_t *option="")
Draw this ellipse with new coordinates.
Definition: TEllipse.cxx:527
virtual void DrawEllipse(Double_t x1, Double_t y1, Double_t r1, Double_t r2, Double_t phimin, Double_t phimax, Double_t theta, Option_t *option="")
Draw this ellipse with new coordinates.
Definition: TEllipse.cxx:175
Double_t fX1
Definition: TEllipse.h:47
ClassDef(TAttBBox2D, 0)
const char Option_t
Definition: RtypesCore.h:62
Double_t fY1
Definition: TEllipse.h:48
Double_t GetR1() const
Definition: TEllipse.h:71
virtual void SetBBoxCenterX(const Int_t x)
Set X coordinate of the center of the Ellipse.
Definition: TEllipse.cxx:695
Double_t GetY1() const
Definition: TEllipse.h:70
#define BIT(n)
Definition: Rtypes.h:120
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive as a C++ statement(s) on output stream out.
Definition: TEllipse.cxx:588
virtual void SetTheta(Double_t theta=0)
Definition: TEllipse.h:87
virtual void SetPhimax(Double_t phi=360)
Definition: TEllipse.h:84
Double_t GetPhimax() const
Definition: TEllipse.h:74
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to an ellipse.
Definition: TEllipse.cxx:132
virtual void SetBBoxX1(const Int_t x)
Set left hand side of BoundingBox to a value (resize in x direction on left)
Definition: TEllipse.cxx:712
virtual void SetR1(Double_t r1)
Definition: TEllipse.h:85
virtual void Paint(Option_t *option="")
Paint this ellipse with its current attributes.
Definition: TEllipse.cxx:519
Double_t GetPhimin() const
Definition: TEllipse.h:73
Fill Area Attributes class.
Definition: TAttFill.h:32
Double_t x[n]
Definition: legend1.C:17
virtual void SetBBoxY1(const Int_t y)
Set top of BoundingBox to a value (resize in y direction on top)
Definition: TEllipse.cxx:737
virtual void SetNoEdges(Bool_t noEdges=kTRUE)
if noEdges = kTRUE the lines connecting the center to the edges will not be drawn.
Definition: TEllipse.cxx:620
char * out
Definition: TBase64.cxx:29
virtual void Draw(Option_t *option="")
Draw this ellipse with its current attributes.
Definition: TEllipse.cxx:167
Definition: TPoint.h:33
Double_t fTheta
Definition: TEllipse.h:53
Double_t fR1
Definition: TEllipse.h:49
Double_t fPhimax
Definition: TEllipse.h:52
virtual void SetY1(Double_t y1)
Definition: TEllipse.h:89
virtual void SetBBoxX2(const Int_t x)
Set right hand side of BoundingBox to a value (resize in x direction on right)
Definition: TEllipse.cxx:725
virtual void SetBBoxCenterY(const Int_t y)
Set Y coordinate of the center of the Ellipse.
Definition: TEllipse.cxx:703
virtual void SetX1(Double_t x1)
Definition: TEllipse.h:88
Double_t GetX1() const
Definition: TEllipse.h:69
unsigned int r1[N_CITIES]
Definition: simanTSP.cxx:321
virtual void SetR2(Double_t r2)
Definition: TEllipse.h:86
Double_t GetR2() const
Definition: TEllipse.h:72
Double_t fR2
Definition: TEllipse.h:50
virtual void SetPhimin(Double_t phi=0)
Definition: TEllipse.h:83
virtual ~TEllipse()
Ellipse default destructor.
Definition: TEllipse.cxx:86
static const double x1[5]
double Double_t
Definition: RtypesCore.h:55
virtual TPoint GetBBoxCenter()
Return the center of the Ellipse as TPoint in pixels.
Definition: TEllipse.cxx:675
virtual void SetBBoxCenter(const TPoint &p)
Set center of the Ellipse.
Definition: TEllipse.cxx:686
Double_t y[n]
Definition: legend1.C:17
Draw Ellipses.
Definition: TEllipse.h:44
Bool_t GetNoEdges() const
Return kTRUE if kNoEdges bit is set, kFALSE otherwise.
Definition: TEllipse.cxx:610
Mother of all ROOT objects.
Definition: TObject.h:58
virtual void ls(Option_t *option="") const
List this ellipse with its attributes.
Definition: TEllipse.cxx:510
void Copy(TObject &ellipse) const
Copy this ellipse to ellipse.
Definition: TEllipse.cxx:109
Abstract base class for elements drawn in the editor.
Definition: TAttBBox2D.h:23
Double_t GetTheta() const
Definition: TEllipse.h:75
virtual void SetBBoxY2(const Int_t y)
Set bottom of BoundingBox to a value (resize in y direction on bottom)
Definition: TEllipse.cxx:750
virtual Rectangle_t GetBBox()
Return the bounding Box of the Ellipse, currently not taking into account the rotating angle...
Definition: TEllipse.cxx:662
const Bool_t kTRUE
Definition: Rtypes.h:91
Double_t fPhimin
Definition: TEllipse.h:51
Line Attributes class.
Definition: TAttLine.h:32
unsigned int r2[N_CITIES]
Definition: simanTSP.cxx:322