Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TGeoVolumeEditor.h
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 #ifndef ROOT_TGeoVolumeEditor
13 #define ROOT_TGeoVolumeEditor
14 
15 #include "TGWidget.h"
16 #include "TGeoGedFrame.h"
17 
18 class TGeoManager;
19 class TGeoVolume;
20 class TGeoShape;
21 class TGeoMedium;
22 class TGeoMaterial;
23 class TGeoMatrix;
24 class TGTextEntry;
25 class TGNumberEntry;
26 class TGTab;
27 class TGComboBox;
28 class TGTextButton;
29 class TGPictureButton;
30 class TGCheckButton;
31 class TGRadioButton;
32 class TGShutter;
33 class TGShutterItem;
34 class TGeoTabManager;
35 
36 class TGeoVolumeEditor : public TGeoGedFrame {
37 
38 protected:
39 
40  TGeoManager *fGeometry; // Selected geometry manager
41  TGeoVolume *fVolume; // Volume object
42  Bool_t fIsModified; // Flag that volume was modified
43  Bool_t fIsAssembly; // Flag that the volume is an assembly
44  Bool_t fIsDivided; // Flag that the volume is divided
45  TGShutter *fCategories; // Categories shutter
46  TGTextEntry *fVolumeName; // Volume name text entry
47  TGeoShape *fSelectedShape; // Selected shape
48  TGLabel *fLSelShape; // Selected shape label
49  TGPictureButton *fBSelShape; // Button for selecting a shape
50  TGeoMedium *fSelectedMedium; // Selected medium
51  TGLabel *fLSelMedium; // Selected medium label
52  TGPictureButton *fBSelMedium; // Button for selecting a medium
53  TGeoVolume *fSelectedVolume; // Selected volume
54  TGLabel *fLSelVolume; // Selected volume label
55  TGPictureButton *fBSelVolume; // Button for selecting a volume
56  TGeoMatrix *fSelectedMatrix; // Selected matrix
57  TGLabel *fLSelMatrix; // Selected matrix label
58  TGPictureButton *fBSelMatrix; // Button for selecting a matrix
59  TGNumberEntry *fCopyNumber; // Node copy number
60  TGTextButton *fAddNode; // Button for adding a node
61  TGTextButton *fEditShape; // Check button for shape editing
62  TGTextButton *fEditMedium; // Check button for medium editing
63  TGComboBox *fNodeList; // Daughters combo box
64  TGTextButton *fEditMatrix; // Button for editing the position of a daughter
65  TGTextButton *fRemoveNode; // Button for removing a daughter
66  TGCheckButton *fBVis[2]; // Buttons for setting vis. on/off
67  TGRadioButton *fBView[3]; // Radio for selecting view options
68  TGCheckButton *fBRaytrace; // Raytracing on/off
69  TGCheckButton *fBAuto; // Check button for auto vis level
70  TGNumberEntry *fEVisLevel; // Number entry for visibility level
71  TGTextButton *fApplyDiv; // Button for applying division settings
72  TGTextEntry *fDivName; // Division volume name text entry
73  TGRadioButton *fBDiv[3]; // Radio for selecting division type
74  TGNumberEntry *fEDivFrom; // Number entry for division start
75  TGNumberEntry *fEDivStep; // Number entry for division step
76  TGNumberEntry *fEDivN; // Number entry for division Nslices
77 
78  virtual void ConnectSignals2Slots(); // Connect the signals to the slots
79 
80 public:
81  TGeoVolumeEditor(const TGWindow *p = 0,
82  Int_t width = 140, Int_t height = 30,
83  UInt_t options = kChildFrame,
84  Pixel_t back = GetDefaultFrameBackground());
85  virtual ~TGeoVolumeEditor();
86  virtual void SetModel(TObject *obj);
87  virtual void ActivateBaseClassEditors(TClass* cl);
88 
89  void DoAddNode();
90  void DoVolumeName();
91  void DoSelectShape();
92  void DoSelectMedium();
93  void DoSelectMatrix();
94  void DoSelectVolume();
95  void DoEditShape();
96  void DoEditMedium();
97  void DoEditMatrix();
98  void DoRemoveNode();
99  void DoVisVolume();
100  void DoVisDaughters();
101  void DoVisAuto();
102  void DoVisLevel();
103  void DoViewAll();
104  void DoViewLeaves();
105  void DoViewOnly();
106  void DoDivSelAxis();
107  void DoDivFromTo();
108  void DoDivStep();
109  void DoDivN();
110  void DoDivName();
111  void DoApplyDiv();
112  void DoRaytrace();
113 
114  ClassDef(TGeoVolumeEditor,0) // TGeoVolume editor
115 };
116 
117 #endif