#ifndef ROOT_TCurlyLine
#define ROOT_TCurlyLine
#ifndef ROOT_Riosfwd
#include "Riosfwd.h"
#endif
#ifndef ROOT_TPolyLine
#include "TPolyLine.h"
#endif
class TCurlyLine : public TPolyLine {
protected:
Double_t fX1;
Double_t fY1;
Double_t fX2;
Double_t fY2;
Double_t fWaveLength;
Double_t fAmplitude;
Int_t fNsteps;
Bool_t fIsCurly;
static Double_t fgDefaultWaveLength;
static Double_t fgDefaultAmplitude;
static Bool_t fgDefaultIsCurly;
public:
enum {
kTooShort = BIT(11)
};
TCurlyLine(){;}
TCurlyLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2,
Double_t wl = .02,
Double_t amp = .01);
virtual ~TCurlyLine(){;}
virtual void Build();
Int_t DistancetoPrimitive(Int_t px, Int_t py);
void ExecuteEvent(Int_t event, Int_t px, Int_t py);
Bool_t GetCurly() const {return fIsCurly;}
Double_t GetWaveLength() const{return fWaveLength;}
Double_t GetAmplitude() const {return fAmplitude;}
Double_t GetStartX() const {return fX1;}
Double_t GetEndX() const {return fX2;}
Double_t GetStartY() const {return fY1;}
Double_t GetEndY() const {return fY2;}
virtual void SetCurly();
virtual void SetWavy();
virtual void SetWaveLength(Double_t WaveLength);
virtual void SetAmplitude(Double_t x);
virtual void SetStartPoint(Double_t x1, Double_t y1);
virtual void SetEndPoint (Double_t x2, Double_t y2);
virtual void SavePrimitive(ostream &out, Option_t * = "");
static void SetDefaultWaveLength(Double_t WaveLength);
static void SetDefaultAmplitude (Double_t Amplitude );
static void SetDefaultIsCurly (Bool_t IsCurly );
static Double_t GetDefaultWaveLength();
static Double_t GetDefaultAmplitude ();
static Bool_t GetDefaultIsCurly ();
ClassDef(TCurlyLine,2)
};
#endif