Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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 "TVirtualPad.h"
30#include "TView.h"
31#include "TGButton.h"
32#include "TGTextEntry.h"
33#include "TGNumberEntry.h"
34#include "TGLabel.h"
35#include "TGDoubleSlider.h"
36
38
42};
43
44////////////////////////////////////////////////////////////////////////////////
45/// Constructor for volume 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 fRmini1 = fRmaxi1 = fRmini2 = fRmaxi2 = fDzi = 0.0;
53 fNamei = "";
56
57 // TextEntry for shape name
58 MakeTitle("Name");
59 fShapeName = new TGTextEntry(this, new TGTextBuffer(50), kCONE_NAME);
61 fShapeName->SetToolTipText("Enter the cone name");
62 fShapeName->Associate(this);
64
65 TGTextEntry *nef;
66 MakeTitle("Cone dimensions");
67 TGCompositeFrame *compxyz = new TGCompositeFrame(this, 118, 30, kVerticalFrame | kRaisedFrame);
68
69 // Number entry for Rmin1
71 f1->AddFrame(new TGLabel(f1, "Rmin1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
72 fERmin1 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN1);
75 nef->SetToolTipText("Enter the inner radius");
76 fERmin1->Associate(this);
78 f1->AddFrame(fERmin1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
79 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
80
81 // Number entry for Rmax1
82 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
83 f1->AddFrame(new TGLabel(f1, "Rmax1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
84 fERmax1 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX1);
87 nef->SetToolTipText("Enter the outer radius");
88 fERmax1->Associate(this);
90 f1->AddFrame(fERmax1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
91 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
92
93 // Number entry for Rmin2
94 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
95 f1->AddFrame(new TGLabel(f1, "Rmin2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
96 fERmin2 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN2);
99 nef->SetToolTipText("Enter the inner radius");
100 fERmin2->Associate(this);
102 f1->AddFrame(fERmin2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
103 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
104
105 // Number entry for Rmax2
106 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
107 f1->AddFrame(new TGLabel(f1, "Rmax2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
108 fERmax2 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX2);
111 nef->SetToolTipText("Enter the outer radius");
112 fERmax2->Associate(this);
114 f1->AddFrame(fERmax2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
115 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
116
117 // Number entry for dz
118 f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
119 f1->AddFrame(new TGLabel(f1, "DZ"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
120 fEDz = new TGNumberEntry(f1, 0., 5, kCONE_Z);
123 nef->SetToolTipText("Enter the cone half-lenth in Z");
124 fEDz->Associate(this);
126 f1->AddFrame(fEDz, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
127 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
128
129 compxyz->Resize(150,30);
130 AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
131
132 // Delayed draw
134 fDelayed = new TGCheckButton(fDFrame, "Delayed draw");
136 AddFrame(fDFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
137
138 // Buttons
140 fApply = new TGTextButton(fBFrame, "Apply");
141 fBFrame->AddFrame(fApply, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
142 fApply->Associate(this);
143 fUndo = new TGTextButton(fBFrame, "Undo");
144 fBFrame->AddFrame(fUndo, new TGLayoutHints(kLHintsRight , 2, 2, 4, 4));
145 fUndo->Associate(this);
146 AddFrame(fBFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
148}
149
150////////////////////////////////////////////////////////////////////////////////
151/// Destructor
152
154{
155 TGFrameElement *el;
156 TIter next(GetList());
157 while ((el = (TGFrameElement *)next())) {
158 if (el->fFrame->IsComposite())
160 }
161 Cleanup();
162}
163
164////////////////////////////////////////////////////////////////////////////////
165/// Connect signals to slots.
166
168{
169 fApply->Connect("Clicked()", "TGeoConeEditor", this, "DoApply()");
170 fUndo->Connect("Clicked()", "TGeoConeEditor", this, "DoUndo()");
171 fShapeName->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoModified()");
172 fERmin1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin1()");
173 fERmin2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin2()");
174 fERmax1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax1()");
175 fERmax2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax2()");
176 fEDz->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoDz()");
177 fERmin1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin1()");
178 fERmin2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin2()");
179 fERmax1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax1()");
180 fERmax2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax2()");
181 fEDz->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoDz()");
182 fInit = kFALSE;
183}
184
185
186////////////////////////////////////////////////////////////////////////////////
187/// Connect to the selected object.
188
190{
191 if (obj == 0 || (obj->IsA()!=TGeoCone::Class())) {
193 return;
194 }
195 fShape = (TGeoCone*)obj;
200 fDzi = fShape->GetDz();
201 fNamei = fShape->GetName();
210
212 SetActive();
213}
214
215////////////////////////////////////////////////////////////////////////////////
216/// Check if shape drawing is delayed.
217
219{
220 return (fDelayed->GetState() == kButtonDown);
221}
222
223////////////////////////////////////////////////////////////////////////////////
224/// Slot for name.
225
227{
228 DoModified();
229}
230
231////////////////////////////////////////////////////////////////////////////////
232///Slot for applying current parameters.
233
235{
237 const char *name = fShapeName->GetText();
238 if (strcmp(name,fShape->GetName())) fShape->SetName(name);
239 Double_t rmin1 = fERmin1->GetNumber();
240 Double_t rmin2 = fERmin2->GetNumber();
241 Double_t rmax1 = fERmax1->GetNumber();
242 Double_t rmax2 = fERmax2->GetNumber();
243 Double_t dz = fEDz->GetNumber();
244 if (rmin1<0 || rmin1>rmax1) return;
245 if (rmin2<0 || rmin2>rmax2) return;
246 if (dz<=0) return;
247 if (rmin1==rmax1 && rmin2==rmax2) return;
248 fShape->SetConeDimensions(dz, rmin1, rmax1, rmin2, rmax2);
250 fUndo->SetEnabled();
251 if (fPad) {
253 fShape->Draw();
254 fPad->GetView()->ShowAxis();
255 } else Update();
256 }
257}
258
259////////////////////////////////////////////////////////////////////////////////
260///Slot for modifying current parameters.
261
263{
265}
266
267////////////////////////////////////////////////////////////////////////////////
268/// Slot for undoing current operation.
269
271{
277 DoApply();
280}
281
282////////////////////////////////////////////////////////////////////////////////
283/// Slot for Rmin1
284
286{
287 Double_t rmin1 = fERmin1->GetNumber();
288 Double_t rmax1 = fERmax1->GetNumber();
289 if (rmin1<0) {
290 rmin1 = 0;
291 fERmin1->SetNumber(rmin1);
292 }
293 if (rmin1>rmax1) {
294 rmin1 = rmax1;
295 fERmin1->SetNumber(rmin1);
296 }
297 DoModified();
298 if (!IsDelayed()) DoApply();
299}
300
301////////////////////////////////////////////////////////////////////////////////
302/// Slot for Rmax1
303
305{
306 Double_t rmin1 = fERmin1->GetNumber();
307 Double_t rmax1 = fERmax1->GetNumber();
308 if (rmax1<rmin1) {
309 rmax1 = rmin1;
310 fERmax1->SetNumber(rmax1);
311 }
312 DoModified();
313 if (!IsDelayed()) DoApply();
314}
315
316////////////////////////////////////////////////////////////////////////////////
317/// Slot for Rmin2
318
320{
321 Double_t rmin2 = fERmin2->GetNumber();
322 Double_t rmax2 = fERmax2->GetNumber();
323 if (rmin2<0) {
324 rmin2 = 0;
325 fERmin2->SetNumber(rmin2);
326 }
327 if (rmin2>rmax2) {
328 rmin2 = rmax2;
329 fERmin2->SetNumber(rmin2);
330 }
331 DoModified();
332 if (!IsDelayed()) DoApply();
333}
334
335////////////////////////////////////////////////////////////////////////////////
336/// Slot for Rmax2
337
339{
340 Double_t rmin2 = fERmin2->GetNumber();
341 Double_t rmax2 = fERmax2->GetNumber();
342 if (rmax2<rmin2) {
343 rmax2 = rmin2;
344 fERmax2->SetNumber(rmax2);
345 }
346 DoModified();
347 if (!IsDelayed()) DoApply();
348}
349
350////////////////////////////////////////////////////////////////////////////////
351/// Slot for Dz
352
354{
355 Double_t dz = fEDz->GetNumber();
356 if (dz<=0) {
357 dz = 0.1;
358 fEDz->SetNumber(dz);
359 }
360 DoModified();
361 if (!IsDelayed()) DoApply();
362}
363
364/** \class TGeoConeSegEditor
365\ingroup Geometry_builder
366
367Editor for a cone segment.
368
369\image html geom_cons_pic.png
370
371\image html geom_cons_ed.png
372
373*/
374
376
380
381////////////////////////////////////////////////////////////////////////////////
382/// Constructor for cone segment editor
383
385 Int_t height, UInt_t options, Pixel_t back)
386 : TGeoConeEditor(p, width, height, options | kVerticalFrame, back)
387{
388 fLock = kFALSE;
389 MakeTitle("Phi range");
390 TGTextEntry *nef;
392 // Vertical slider
393 fSPhi = new TGDoubleVSlider(compxyz,100);
394 fSPhi->SetRange(0.,720.);
396 compxyz->AddFrame(fSPhi, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
398 f1->AddFrame(new TGLabel(f1, "Phi min."), new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 6, 0));
399 fEPhi1 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI1);
403 nef->SetToolTipText("Enter the phi1 value");
404 fEPhi1->Associate(this);
405 f1->AddFrame(fEPhi1, new TGLayoutHints(kLHintsTop | kLHintsRight, 2, 2, 2, 2));
406
407 fEPhi2 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI2);
411 nef->SetToolTipText("Enter the phi2 value");
412 fEPhi2->Associate(this);
413 f1->AddFrame(fEPhi2, new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 2, 2));
414 f1->AddFrame(new TGLabel(f1, "Phi max."), new TGLayoutHints(kLHintsBottom, 0, 0, 6, 2));
415 compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
416
417// compxyz->Resize(150,150);
418 AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
421}
422
423////////////////////////////////////////////////////////////////////////////////
424/// Destructor
425
427{
428 TGFrameElement *el;
429 TIter next(GetList());
430 while ((el = (TGFrameElement *)next())) {
431 if (el->fFrame->IsComposite())
433 }
434 Cleanup();
435}
436
437////////////////////////////////////////////////////////////////////////////////
438/// Connect signals to slots.
439
441{
443 Disconnect(fApply, "Clicked()",(TGeoConeEditor*)this, "DoApply()");
444 Disconnect(fUndo, "Clicked()",(TGeoConeEditor*)this, "DoUndo()");
445 fApply->Connect("Clicked()", "TGeoConeSegEditor", this, "DoApply()");
446 fUndo->Connect("Clicked()", "TGeoConeSegEditor", this, "DoUndo()");
447 fEPhi1->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi1()");
448 fEPhi2->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi2()");
449// fEPhi1->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi1()");
450// fEPhi2->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi2()");
451 fSPhi->Connect("PositionChanged()","TGeoConeSegEditor", this, "DoPhi()");
452}
453
454////////////////////////////////////////////////////////////////////////////////
455/// Connect to the selected object.
456
458{
459 if (obj == 0 || (obj->IsA()!=TGeoConeSeg::Class())) {
461 return;
462 }
463 fShape = (TGeoCone*)obj;
468 fDzi = fShape->GetDz();
469 fNamei = fShape->GetName();
470 fPmini = ((TGeoConeSeg*)fShape)->GetPhi1();
471 fPmaxi = ((TGeoConeSeg*)fShape)->GetPhi2();
483
485 SetActive();
486}
487
488////////////////////////////////////////////////////////////////////////////////
489///Slot for Phi1
490
492{
493 Double_t phi1 = fEPhi1->GetNumber();
494 Double_t phi2 = fEPhi2->GetNumber();
495 if (phi1 > 360-1.e-10) {
496 phi1 = 0.;
497 fEPhi1->SetNumber(phi1);
498 }
499 if (phi2<phi1+1.e-10) {
500 phi1 = phi2 - 0.1;
501 fEPhi1->SetNumber(phi1);
502 }
503 if (!fLock) {
504 DoModified();
505 fLock = kTRUE;
506 fSPhi->SetPosition(phi1,phi2);
507 } else fLock = kFALSE;
508 if (!IsDelayed()) DoApply();
509}
510
511////////////////////////////////////////////////////////////////////////////////
512/// Slot for Phi2
513
515{
516 Double_t phi1 = fEPhi1->GetNumber();
517 Double_t phi2 = fEPhi2->GetNumber();
518 if (phi2-phi1 > 360.) {
519 phi2 -= 360.;
520 fEPhi2->SetNumber(phi2);
521 }
522 if (phi2<phi1+1.e-10) {
523 phi2 = phi1 + 0.1;
524 fEPhi2->SetNumber(phi2);
525 }
526 if (!fLock) {
527 DoModified();
528 fLock = kTRUE;
529 fSPhi->SetPosition(phi1,phi2);
530 } else fLock = kFALSE;
531 if (!IsDelayed()) DoApply();
532}
533
534////////////////////////////////////////////////////////////////////////////////
535/// Slot for Phi
536
538{
539 if (!fLock) {
540 DoModified();
541 fLock = kTRUE;
543 fLock = kTRUE;
545 } else fLock = kFALSE;
546 if (!IsDelayed()) DoApply();
547}
548
549////////////////////////////////////////////////////////////////////////////////
550/// Slot for applying current parameters.
551
553{
555 const char *name = fShapeName->GetText();
556 if (strcmp(name,fShape->GetName())) fShape->SetName(name);
557 Double_t rmin1 = fERmin1->GetNumber();
558 Double_t rmax1 = fERmax1->GetNumber();
559 if (rmin1<0 || rmax1<rmin1) return;
560 Double_t rmin2 = fERmin2->GetNumber();
561 Double_t rmax2 = fERmax2->GetNumber();
562 if (rmin2<0 || rmax2<rmin2) return;
563 Double_t dz = fEDz->GetNumber();
564 Double_t phi1 = fEPhi1->GetNumber();
565 Double_t phi2 = fEPhi2->GetNumber();
566 if ((phi2-phi1) > 360.001) {
567 phi1 = 0.;
568 phi2 = 360.;
569 fEPhi1->SetNumber(phi1);
570 fEPhi2->SetNumber(phi2);
571 fLock = kTRUE;
572 fSPhi->SetPosition(phi1,phi2);
573 fLock = kFALSE;
574 }
575 ((TGeoConeSeg*)fShape)->SetConsDimensions(dz, rmin1, rmax1, rmin2,rmax2, phi1, phi2);
577 fUndo->SetEnabled();
578 if (fPad) {
580 fShape->Draw();
581 fPad->GetView()->ShowAxis();
582 } else Update();
583 }
584}
585
586////////////////////////////////////////////////////////////////////////////////
587/// Slot for undoing last operation.
588
590{
599 DoApply();
602}
603
604
605
606
@ kRaisedFrame
Definition GuiTypes.h:384
@ kSunkenFrame
Definition GuiTypes.h:383
@ kVerticalFrame
Definition GuiTypes.h:381
@ kFixedWidth
Definition GuiTypes.h:387
@ kHorizontalFrame
Definition GuiTypes.h:382
@ kFixedHeight
Definition GuiTypes.h:389
ULong_t Pixel_t
Pixel value.
Definition GuiTypes.h:40
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
#define ClassImp(name)
Definition Rtypes.h:377
@ kButtonDown
Definition TGButton.h:54
@ kLHintsRight
Definition TGLayout.h:26
@ kLHintsLeft
Definition TGLayout.h:24
@ kLHintsBottom
Definition TGLayout.h:29
@ kLHintsTop
Definition TGLayout.h:27
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t width
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
char name[80]
Definition TGX11.cxx:110
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
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:459
Selects different options.
Definition TGButton.h:264
The base class for composite widgets (menu bars, list boxes, etc.).
Definition TGFrame.h:287
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
Definition TGFrame.cxx:1117
virtual TList * GetList() const
Definition TGFrame.h:310
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition TGFrame.cxx:967
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)
Dragging the slider will generate the event:
TGFrame * fFrame
Definition TGLayout.h:112
virtual void SetSize(const TGDimension &s)
Definition TGFrame.h:252
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
Definition TGFrame.cxx:605
virtual UInt_t GetDefaultWidth() const
Definition TGFrame.h:190
virtual UInt_t GetDefaultHeight() const
Definition TGFrame.h:191
TGDimension GetSize() const
Definition TGFrame.h:230
virtual Bool_t IsComposite() const
Definition TGFrame.h:212
This class handles GUI labels.
Definition TGLabel.h:24
This class describes layout hints used by the layout classes.
Definition TGLayout.h:50
TGNumberEntry is a number entry input widget with up/down buttons.
TGNumberEntryField * GetNumberEntry() const
Get the number entry field.
void Associate(const TGWindow *w) override
Make w the window that will receive the generated messages.
void SetNumAttr(EAttribute attr=kNEAAnyNumber)
virtual Double_t GetNumber() const
virtual void SetNumber(Double_t val, Bool_t emit=kTRUE)
UInt_t GetDefaultHeight() const override
@ kNEAPositive
Positive number.
@ kNEANonNegative
Non-negative number.
A text buffer is used in several widgets, like TGTextEntry, TGFileDialog, etc.
Yield an action as soon as it is clicked.
Definition TGButton.h:142
A TGTextEntry is a one line text input widget.
Definition TGTextEntry.h:24
const char * GetText() const
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:72
ROOT GUI Window base class.
Definition TGWindow.h:23
Bool_t fInit
init flag for setting signals/slots
Definition TGedFrame.h:47
virtual void MakeTitle(const char *title)
Create attribute frame title.
Definition TGedFrame.cxx:95
Editor for a TGeoCone.
TGNumberEntry * fERmin1
TGeoCone * fShape
Bool_t fIsShapeEditable
TGCompositeFrame * fDFrame
void DoModified()
Slot for modifying current parameters.
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.
TGeoConeEditor(const TGWindow *p=nullptr, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for volume editor.
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.
TGeoConeSegEditor(const TGWindow *p=nullptr, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for cone segment editor.
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
void DoPhi()
Slot for Phi.
virtual void DoUndo()
Slot for undoing last operation.
A cone segment is a cone having a range in phi.
Definition TGeoCone.h:102
static TClass * Class()
The cones are defined by 5 parameters:
Definition TGeoCone.h:18
virtual Double_t GetRmax2() const
Definition TGeoCone.h:79
void SetConeDimensions(Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
Set cone dimensions.
Definition TGeoCone.cxx:952
virtual Double_t GetDz() const
Definition TGeoCone.h:71
virtual void ComputeBBox()
compute bounding box of the sphere
Definition TGeoCone.cxx:187
virtual Double_t GetRmin2() const
Definition TGeoCone.h:78
virtual Double_t GetRmin1() const
Definition TGeoCone.h:76
static TClass * Class()
virtual Double_t GetRmax1() const
Definition TGeoCone.h:77
Common base class for geombuilder editors.
virtual void Update()
Override Update from TGedFrame as fGedEditor can be null.
TVirtualPad * fPad
virtual void SetActive(Bool_t active=kTRUE)
Set active GUI attribute frames related to the selected object.
TVirtualGeoPainter * GetPainter() const
virtual const char * GetName() const
Get the shape name.
virtual void Draw(Option_t *option="")
Draw this shape.
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:41
virtual TClass * IsA() const
Definition TObject.h:245
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:869
Bool_t Disconnect(const char *signal=nullptr, void *receiver=nullptr, const char *slot=nullptr)
Disconnects signal of this object from slot of receiver.
virtual void ShowAxis()=0
virtual Bool_t IsPaintingShape() const =0
virtual TView * GetView() const =0
TF1 * f1
Definition legend1.C:11