ROOT  6.06/09
Reference Guide
TCurlyLine.h
Go to the documentation of this file.
1 // @(#)root/graf:$Id$
2 // Author: Otto Schaile 20/11/99
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 #ifndef ROOT_TCurlyLine
12 #define ROOT_TCurlyLine
13 
14 // This class implements a curly or wavy polyline typically
15 // used to draw Feynman diagrams.
16 
17 #ifndef ROOT_Riosfwd
18 #include "Riosfwd.h"
19 #endif
20 #ifndef ROOT_TPolyLine
21 #include "TPolyLine.h"
22 #endif
23 #ifndef ROOT_TAttBBox2D
24 #include "TAttBBox2D.h"
25 #endif
26 #ifndef ROOT_GuiTypes
27 #include "GuiTypes.h"
28 #endif
29 
30 class TPoint;
31 
32 class TCurlyLine : public TPolyLine , public TAttBBox2D {
33 
34 protected:
35  Double_t fX1; // start x, center for arc
36  Double_t fY1; // start y, center for arc
37  Double_t fX2; // end x
38  Double_t fY2; // end y
39  Double_t fWaveLength; // wavelength of sinusoid in percent of pad height
40  Double_t fAmplitude; // amplitude of sinusoid in percent of pad height
41  Int_t fNsteps; // used internally (controls precision)
42  Bool_t fIsCurly; // true: Gluon, false: Gamma
43 
44  static Double_t fgDefaultWaveLength; //default wavelength
45  static Double_t fgDefaultAmplitude; //default amplitude
46  static Bool_t fgDefaultIsCurly; //default curly type
47 
48 public:
49  TCurlyLine();
51  Double_t wl = .02,
52  Double_t amp = .01);
53  virtual ~TCurlyLine(){;}
54  virtual void Build();
56  void ExecuteEvent(Int_t event, Int_t px, Int_t py);
57  Bool_t GetCurly() const {return fIsCurly;}
59  Double_t GetAmplitude() const {return fAmplitude;}
60  Double_t GetStartX() const {return fX1;}
61  Double_t GetEndX() const {return fX2;}
62  Double_t GetStartY() const {return fY1;}
63  Double_t GetEndY() const {return fY2;}
64  virtual void SetCurly(); // *MENU*
65  virtual void SetWavy(); // *MENU*
66  virtual void SetWaveLength(Double_t WaveLength); // *MENU* *ARGS={WaveLength=>fWaveLength}
67  virtual void SetAmplitude(Double_t x); // *MENU* *ARGS={x=>fAmplitude}
68  virtual void SetStartPoint(Double_t x1, Double_t y1);
69  virtual void SetEndPoint (Double_t x2, Double_t y2);
70  virtual void SavePrimitive(std::ostream &out, Option_t * = "");
71 
72  static void SetDefaultWaveLength(Double_t WaveLength);
73  static void SetDefaultAmplitude (Double_t Amplitude );
74  static void SetDefaultIsCurly (Bool_t IsCurly );
76  static Double_t GetDefaultAmplitude ();
77  static Bool_t GetDefaultIsCurly ();
78  virtual Rectangle_t GetBBox();
79  virtual TPoint GetBBoxCenter();
80  virtual void SetBBoxCenter(const TPoint &p);
81  virtual void SetBBoxCenterX(const Int_t x);
82  virtual void SetBBoxCenterY(const Int_t y);
83  virtual void SetBBoxX1(const Int_t x);
84  virtual void SetBBoxX2(const Int_t x);
85  virtual void SetBBoxY1(const Int_t y);
86  virtual void SetBBoxY2(const Int_t y);
87 
88  ClassDef(TCurlyLine,3) // A curly polyline
89 };
90 
91 #endif
static Double_t GetDefaultWaveLength()
Get default wave length.
Definition: TCurlyLine.cxx:441
Bool_t GetCurly() const
Definition: TCurlyLine.h:57
virtual Rectangle_t GetBBox()
Return the bounding Box of the CurlyLine.
Definition: TCurlyLine.cxx:465
static Bool_t GetDefaultIsCurly()
Get default "IsCurly".
Definition: TCurlyLine.cxx:457
Bool_t fIsCurly
Definition: TCurlyLine.h:42
ClassDef(TAttBBox2D, 0)
Double_t fY2
Definition: TCurlyLine.h:38
const char Option_t
Definition: RtypesCore.h:62
virtual void SetBBoxCenterX(const Int_t x)
Set X coordinate of the center of the BoundingBox.
Definition: TCurlyLine.cxx:530
Double_t fX1
Definition: TCurlyLine.h:35
Double_t GetEndY() const
Definition: TCurlyLine.h:63
Double_t fY1
Definition: TCurlyLine.h:36
static void SetDefaultIsCurly(Bool_t IsCurly)
Set default "IsCurly".
Definition: TCurlyLine.cxx:433
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual ~TCurlyLine()
Definition: TCurlyLine.h:53
static const double x2[5]
Double_t x[n]
Definition: legend1.C:17
virtual void SetWaveLength(Double_t WaveLength)
Set wave length.
Definition: TCurlyLine.cxx:379
virtual void SetStartPoint(Double_t x1, Double_t y1)
Set start point.
Definition: TCurlyLine.cxx:397
Implements curly or wavy polylines used to draw Feynman diagrams.
Definition: TCurlyLine.h:32
virtual void SavePrimitive(std::ostream &out, Option_t *="")
Save primitive as a C++ statement(s) on output stream out.
Definition: TCurlyLine.cxx:341
Double_t GetWaveLength() const
Definition: TCurlyLine.h:58
virtual void SetCurly()
Set curly.
Definition: TCurlyLine.cxx:361
virtual void SetBBoxCenter(const TPoint &p)
Set center of the BoundingBox.
Definition: TCurlyLine.cxx:500
virtual void SetBBoxX2(const Int_t x)
Set right hands ide of BoundingBox to a value (resize in x direction on right)
Definition: TCurlyLine.cxx:575
char * out
Definition: TBase64.cxx:29
Int_t fNsteps
Definition: TCurlyLine.h:41
Definition: TPoint.h:33
Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to a line.
Definition: TCurlyLine.cxx:170
static Double_t GetDefaultAmplitude()
Get default amplitude.
Definition: TCurlyLine.cxx:449
virtual void SetEndPoint(Double_t x2, Double_t y2)
Set end point.
Definition: TCurlyLine.cxx:407
static Double_t fgDefaultWaveLength
Definition: TCurlyLine.h:44
void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to one event.
Definition: TCurlyLine.cxx:186
static void SetDefaultAmplitude(Double_t Amplitude)
Set default amplitude.
Definition: TCurlyLine.cxx:425
Double_t GetStartX() const
Definition: TCurlyLine.h:60
Double_t GetAmplitude() const
Definition: TCurlyLine.h:59
Double_t GetEndX() const
Definition: TCurlyLine.h:61
static Bool_t fgDefaultIsCurly
Definition: TCurlyLine.h:46
static const double x1[5]
double Double_t
Definition: RtypesCore.h:55
virtual void SetWavy()
Set wavy.
Definition: TCurlyLine.cxx:370
virtual TPoint GetBBoxCenter()
Return the center of the BoundingBox as TPoint in pixels.
Definition: TCurlyLine.cxx:489
Double_t y[n]
Definition: legend1.C:17
static void SetDefaultWaveLength(Double_t WaveLength)
Set default wave length.
Definition: TCurlyLine.cxx:417
Double_t fX2
Definition: TCurlyLine.h:37
Double_t fWaveLength
Definition: TCurlyLine.h:39
Abstract base class for elements drawn in the editor.
Definition: TAttBBox2D.h:23
Double_t GetStartY() const
Definition: TCurlyLine.h:62
virtual void SetBBoxY1(const Int_t y)
Set top of BoundingBox to a value (resize in y direction on top)
Definition: TCurlyLine.cxx:586
Double_t fAmplitude
Definition: TCurlyLine.h:40
Defined by an array on N points in a 2-D space.
Definition: TPolyLine.h:40
virtual void SetBBoxCenterY(const Int_t y)
Set Y coordinate of the center of the BoundingBox.
Definition: TCurlyLine.cxx:546
virtual void SetBBoxX1(const Int_t x)
Set left hand side of BoundingBox to a value (resize in x direction on left)
Definition: TCurlyLine.cxx:563
virtual void SetBBoxY2(const Int_t y)
Set bottom of BoundingBox to a value (resize in y direction on bottom)
Definition: TCurlyLine.cxx:598
virtual void SetAmplitude(Double_t x)
Set amplitude.
Definition: TCurlyLine.cxx:388
virtual void Build()
Create a curly (Gluon) or wavy (Gamma) line.
Definition: TCurlyLine.cxx:78
static Double_t fgDefaultAmplitude
Definition: TCurlyLine.h:45