// @(#)root/graf:$Name: $:$Id: TEllipse.h,v 1.7 2004/03/22 15:56:27 rdm Exp $
// Author: Rene Brun 16/10/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_TEllipse
#define ROOT_TEllipse
//////////////////////////////////////////////////////////////////////////
// //
// TEllipse //
// //
// An ellipse. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TAttLine
#include "TAttLine.h"
#endif
#ifndef ROOT_TAttFill
#include "TAttFill.h"
#endif
class TEllipse : public TObject, public TAttLine, public TAttFill {
protected:
Double_t fX1; //X coordinate of centre
Double_t fY1; //Y coordinate of centre
Double_t fR1; //first radius
Double_t fR2; //second radius
Double_t fPhimin; //Minimum angle (degrees)
Double_t fPhimax; //Maximum angle (degrees)
Double_t fTheta; //Rotation angle (degrees)
public:
// TEllipse status bits
enum {
kNoEdges = BIT(9) // don't draw lines connecting center to edges
};
TEllipse();
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);
TEllipse(const TEllipse &ellipse);
virtual ~TEllipse();
void Copy(TObject &ellipse) const;
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
virtual void Draw(Option_t *option="");
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="");
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
Double_t GetX1() const {return fX1;}
Double_t GetY1() const {return fY1;}
Double_t GetR1() const {return fR1;}
Double_t GetR2() const {return fR2;}
Double_t GetPhimin() const {return fPhimin;}
Double_t GetPhimax() const {return fPhimax;}
Double_t GetTheta() const {return fTheta;}
Bool_t GetNoEdges() const;
virtual void ls(Option_t *option="") const;
virtual void Paint(Option_t *option="");
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="");
virtual void Print(Option_t *option="") const;
virtual void SavePrimitive(ofstream &out, Option_t *option);
virtual void SetNoEdges(Bool_t noEdges=kTRUE); // *TOGGLE* *GETTER=GetNoEdges
virtual void SetPhimin(Double_t phi=0) {fPhimin=phi;} // *MENU*
virtual void SetPhimax(Double_t phi=360) {fPhimax=phi;} // *MENU*
virtual void SetR1(Double_t r1) {fR1=r1;} // *MENU*
virtual void SetR2(Double_t r2) {fR2=r2;} // *MENU*
virtual void SetTheta(Double_t theta=0) {fTheta=theta;} // *MENU*
virtual void SetX1(Double_t x1) {fX1=x1;} // *MENU*
virtual void SetY1(Double_t y1) {fY1=y1;} // *MENU*
ClassDef(TEllipse,2) //An ellipse
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1