Logo ROOT  
Reference Guide
TGeoSphereEditor.cxx
Go to the documentation of this file.
1 // @(#):$Id$
2 // Author: M.Gheata
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2002, 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 /** \class TGeoSphereEditor
13 \ingroup Geometry_builder
14 
15 Editor for a TGeoSphere.
16 
17 \image html geom_sphe_pic.png
18 
19 \image html geom_sphe_ed.png
20 
21 */
22 
23 #include "TGeoSphereEditor.h"
24 #include "TGeoTabManager.h"
25 #include "TGeoSphere.h"
26 #include "TGeoManager.h"
27 #include "TVirtualGeoPainter.h"
28 #include "TVirtualPad.h"
29 #include "TView.h"
30 #include "TGButton.h"
31 #include "TGTextEntry.h"
32 #include "TGNumberEntry.h"
33 #include "TGLabel.h"
34 #include "TGDoubleSlider.h"
35 
37 
42 };
43 
44 ////////////////////////////////////////////////////////////////////////////////
45 /// Constructor for sphere editor
46 
48  Int_t height, UInt_t options, Pixel_t back)
49  : TGeoGedFrame(p, width, height, options | kVerticalFrame, back)
50 {
51  fShape = 0;
52  fRmini = fRmaxi = fTheta1i = fTheta2i = fPhi1i = fPhi2i = 0.0;
53  fNamei = "";
56  fLock = kFALSE;
57 
58  // TextEntry for shape name
59  MakeTitle("Name");
60  fShapeName = new TGTextEntry(this, new TGTextBuffer(50), kSPHERE_NAME);
62  fShapeName->SetToolTipText("Enter the sphere name");
63  fShapeName->Associate(this);
64  AddFrame(fShapeName, new TGLayoutHints(kLHintsLeft, 3, 1, 2, 5));
65 
66  TGTextEntry *nef;
67  MakeTitle("Sphere dimensions");
68  TGCompositeFrame *compxyz = new TGCompositeFrame(this, 118, 30, kVerticalFrame | kRaisedFrame);
69  // Number entry for rmin
70  TGCompositeFrame *f1 = new TGCompositeFrame(compxyz, 118, 10, kHorizontalFrame |
72  f1->AddFrame(new TGLabel(f1, "Rmin"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
73  fERmin = new TGNumberEntry(f1, 0., 5, kSPHERE_RMIN);
76  nef->SetToolTipText("Enter the inner radius");
77  fERmin->Associate(this);
79  f1->AddFrame(fERmin, new TGLayoutHints(kLHintsRight , 2, 2, 4, 4));
80  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft | kLHintsExpandX , 2, 2, 4, 4));
81 
82  // Number entry for Rmax
83  f1 = new TGCompositeFrame(compxyz, 118, 10, kHorizontalFrame |
85  f1->AddFrame(new TGLabel(f1, "Rmax"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
86  fERmax = new TGNumberEntry(f1, 0., 5, kSPHERE_RMAX);
89  nef->SetToolTipText("Enter the outer radius");
90  fERmax->Associate(this);
92  f1->AddFrame(fERmax, new TGLayoutHints(kLHintsRight, 2, 2, 4, 4));
93  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft | kLHintsExpandX , 2, 2, 4, 4));
94  AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 2, 2, 2, 2));
95 
96  MakeTitle("Phi/theta range");
97  TGCompositeFrame *f11 = new TGCompositeFrame(this, 150,200, kHorizontalFrame);
98  compxyz = new TGCompositeFrame(f11, 75, 200, kHorizontalFrame | kRaisedFrame);
99  // Vertical slider
100  fSPhi = new TGDoubleVSlider(compxyz,140);
101  fSPhi->SetRange(0.,720.);
102  compxyz->AddFrame(fSPhi, new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 2, 2, 4, 4));
103  f1 = new TGCompositeFrame(compxyz, 50, 200, kVerticalFrame);
104  f1->AddFrame(new TGLabel(f1, "Phi min."), new TGLayoutHints(kLHintsTop | kLHintsLeft, 2, 2, 2, 2));
105  fEPhi1 = new TGNumberEntry(f1, 0., 5, kSPHERE_PHI1);
108  nef = (TGTextEntry*)fEPhi1->GetNumberEntry();
109  nef->SetToolTipText("Enter the phi1 value");
110  fEPhi1->Associate(this);
111  f1->AddFrame(fEPhi1, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
112 
113  fEPhi2 = new TGNumberEntry(f1, 0., 5, kSPHERE_PHI2);
116  nef = (TGTextEntry*)fEPhi2->GetNumberEntry();
117  nef->SetToolTipText("Enter the phi2 value");
118  fEPhi2->Associate(this);
120  f1->AddFrame(fEPhi2, new TGLayoutHints(kLHintsBottom | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
121  f1->AddFrame(new TGLabel(f1, "Phi max."), new TGLayoutHints(kLHintsBottom | kLHintsLeft, 2, 2, 2, 2));
122  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 2));
123 
124  compxyz->Resize(75,150);
125  f11->AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 0,0,0,0));
126 
127  compxyz = new TGCompositeFrame(f11, 75, 200, kHorizontalFrame | kRaisedFrame);
128  // Vertical slider
129  fSTheta = new TGDoubleVSlider(compxyz,140);
130  fSTheta->SetRange(0.,180.);
131  compxyz->AddFrame(fSTheta, new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 2, 2, 4, 4));
132  f1 = new TGCompositeFrame(compxyz, 50, 200, kVerticalFrame);
133  f1->AddFrame(new TGLabel(f1, "Theta min."), new TGLayoutHints(kLHintsTop | kLHintsLeft, 2, 2, 2, 2));
134  fETheta1 = new TGNumberEntry(f1, 0., 5, kSPHERE_THETA1);
138  nef->SetToolTipText("Enter the theta1 value");
139  fETheta1->Associate(this);
140  f1->AddFrame(fETheta1, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
141 
142  fETheta2 = new TGNumberEntry(f1, 0., 5, kSPHERE_THETA2);
146  nef->SetToolTipText("Enter the theta2 value");
147  fETheta2->Associate(this);
148  f1->AddFrame(fETheta2, new TGLayoutHints(kLHintsBottom | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
149  f1->AddFrame(new TGLabel(f1, "Theta max."), new TGLayoutHints(kLHintsBottom | kLHintsLeft, 2, 2, 2, 2));
150  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 2));
151 
152  compxyz->Resize(75,150);
153  f11->AddFrame(compxyz, new TGLayoutHints(kLHintsRight, 0, 0, 0, 0));
154 
155  AddFrame(f11, new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
156 
157  // Delayed draw
158  f1 = new TGCompositeFrame(this, 155, 10, kHorizontalFrame | kFixedWidth | kSunkenFrame);
159  fDelayed = new TGCheckButton(f1, "Delayed draw");
160  f1->AddFrame(fDelayed, new TGLayoutHints(kLHintsLeft , 2, 2, 4, 4));
161  AddFrame(f1, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
162 
163  // Buttons
164  f1 = new TGCompositeFrame(this, 155, 10, kHorizontalFrame | kFixedWidth);
165  fApply = new TGTextButton(f1, "Apply");
166  f1->AddFrame(fApply, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
167  fApply->Associate(this);
168  fUndo = new TGTextButton(f1, "Undo");
169  f1->AddFrame(fUndo, new TGLayoutHints(kLHintsRight , 2, 2, 4, 4));
170  fUndo->Associate(this);
171  AddFrame(f1, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
173 }
174 
175 ////////////////////////////////////////////////////////////////////////////////
176 /// Destructor.
177 
179 {
180  TGFrameElement *el;
181  TIter next(GetList());
182  while ((el = (TGFrameElement *)next())) {
183  if (el->fFrame->IsComposite())
185  }
186  Cleanup();
187 }
188 
189 ////////////////////////////////////////////////////////////////////////////////
190 /// Connect signals to slots.
191 
193 {
194  fApply->Connect("Clicked()", "TGeoSphereEditor", this, "DoApply()");
195  fUndo->Connect("Clicked()", "TGeoSphereEditor", this, "DoUndo()");
196  fShapeName->Connect("TextChanged(const char *)", "TGeoSphereEditor", this, "DoModified()");
197  fERmin->Connect("ValueSet(Long_t)", "TGeoSphereEditor", this, "DoRmin()");
198  fERmax->Connect("ValueSet(Long_t)", "TGeoSphereEditor", this, "DoRmax()");
199  fEPhi1->Connect("ValueSet(Long_t)", "TGeoSphereEditor", this, "DoPhi1()");
200  fEPhi2->Connect("ValueSet(Long_t)", "TGeoSphereEditor", this, "DoPhi2()");
201  fETheta1->Connect("ValueSet(Long_t)", "TGeoSphereEditor", this, "DoTheta1()");
202  fETheta2->Connect("ValueSet(Long_t)", "TGeoSphereEditor", this, "DoTheta2()");
203  fSPhi->Connect("PositionChanged()", "TGeoSphereEditor", this, "DoPhi()");
204  fSTheta->Connect("PositionChanged()", "TGeoSphereEditor", this, "DoTheta()");
205  fInit = kFALSE;
206 }
207 
208 
209 ////////////////////////////////////////////////////////////////////////////////
210 /// Connect to a given sphere.
211 
213 {
214  if (obj == 0 || (obj->IsA()!=TGeoSphere::Class())) {
215  SetActive(kFALSE);
216  return;
217  }
218  fShape = (TGeoSphere*)obj;
219  fRmini = fShape->GetRmin();
220  fRmaxi = fShape->GetRmax();
221  fPhi1i = fShape->GetPhi1();
222  fPhi2i = fShape->GetPhi2();
225  fNamei = fShape->GetName();
235 
238 
240  SetActive();
241 }
242 
243 ////////////////////////////////////////////////////////////////////////////////
244 /// Check if shape drawing is delayed.
245 
247 {
248  return (fDelayed->GetState() == kButtonDown);
249 }
250 
251 ////////////////////////////////////////////////////////////////////////////////
252 /// Slot for name.
253 
255 {
256  DoModified();
257 }
258 
259 ////////////////////////////////////////////////////////////////////////////////
260 /// Slot for applying modifications.
261 
263 {
264  const char *name = fShapeName->GetText();
265  if (strcmp(name,fShape->GetName())) fShape->SetName(name);
266  Double_t rmin = fERmin->GetNumber();
267  Double_t rmax = fERmax->GetNumber();
268  Double_t phi1 = fEPhi1->GetNumber();
269  Double_t phi2 = fEPhi2->GetNumber();
270  if ((phi2-phi1) > 360.001) {
271  phi1 = 0.;
272  phi2 = 360.;
273  fEPhi1->SetNumber(phi1);
274  fEPhi2->SetNumber(phi2);
275  fLock = kTRUE;
276  fSPhi->SetPosition(phi1,phi2);
277  fLock = kFALSE;
278  }
279  Double_t theta1 = fETheta1->GetNumber();
280  Double_t theta2 = fETheta2->GetNumber();
281  fShape->SetSphDimensions(rmin, rmax, theta1,theta2,phi1,phi2);
282  fShape->ComputeBBox();
283  fUndo->SetEnabled();
285  if (fPad) {
287  fShape->Draw();
288  fPad->GetView()->ShowAxis();
289  } else Update();
290  }
291 }
292 
293 ////////////////////////////////////////////////////////////////////////////////
294 /// Slot for signaling modifications.
295 
297 {
298  fApply->SetEnabled();
299 }
300 
301 ////////////////////////////////////////////////////////////////////////////////
302 /// Slot for undoing last operation.
303 
305 {
314  DoApply();
317 }
318 
319 ////////////////////////////////////////////////////////////////////////////////
320 /// Slot for Rmin.
321 
323 {
324  Double_t rmin = fERmin->GetNumber();
325  Double_t rmax = fERmax->GetNumber();
326  if (rmin <= 0.) {
327  rmin = 0.;
328  fERmin->SetNumber(rmin);
329  }
330  if (rmin >= rmax) {
331  rmin = rmax - 0.1;
332  fERmin->SetNumber(rmin);
333  }
334  DoModified();
335  if (!IsDelayed()) DoApply();
336 }
337 
338 ////////////////////////////////////////////////////////////////////////////////
339 /// Slot for Rmax.
340 
342 {
343  Double_t rmin = fERmin->GetNumber();
344  Double_t rmax = fERmax->GetNumber();
345  if (rmax <= 0.) {
346  rmax = 0.1;
347  fERmax->SetNumber(rmax);
348  }
349  if (rmax < rmin+1.e-10) {
350  rmax = rmin + 0.1;
351  if (rmin < 0.) rmin = 0.;
352  fERmax->SetNumber(rmax);
353  }
354  DoModified();
355  if (!IsDelayed()) DoApply();
356 }
357 
358 ////////////////////////////////////////////////////////////////////////////////
359 /// Slot for phi1.
360 
362 {
363  Double_t phi1 = fEPhi1->GetNumber();
364  Double_t phi2 = fEPhi2->GetNumber();
365  if (phi1 > 360-1.e-10) {
366  phi1 = 0.;
367  fEPhi1->SetNumber(phi1);
368  }
369  if (phi2<phi1+1.e-10) {
370  phi1 = phi2 - 0.1;
371  fEPhi1->SetNumber(phi1);
372  }
373  if (!fLock) {
374  DoModified();
375  fLock = kTRUE;
376  fSPhi->SetPosition(phi1,phi2);
377  } else fLock = kFALSE;
378  if (!IsDelayed()) DoApply();
379 }
380 
381 ////////////////////////////////////////////////////////////////////////////////
382 /// Slot for phi2.
383 
385 {
386  Double_t phi1 = fEPhi1->GetNumber();
387  Double_t phi2 = fEPhi2->GetNumber();
388  if (phi2-phi1 > 360.) {
389  phi2 -= 360.;
390  fEPhi2->SetNumber(phi2);
391  }
392  if (phi2<phi1+1.e-10) {
393  phi2 = phi1 + 0.1;
394  fEPhi2->SetNumber(phi2);
395  }
396  if (!fLock) {
397  DoModified();
398  fLock = kTRUE;
399  fSPhi->SetPosition(phi1,phi2);
400  } else fLock = kFALSE;
401  if (!IsDelayed()) DoApply();
402 }
403 
404 ////////////////////////////////////////////////////////////////////////////////
405 /// Slot for phi slider.
406 
408 {
409  if (!fLock) {
410  DoModified();
411  fLock = kTRUE;
413  fLock = kTRUE;
415  } else fLock = kFALSE;
416  if (!IsDelayed()) DoApply();
417 }
418 
419 ////////////////////////////////////////////////////////////////////////////////
420 /// Slot for theta1.
421 
423 {
424  Double_t theta1 = fETheta1->GetNumber();
425  Double_t theta2 = fETheta2->GetNumber();
426  if (theta2<theta1+1.e-10) {
427  theta2 = theta1 + 0.1;
428  fETheta2->SetNumber(theta2);
429  }
430  if (!fLock) {
431  DoModified();
432  fLock = kTRUE;
433  fSTheta->SetPosition(theta1,theta2);
434  } else fLock = kFALSE;
435  if (!IsDelayed()) DoApply();
436 }
437 
438 ////////////////////////////////////////////////////////////////////////////////
439 /// Slot for theta2.
440 
442 {
443  Double_t theta1 = fETheta1->GetNumber();
444  Double_t theta2 = fETheta2->GetNumber();
445  if (theta2<theta1+1.e-10) {
446  theta1 = theta2 - 0.1;
447  fETheta1->SetNumber(theta1);
448  }
449  if (!fLock) {
450  DoModified();
451  fLock = kTRUE;
452  fSTheta->SetPosition(theta1,theta2);
453  } else fLock = kFALSE;
454  if (!IsDelayed()) DoApply();
455 }
456 
457 ////////////////////////////////////////////////////////////////////////////////
458 /// Slot for theta slider.
459 
461 {
462  if (!fLock) {
463  DoModified();
464  fLock = kTRUE;
466  fLock = kTRUE;
468  } else fLock = kFALSE;
469  if (!IsDelayed()) DoApply();
470 }
kSPHERE_THETA2
@ kSPHERE_THETA2
Definition: TGeoSphereEditor.cxx:40
TGButton::SetEnabled
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:412
TGeoSphereEditor::fSPhi
TGDoubleVSlider * fSPhi
Definition: TGeoSphereEditor.h:51
TGWindow
Definition: TGWindow.h:31
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
TGTextEntry::SetText
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line.
Definition: TGTextEntry.cxx:623
TGeoSphereEditor::fERmax
TGNumberEntry * fERmax
Definition: TGeoSphereEditor.h:46
kFixedWidth
@ kFixedWidth
Definition: GuiTypes.h:387
TGeoTabManager.h
TGCompositeFrame::GetList
virtual TList * GetList() const
Definition: TGFrame.h:347
TGeoSphereEditor::DoModified
void DoModified()
Slot for signaling modifications.
Definition: TGeoSphereEditor.cxx:296
TGDoubleSlider.h
TGeoSphereEditor::DoPhi2
void DoPhi2()
Slot for phi2.
Definition: TGeoSphereEditor.cxx:384
TGDoubleSlider::SetRange
virtual void SetRange(Float_t min, Float_t max)
Definition: TGDoubleSlider.h:116
TNamed::SetName
virtual void SetName(const char *name)
Set the name of the TNamed.
Definition: TNamed.cxx:140
TGNumberEntry::GetDefaultHeight
UInt_t GetDefaultHeight() const
Definition: TGNumberEntry.h:280
kSPHERE_NAME
@ kSPHERE_NAME
Definition: TGeoSphereEditor.cxx:39
TGeoSphere::GetRmin
virtual Double_t GetRmin() const
Definition: TGeoSphere.h:67
gGeoManager
R__EXTERN TGeoManager * gGeoManager
Definition: TGeoManager.h:602
TGCompositeFrame::TGCompositeFrame
TGCompositeFrame(const TGCompositeFrame &)
kButtonDown
@ kButtonDown
Definition: TGButton.h:54
TGeoGedFrame
Common base class for geombuilder editors.
Definition: TGeoGedFrame.h:13
kLHintsTop
@ kLHintsTop
Definition: TGLayout.h:34
Pixel_t
ULong_t Pixel_t
Definition: GuiTypes.h:39
TGFrame::GetSize
TGDimension GetSize() const
Definition: TGFrame.h:255
ClassImp
#define ClassImp(name)
Definition: Rtypes.h:364
kVerticalFrame
@ kVerticalFrame
Definition: GuiTypes.h:381
TGeoSphereEditor::fPhi1i
Double_t fPhi1i
Definition: TGeoSphereEditor.h:36
kLHintsLeft
@ kLHintsLeft
Definition: TGLayout.h:31
TView.h
TGeoSphereEditor::DoRmax
void DoRmax()
Slot for Rmax.
Definition: TGeoSphereEditor.cxx:341
TGTextEntry::SetToolTipText
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
Definition: TGTextEntry.cxx:1663
TGeoSphereEditor::fETheta2
TGNumberEntry * fETheta2
Definition: TGeoSphereEditor.h:48
TGLabel
Definition: TGLabel.h:32
TGCompositeFrame::Cleanup
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition: TGFrame.cxx:952
TGFrame::GetDefaultHeight
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:216
kSPHERE_RMIN
@ kSPHERE_RMIN
Definition: TGeoSphereEditor.cxx:39
kSPHERE_PHI2
@ kSPHERE_PHI2
Definition: TGeoSphereEditor.cxx:40
width
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
TGTextButton
Definition: TGButton.h:142
TGNumberFormat::kNEANonNegative
@ kNEANonNegative
Definition: TGNumberEntry.h:51
TGeoSphereEditor::fShapeName
TGTextEntry * fShapeName
Definition: TGeoSphereEditor.h:44
TGeoSphereEditor::TGeoSphereEditor
TGeoSphereEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for sphere editor.
Definition: TGeoSphereEditor.cxx:47
TGeoGedFrame::Update
virtual void Update()
Override Update from TGedFrame as fGedEditor can be null.
Definition: TGeoGedFrame.cxx:55
TGNumberEntry::GetNumberEntry
TGNumberEntryField * GetNumberEntry() const
Definition: TGNumberEntry.h:268
TGeoSphereEditor::fEPhi2
TGNumberEntry * fEPhi2
Definition: TGeoSphereEditor.h:50
TGeoSphereEditor::fLock
Bool_t fLock
Definition: TGeoSphereEditor.h:42
TGeoTabManager::Cleanup
static void Cleanup(TGCompositeFrame *frame)
Static method to cleanup hierarchically all daughters of a composite frame.
Definition: TGeoTabManager.cxx:88
kSPHERE_RMAX
@ kSPHERE_RMAX
Definition: TGeoSphereEditor.cxx:39
kSPHERE_PHI1
@ kSPHERE_PHI1
Definition: TGeoSphereEditor.cxx:40
kOwnBackground
@ kOwnBackground
Definition: GuiTypes.h:391
bool
TGTextBuffer
Definition: TGTextBuffer.h:30
TGeoSphereEditor::DoPhi
void DoPhi()
Slot for phi slider.
Definition: TGeoSphereEditor.cxx:407
TGFrameElement::fFrame
TGFrame * fFrame
Definition: TGLayout.h:119
TGeoSphereEditor::fSTheta
TGDoubleVSlider * fSTheta
Definition: TGeoSphereEditor.h:52
kLHintsBottom
@ kLHintsBottom
Definition: TGLayout.h:36
TGCheckButton
Definition: TGButton.h:264
TGeoShape::Draw
virtual void Draw(Option_t *option="")
Draw this shape.
Definition: TGeoShape.cxx:721
TGeoSphereEditor::fERmin
TGNumberEntry * fERmin
Definition: TGeoSphereEditor.h:45
TGeoSphereEditor::fApply
TGTextButton * fApply
Definition: TGeoSphereEditor.h:53
TGeoSphere::GetRmax
virtual Double_t GetRmax() const
Definition: TGeoSphere.h:68
TGeoSphereEditor
Editor for a TGeoSphere.
Definition: TGeoSphereEditor.h:28
TGeoSphereEditor::DoApply
virtual void DoApply()
Slot for applying modifications.
Definition: TGeoSphereEditor.cxx:262
kSunkenFrame
@ kSunkenFrame
Definition: GuiTypes.h:383
TGeoSphereEditor::ConnectSignals2Slots
virtual void ConnectSignals2Slots()
Connect signals to slots.
Definition: TGeoSphereEditor.cxx:192
TGeoSphere::ComputeBBox
virtual void ComputeBBox()
compute bounding box of the sphere
Definition: TGeoSphere.cxx:142
TGeoSphereEditor.h
TGeoSphereEditor::DoPhi1
void DoPhi1()
Slot for phi1.
Definition: TGeoSphereEditor.cxx:361
TGNumberEntry::SetNumber
virtual void SetNumber(Double_t val)
Definition: TGNumberEntry.h:186
TGeoSphereEditor::fDelayed
TGCheckButton * fDelayed
Definition: TGeoSphereEditor.h:55
TGeoSphere
Spherical shell class.
Definition: TGeoSphere.h:18
TGeoSphereEditor::DoTheta2
void DoTheta2()
Slot for theta2.
Definition: TGeoSphereEditor.cxx:441
TGWidget::Associate
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:84
TGFrame::Resize
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:590
kSPHERE_PHI
@ kSPHERE_PHI
Definition: TGeoSphereEditor.cxx:40
TGTextEntry
Definition: TGTextEntry.h:39
TGeoGedFrame::fPad
TVirtualPad * fPad
Definition: TGeoGedFrame.h:18
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
TGeoSphereEditor::fIsModified
Bool_t fIsModified
Definition: TGeoSphereEditor.h:40
TGeoSphereEditor::fTheta1i
Double_t fTheta1i
Definition: TGeoSphereEditor.h:34
TGeoSphereEditor::~TGeoSphereEditor
virtual ~TGeoSphereEditor()
Destructor.
Definition: TGeoSphereEditor.cxx:178
TGeoSphere::SetSphDimensions
void SetSphDimensions(Double_t rmin, Double_t rmax, Double_t theta1, Double_t theta2, Double_t phi1, Double_t phi2)
Set spherical segment dimensions.
Definition: TGeoSphere.cxx:1565
kLHintsRight
@ kLHintsRight
Definition: TGLayout.h:33
TGLayoutHints
Definition: TGLayout.h:57
TGeoSphereEditor::DoName
void DoName()
Slot for name.
Definition: TGeoSphereEditor.cxx:254
TVirtualPad.h
kSPHERE_THETA
@ kSPHERE_THETA
Definition: TGeoSphereEditor.cxx:40
TGeoShape::GetName
virtual const char * GetName() const
Get the shape name.
Definition: TGeoShape.cxx:248
kLHintsExpandY
@ kLHintsExpandY
Definition: TGLayout.h:38
TVirtualPad::GetView
virtual TView * GetView() const =0
TGedFrame::MakeTitle
virtual void MakeTitle(const char *title)
Create attribute frame title.
Definition: TGedFrame.cxx:96
TGeoSphere::GetPhi2
Double_t GetPhi2() const
Definition: TGeoSphere.h:72
TGeoSphereEditor::fPhi2i
Double_t fPhi2i
Definition: TGeoSphereEditor.h:37
TView::ShowAxis
virtual void ShowAxis()=0
kRaisedFrame
@ kRaisedFrame
Definition: GuiTypes.h:384
kSPHERE_UNDO
@ kSPHERE_UNDO
Definition: TGeoSphereEditor.cxx:41
unsigned int
TGeoGedFrame::SetActive
virtual void SetActive(Bool_t active=kTRUE)
Set active GUI attribute frames related to the selected object.
Definition: TGeoGedFrame.cxx:35
TGDoubleVSlider
Definition: TGDoubleSlider.h:154
kHorizontalFrame
@ kHorizontalFrame
Definition: GuiTypes.h:382
TGeoSphereEditor::IsDelayed
Bool_t IsDelayed() const
Check if shape drawing is delayed.
Definition: TGeoSphereEditor.cxx:246
TGeoManager.h
TGLabel.h
TGeoSphereEditor::fTheta2i
Double_t fTheta2i
Definition: TGeoSphereEditor.h:35
TGeoSphereEditor::SetModel
virtual void SetModel(TObject *obj)
Connect to a given sphere.
Definition: TGeoSphereEditor.cxx:212
f1
TF1 * f1
Definition: legend1.C:11
TVirtualGeoPainter.h
Double_t
double Double_t
Definition: RtypesCore.h:59
TGeoSphere::GetTheta2
Double_t GetTheta2() const
Definition: TGeoSphere.h:70
TQObject::Connect
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Definition: TQObject.cxx:866
TGeoSphereEditor::fEPhi1
TGNumberEntry * fEPhi1
Definition: TGeoSphereEditor.h:49
TGeoSphereEditor::fRmini
Double_t fRmini
Definition: TGeoSphereEditor.h:32
TGFrame::IsComposite
virtual Bool_t IsComposite() const
Definition: TGFrame.h:237
TGNumberEntry::SetNumAttr
void SetNumAttr(EAttribute attr=kNEAAnyNumber)
Definition: TGNumberEntry.h:255
TGeoSphere::GetTheta1
Double_t GetTheta1() const
Definition: TGeoSphere.h:69
TGButton::GetState
virtual EButtonState GetState() const
Definition: TGButton.h:112
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
TGTextEntry.h
TGButton.h
TGeoManager::GetPainter
TVirtualGeoPainter * GetPainter() const
Definition: TGeoManager.h:213
ETGeoSphereWid
ETGeoSphereWid
Definition: TGeoSphereEditor.cxx:38
name
char name[80]
Definition: TGX11.cxx:110
TGNumberEntry::Associate
virtual void Associate(const TGWindow *w)
Make w the window that will receive the generated messages.
Definition: TGNumberEntry.cxx:2009
TGFrameElement
Definition: TGLayout.h:112
TGTextEntry::GetText
const char * GetText() const
Definition: TGTextEntry.h:134
TGeoSphereEditor::DoUndo
virtual void DoUndo()
Slot for undoing last operation.
Definition: TGeoSphereEditor.cxx:304
TGFrame::SetSize
virtual void SetSize(const TGDimension &s)
Definition: TGFrame.h:277
TIter
Definition: TCollection.h:233
TGDoubleSlider::GetMinPosition
virtual Float_t GetMinPosition() const
Definition: TGDoubleSlider.h:127
TGNumberEntry.h
kSPHERE_APPLY
@ kSPHERE_APPLY
Definition: TGeoSphereEditor.cxx:41
TGNumberEntry::GetNumber
virtual Double_t GetNumber() const
Definition: TGNumberEntry.h:206
kLHintsExpandX
@ kLHintsExpandX
Definition: TGLayout.h:37
TGNumberEntry
Definition: TGNumberEntry.h:157
kSPHERE_THETA1
@ kSPHERE_THETA1
Definition: TGeoSphereEditor.cxx:39
TGeoSphereEditor::fRmaxi
Double_t fRmaxi
Definition: TGeoSphereEditor.h:33
TGeoSphereEditor::DoRmin
void DoRmin()
Slot for Rmin.
Definition: TGeoSphereEditor.cxx:322
TGedFrame::fInit
Bool_t fInit
Definition: TGedFrame.h:53
Class
void Class()
Definition: Class.C:29
TGCompositeFrame
Definition: TGFrame.h:324
TGeoSphereEditor::fIsShapeEditable
Bool_t fIsShapeEditable
Definition: TGeoSphereEditor.h:41
TGCompositeFrame::AddFrame
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1102
TGeoSphereEditor::fUndo
TGTextButton * fUndo
Definition: TGeoSphereEditor.h:54
TGeoSphereEditor::fNamei
TString fNamei
Definition: TGeoSphereEditor.h:38
TVirtualGeoPainter::IsPaintingShape
virtual Bool_t IsPaintingShape() const =0
TGeoSphereEditor::DoTheta
void DoTheta()
Slot for theta slider.
Definition: TGeoSphereEditor.cxx:460
TGeoSphere.h
TGeoSphere::GetPhi1
Double_t GetPhi1() const
Definition: TGeoSphere.h:71
TGeoSphereEditor::fShape
TGeoSphere * fShape
Definition: TGeoSphereEditor.h:39
TGeoSphereEditor::fETheta1
TGNumberEntry * fETheta1
Definition: TGeoSphereEditor.h:47
TGDoubleSlider::SetPosition
virtual void SetPosition(Float_t min, Float_t max)
Definition: TGDoubleSlider.h:121
int
TGDoubleSlider::GetMaxPosition
virtual Float_t GetMaxPosition() const
Definition: TGDoubleSlider.h:131
TGeoSphereEditor::DoTheta1
void DoTheta1()
Slot for theta1.
Definition: TGeoSphereEditor.cxx:422