Logo ROOT   6.16/01
Reference Guide
TGeoConeEditor.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 TGeoConeEditor
13\ingroup Geometry_builder
14
15Editor for a TGeoCone.
16
17\image html geom_cone_pic.png
18
19\image html geom_cone_ed.png
20
21*/
22
23
24#include "TGeoConeEditor.h"
25#include "TGeoTabManager.h"
26#include "TGeoCone.h"
27#include "TGeoManager.h"
28#include "TVirtualGeoPainter.h"
29#include "TPad.h"
30#include "TView.h"
31#include "TGTab.h"
32#include "TGComboBox.h"
33#include "TGButton.h"
34#include "TGTextEntry.h"
35#include "TGNumberEntry.h"
36#include "TGLabel.h"
37#include "TGDoubleSlider.h"
38
40
44};
45
46////////////////////////////////////////////////////////////////////////////////
47/// Constructor for volume editor
48
50 Int_t height, UInt_t options, Pixel_t back)
51 : TGeoGedFrame(p, width, height, options | kVerticalFrame, back)
52{
53 fShape = 0;
54 fRmini1 = fRmaxi1 = fRmini2 = fRmaxi2 = fDzi = 0.0;
55 fNamei = "";
58
59 // TextEntry for shape name
60 MakeTitle("Name");
61 fShapeName = new TGTextEntry(this, new TGTextBuffer(50), kCONE_NAME);
63 fShapeName->SetToolTipText("Enter the cone name");
64 fShapeName->Associate(this);
66
67 TGTextEntry *nef;
68 MakeTitle("Cone dimensions");
69 TGCompositeFrame *compxyz = new TGCompositeFrame(this, 118, 30, kVerticalFrame | kRaisedFrame);
70
71 // Number entry for Rmin1
73 f1->AddFrame(new TGLabel(f1, "Rmin1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
74 fERmin1 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN1);
77 nef->SetToolTipText("Enter the inner radius");
78 fERmin1->Associate(this);
80 f1->AddFrame(fERmin1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
81 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
82
83 // Number entry for Rmax1
84 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
85 f1->AddFrame(new TGLabel(f1, "Rmax1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
86 fERmax1 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX1);
89 nef->SetToolTipText("Enter the outer radius");
90 fERmax1->Associate(this);
92 f1->AddFrame(fERmax1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
93 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
94
95 // Number entry for Rmin2
96 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
97 f1->AddFrame(new TGLabel(f1, "Rmin2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
98 fERmin2 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN2);
101 nef->SetToolTipText("Enter the inner radius");
102 fERmin2->Associate(this);
104 f1->AddFrame(fERmin2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
105 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
106
107 // Number entry for Rmax2
108 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
109 f1->AddFrame(new TGLabel(f1, "Rmax2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
110 fERmax2 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX2);
113 nef->SetToolTipText("Enter the outer radius");
114 fERmax2->Associate(this);
116 f1->AddFrame(fERmax2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
117 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
118
119 // Number entry for dz
120 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
121 f1->AddFrame(new TGLabel(f1, "DZ"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
122 fEDz = new TGNumberEntry(f1, 0., 5, kCONE_Z);
125 nef->SetToolTipText("Enter the cone half-lenth in Z");
126 fEDz->Associate(this);
128 f1->AddFrame(fEDz, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
129 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
130
131 compxyz->Resize(150,30);
132 AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
133
134 // Delayed draw
136 fDelayed = new TGCheckButton(fDFrame, "Delayed draw");
138 AddFrame(fDFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
139
140 // Buttons
142 fApply = new TGTextButton(fBFrame, "Apply");
143 fBFrame->AddFrame(fApply, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
144 fApply->Associate(this);
145 fUndo = new TGTextButton(fBFrame, "Undo");
146 fBFrame->AddFrame(fUndo, new TGLayoutHints(kLHintsRight , 2, 2, 4, 4));
147 fUndo->Associate(this);
148 AddFrame(fBFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
150}
151
152////////////////////////////////////////////////////////////////////////////////
153/// Destructor
154
156{
157 TGFrameElement *el;
158 TIter next(GetList());
159 while ((el = (TGFrameElement *)next())) {
160 if (el->fFrame->IsComposite())
162 }
163 Cleanup();
164}
165
166////////////////////////////////////////////////////////////////////////////////
167/// Connect signals to slots.
168
170{
171 fApply->Connect("Clicked()", "TGeoConeEditor", this, "DoApply()");
172 fUndo->Connect("Clicked()", "TGeoConeEditor", this, "DoUndo()");
173 fShapeName->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoModified()");
174 fERmin1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin1()");
175 fERmin2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin2()");
176 fERmax1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax1()");
177 fERmax2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax2()");
178 fEDz->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoDz()");
179 fERmin1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin1()");
180 fERmin2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin2()");
181 fERmax1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax1()");
182 fERmax2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax2()");
183 fEDz->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoDz()");
184 fInit = kFALSE;
185}
186
187
188////////////////////////////////////////////////////////////////////////////////
189/// Connect to the selected object.
190
192{
193 if (obj == 0 || (obj->IsA()!=TGeoCone::Class())) {
195 return;
196 }
197 fShape = (TGeoCone*)obj;
202 fDzi = fShape->GetDz();
203 fNamei = fShape->GetName();
212
214 SetActive();
215}
216
217////////////////////////////////////////////////////////////////////////////////
218/// Check if shape drawing is delayed.
219
221{
222 return (fDelayed->GetState() == kButtonDown);
223}
224
225////////////////////////////////////////////////////////////////////////////////
226/// Slot for name.
227
229{
230 DoModified();
231}
232
233////////////////////////////////////////////////////////////////////////////////
234///Slot for applying current parameters.
235
237{
239 const char *name = fShapeName->GetText();
240 if (strcmp(name,fShape->GetName())) fShape->SetName(name);
241 Double_t rmin1 = fERmin1->GetNumber();
242 Double_t rmin2 = fERmin2->GetNumber();
243 Double_t rmax1 = fERmax1->GetNumber();
244 Double_t rmax2 = fERmax2->GetNumber();
245 Double_t dz = fEDz->GetNumber();
246 if (rmin1<0 || rmin1>rmax1) return;
247 if (rmin2<0 || rmin2>rmax2) return;
248 if (dz<=0) return;
249 if (rmin1==rmax1 && rmin2==rmax2) return;
250 fShape->SetConeDimensions(dz, rmin1, rmax1, rmin2, rmax2);
252 fUndo->SetEnabled();
253 if (fPad) {
255 fShape->Draw();
256 fPad->GetView()->ShowAxis();
257 } else Update();
258 }
259}
260
261////////////////////////////////////////////////////////////////////////////////
262///Slot for modifying current parameters.
263
265{
267}
268
269////////////////////////////////////////////////////////////////////////////////
270/// Slot for undoing current operation.
271
273{
279 DoApply();
282}
283
284////////////////////////////////////////////////////////////////////////////////
285/// Slot for Rmin1
286
288{
289 Double_t rmin1 = fERmin1->GetNumber();
290 Double_t rmax1 = fERmax1->GetNumber();
291 if (rmin1<0) {
292 rmin1 = 0;
293 fERmin1->SetNumber(rmin1);
294 }
295 if (rmin1>rmax1) {
296 rmin1 = rmax1;
297 fERmin1->SetNumber(rmin1);
298 }
299 DoModified();
300 if (!IsDelayed()) DoApply();
301}
302
303////////////////////////////////////////////////////////////////////////////////
304/// Slot for Rmax1
305
307{
308 Double_t rmin1 = fERmin1->GetNumber();
309 Double_t rmax1 = fERmax1->GetNumber();
310 if (rmax1<rmin1) {
311 rmax1 = rmin1;
312 fERmax1->SetNumber(rmax1);
313 }
314 DoModified();
315 if (!IsDelayed()) DoApply();
316}
317
318////////////////////////////////////////////////////////////////////////////////
319/// Slot for Rmin2
320
322{
323 Double_t rmin2 = fERmin2->GetNumber();
324 Double_t rmax2 = fERmax2->GetNumber();
325 if (rmin2<0) {
326 rmin2 = 0;
327 fERmin2->SetNumber(rmin2);
328 }
329 if (rmin2>rmax2) {
330 rmin2 = rmax2;
331 fERmin2->SetNumber(rmin2);
332 }
333 DoModified();
334 if (!IsDelayed()) DoApply();
335}
336
337////////////////////////////////////////////////////////////////////////////////
338/// Slot for Rmax2
339
341{
342 Double_t rmin2 = fERmin2->GetNumber();
343 Double_t rmax2 = fERmax2->GetNumber();
344 if (rmax2<rmin2) {
345 rmax2 = rmin2;
346 fERmax2->SetNumber(rmax2);
347 }
348 DoModified();
349 if (!IsDelayed()) DoApply();
350}
351
352////////////////////////////////////////////////////////////////////////////////
353/// Slot for Dz
354
356{
357 Double_t dz = fEDz->GetNumber();
358 if (dz<=0) {
359 dz = 0.1;
360 fEDz->SetNumber(dz);
361 }
362 DoModified();
363 if (!IsDelayed()) DoApply();
364}
365
366/** \class TGeoConeSegEditor
367\ingroup Geometry_builder
368
369Editor for a cone segment.
370
371\image html geom_cons_pic.png
372
373\image html geom_cons_ed.png
374
375*/
376
378
382
383////////////////////////////////////////////////////////////////////////////////
384/// Constructor for cone segment editor
385
387 Int_t height, UInt_t options, Pixel_t back)
388 : TGeoConeEditor(p, width, height, options | kVerticalFrame, back)
389{
390 fLock = kFALSE;
391 MakeTitle("Phi range");
392 TGTextEntry *nef;
394 // Vertical slider
395 fSPhi = new TGDoubleVSlider(compxyz,100);
396 fSPhi->SetRange(0.,720.);
398 compxyz->AddFrame(fSPhi, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
400 f1->AddFrame(new TGLabel(f1, "Phi min."), new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 6, 0));
401 fEPhi1 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI1);
405 nef->SetToolTipText("Enter the phi1 value");
406 fEPhi1->Associate(this);
407 f1->AddFrame(fEPhi1, new TGLayoutHints(kLHintsTop | kLHintsRight, 2, 2, 2, 2));
408
409 fEPhi2 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI2);
413 nef->SetToolTipText("Enter the phi2 value");
414 fEPhi2->Associate(this);
415 f1->AddFrame(fEPhi2, new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 2, 2));
416 f1->AddFrame(new TGLabel(f1, "Phi max."), new TGLayoutHints(kLHintsBottom, 0, 0, 6, 2));
417 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
418
419// compxyz->Resize(150,150);
420 AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
423}
424
425////////////////////////////////////////////////////////////////////////////////
426/// Destructor
427
429{
430 TGFrameElement *el;
431 TIter next(GetList());
432 while ((el = (TGFrameElement *)next())) {
433 if (el->fFrame->IsComposite())
435 }
436 Cleanup();
437}
438
439////////////////////////////////////////////////////////////////////////////////
440/// Connect signals to slots.
441
443{
445 Disconnect(fApply, "Clicked()",(TGeoConeEditor*)this, "DoApply()");
446 Disconnect(fUndo, "Clicked()",(TGeoConeEditor*)this, "DoUndo()");
447 fApply->Connect("Clicked()", "TGeoConeSegEditor", this, "DoApply()");
448 fUndo->Connect("Clicked()", "TGeoConeSegEditor", this, "DoUndo()");
449 fEPhi1->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi1()");
450 fEPhi2->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi2()");
451// fEPhi1->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi1()");
452// fEPhi2->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi2()");
453 fSPhi->Connect("PositionChanged()","TGeoConeSegEditor", this, "DoPhi()");
454}
455
456////////////////////////////////////////////////////////////////////////////////
457/// Connect to the selected object.
458
460{
461 if (obj == 0 || (obj->IsA()!=TGeoConeSeg::Class())) {
463 return;
464 }
465 fShape = (TGeoCone*)obj;
470 fDzi = fShape->GetDz();
471 fNamei = fShape->GetName();
472 fPmini = ((TGeoConeSeg*)fShape)->GetPhi1();
473 fPmaxi = ((TGeoConeSeg*)fShape)->GetPhi2();
485
487 SetActive();
488}
489
490////////////////////////////////////////////////////////////////////////////////
491///Slot for Phi1
492
494{
495 Double_t phi1 = fEPhi1->GetNumber();
496 Double_t phi2 = fEPhi2->GetNumber();
497 if (phi1 > 360-1.e-10) {
498 phi1 = 0.;
499 fEPhi1->SetNumber(phi1);
500 }
501 if (phi2<phi1+1.e-10) {
502 phi1 = phi2 - 0.1;
503 fEPhi1->SetNumber(phi1);
504 }
505 if (!fLock) {
506 DoModified();
507 fLock = kTRUE;
508 fSPhi->SetPosition(phi1,phi2);
509 } else fLock = kFALSE;
510 if (!IsDelayed()) DoApply();
511}
512
513////////////////////////////////////////////////////////////////////////////////
514/// Slot for Phi2
515
517{
518 Double_t phi1 = fEPhi1->GetNumber();
519 Double_t phi2 = fEPhi2->GetNumber();
520 if (phi2-phi1 > 360.) {
521 phi2 -= 360.;
522 fEPhi2->SetNumber(phi2);
523 }
524 if (phi2<phi1+1.e-10) {
525 phi2 = phi1 + 0.1;
526 fEPhi2->SetNumber(phi2);
527 }
528 if (!fLock) {
529 DoModified();
530 fLock = kTRUE;
531 fSPhi->SetPosition(phi1,phi2);
532 } else fLock = kFALSE;
533 if (!IsDelayed()) DoApply();
534}
535
536////////////////////////////////////////////////////////////////////////////////
537/// Slot for Phi
538
540{
541 if (!fLock) {
542 DoModified();
543 fLock = kTRUE;
545 fLock = kTRUE;
547 } else fLock = kFALSE;
548 if (!IsDelayed()) DoApply();
549}
550
551////////////////////////////////////////////////////////////////////////////////
552/// Slot for applying current parameters.
553
555{
557 const char *name = fShapeName->GetText();
558 if (strcmp(name,fShape->GetName())) fShape->SetName(name);
559 Double_t rmin1 = fERmin1->GetNumber();
560 Double_t rmax1 = fERmax1->GetNumber();
561 if (rmin1<0 || rmax1<rmin1) return;
562 Double_t rmin2 = fERmin2->GetNumber();
563 Double_t rmax2 = fERmax2->GetNumber();
564 if (rmin2<0 || rmax2<rmin2) return;
565 Double_t dz = fEDz->GetNumber();
566 Double_t phi1 = fEPhi1->GetNumber();
567 Double_t phi2 = fEPhi2->GetNumber();
568 if ((phi2-phi1) > 360.001) {
569 phi1 = 0.;
570 phi2 = 360.;
571 fEPhi1->SetNumber(phi1);
572 fEPhi2->SetNumber(phi2);
573 fLock = kTRUE;
574 fSPhi->SetPosition(phi1,phi2);
575 fLock = kFALSE;
576 }
577 ((TGeoConeSeg*)fShape)->SetConsDimensions(dz, rmin1, rmax1, rmin2,rmax2, phi1, phi2);
579 fUndo->SetEnabled();
580 if (fPad) {
582 fShape->Draw();
583 fPad->GetView()->ShowAxis();
584 } else Update();
585 }
586}
587
588////////////////////////////////////////////////////////////////////////////////
589/// Slot for undoing last operation.
590
592{
601 DoApply();
604}
605
606
607
608
void Class()
Definition: Class.C:29
ULong_t Pixel_t
Definition: GuiTypes.h:39
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
const Bool_t kTRUE
Definition: RtypesCore.h:87
#define ClassImp(name)
Definition: Rtypes.h:363
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
@ kButtonDown
Definition: TGButton.h:54
@ kRaisedFrame
Definition: TGFrame.h:62
@ kSunkenFrame
Definition: TGFrame.h:61
@ kVerticalFrame
Definition: TGFrame.h:59
@ kFixedWidth
Definition: TGFrame.h:65
@ kHorizontalFrame
Definition: TGFrame.h:60
@ kFixedHeight
Definition: TGFrame.h:67
@ kLHintsRight
Definition: TGLayout.h:33
@ kLHintsLeft
Definition: TGLayout.h:31
@ kLHintsBottom
Definition: TGLayout.h:36
@ kLHintsTop
Definition: TGLayout.h:34
ETGeoConeWid
@ kCONE_RMAX2
@ kCONE_NAME
@ kCONE_RMIN2
@ kCONE_Z
@ kCONE_RMAX1
@ kCONE_RMIN1
@ kCONE_APPLY
@ kCONE_UNDO
ETGeoConeSegWid
@ kCONESEG_PHI
@ kCONESEG_PHI2
@ kCONESEG_PHI1
R__EXTERN TGeoManager * gGeoManager
Definition: TGeoManager.h:572
virtual EButtonState GetState() const
Definition: TGButton.h:112
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:409
virtual TList * GetList() const
Definition: TGFrame.h:369
TGCompositeFrame(const TGCompositeFrame &)
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1099
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition: TGFrame.cxx:949
virtual Float_t GetMaxPosition() const
virtual Float_t GetMinPosition() const
virtual void SetRange(Float_t min, Float_t max)
virtual void SetPosition(Float_t min, Float_t max)
TGFrame * fFrame
Definition: TGLayout.h:119
virtual void SetSize(const TGDimension &s)
Definition: TGFrame.h:299
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:237
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:238
TGDimension GetSize() const
Definition: TGFrame.h:277
virtual Bool_t IsComposite() const
Definition: TGFrame.h:259
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
virtual void SetNumber(Double_t val)
UInt_t GetDefaultHeight() const
TGNumberEntryField * GetNumberEntry() const
virtual void Associate(const TGWindow *w)
Make w the window that will receive the generated messages.
void SetNumAttr(EAttribute attr=kNEAAnyNumber)
virtual Double_t GetNumber() const
const char * GetText() const
Definition: TGTextEntry.h:134
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
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.
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:84
Bool_t fInit
Definition: TGedFrame.h:53
virtual void MakeTitle(const char *title)
Create attribute frame title.
Definition: TGedFrame.cxx:96
Editor for a TGeoCone.
TGNumberEntry * fERmin1
TGeoCone * fShape
Bool_t fIsShapeEditable
Double_t fRmini2
TGCompositeFrame * fDFrame
void DoModified()
Slot for modifying current parameters.
Double_t fRmaxi2
TGTextButton * fUndo
virtual void ConnectSignals2Slots()
Connect signals to slots.
TGCheckButton * fDelayed
virtual ~TGeoConeEditor()
Destructor.
TGNumberEntry * fEDz
TGNumberEntry * fERmax1
virtual void SetModel(TObject *obj)
Connect to the selected object.
void DoRmin2()
Slot for Rmin2.
virtual void DoUndo()
Slot for undoing current operation.
Double_t fRmaxi1
TGeoConeEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for volume editor.
Double_t fRmini1
void DoName()
Slot for name.
TGNumberEntry * fERmax2
TGCompositeFrame * fBFrame
void DoRmin1()
Slot for Rmin1.
void DoRmax1()
Slot for Rmax1.
TGTextEntry * fShapeName
TGNumberEntry * fERmin2
void DoDz()
Slot for Dz.
void DoRmax2()
Slot for Rmax2.
Bool_t IsDelayed() const
Check if shape drawing is delayed.
TGTextButton * fApply
virtual void DoApply()
Slot for applying current parameters.
Editor for a cone segment.
void DoPhi1()
Slot for Phi1.
TGNumberEntry * fEPhi2
virtual void SetModel(TObject *obj)
Connect to the selected object.
virtual void DoApply()
Slot for applying current parameters.
virtual void ConnectSignals2Slots()
Connect signals to slots.
TGDoubleVSlider * fSPhi
void DoPhi2()
Slot for Phi2.
virtual ~TGeoConeSegEditor()
Destructor.
TGNumberEntry * fEPhi1
TGeoConeSegEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for cone segment editor.
void DoPhi()
Slot for Phi.
virtual void DoUndo()
Slot for undoing last operation.
A phi segment of a conical tube.
Definition: TGeoCone.h:99
Conical tube class.
Definition: TGeoCone.h:18
virtual Double_t GetRmax2() const
Definition: TGeoCone.h:76
void SetConeDimensions(Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
Set cone dimensions.
Definition: TGeoCone.cxx:936
virtual Double_t GetDz() const
Definition: TGeoCone.h:68
virtual void ComputeBBox()
compute bounding box of the sphere
Definition: TGeoCone.cxx:171
virtual Double_t GetRmin2() const
Definition: TGeoCone.h:75
virtual Double_t GetRmin1() const
Definition: TGeoCone.h:73
virtual Double_t GetRmax1() const
Definition: TGeoCone.h:74
Common base class for geombuilder editors.
Definition: TGeoGedFrame.h:13
virtual void Update()
Override Update from TGedFrame as fGedEditor can be null.
TVirtualPad * fPad
Definition: TGeoGedFrame.h:18
virtual void SetActive(Bool_t active=kTRUE)
Set active GUI attribute frames related to the selected object.
TVirtualGeoPainter * GetPainter() const
Definition: TGeoManager.h:198
virtual const char * GetName() const
Get the shape name.
Definition: TGeoShape.cxx:248
virtual void Draw(Option_t *option="")
Draw this shape.
Definition: TGeoShape.cxx:721
static void MoveFrame(TGCompositeFrame *fr, TGCompositeFrame *p)
Move frame fr at the end of the list of parent p.
static void Cleanup(TGCompositeFrame *frame)
Static method to cleanup hierarchically all daughters of a composite frame.
virtual void SetName(const char *name)
Set the name of the TNamed.
Definition: TNamed.cxx:140
Mother of all ROOT objects.
Definition: TObject.h:37
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:867
Bool_t Disconnect(const char *signal=0, void *receiver=0, const char *slot=0)
Disconnects signal of this object from slot of receiver.
Definition: TQObject.cxx:1025
virtual void ShowAxis()=0
virtual Bool_t IsPaintingShape() const =0
virtual TView * GetView() const =0
TF1 * f1
Definition: legend1.C:11