32 ClassImp(TEveGeoNodeEditor);
37 TEveGeoNodeEditor::TEveGeoNodeEditor(
const TGWindow *p,
38 Int_t width, Int_t height,
39 UInt_t options, Pixel_t back) :
40 TGedFrame(p,width, height, options | kVerticalFrame, back),
47 fVizVolumeDaughters(0)
53 fVizNode =
new TGCheckButton(
this,
"VizNode");
54 AddFrame(fVizNode,
new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
57 "TEveGeoNodeEditor",
this,
"DoVizNode()");
59 fVizNodeDaughters =
new TGCheckButton(
this,
"VizNodeDaughters");
60 AddFrame(fVizNodeDaughters,
new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
61 fVizNodeDaughters->Connect
63 "TEveGeoNodeEditor",
this,
"DoVizNodeDaughters()");
65 fVizVolume =
new TGCheckButton(
this,
"VizVolume");
66 AddFrame(fVizVolume,
new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
69 "TEveGeoNodeEditor",
this,
"DoVizVolume()");
71 fVizVolumeDaughters =
new TGCheckButton(
this,
"VizVolumeDaughters");
72 AddFrame(fVizVolumeDaughters,
new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
73 fVizVolumeDaughters->Connect
75 "TEveGeoNodeEditor",
this,
"DoVizVolumeDaughters()");
81 void TEveGeoNodeEditor::SetModel(TObject* obj)
83 fNodeRE =
dynamic_cast<TEveGeoNode*
>(obj);
84 TGeoNode* node = fNodeRE->fNode;
85 TGeoVolume* vol = node->GetVolume();
87 fVizNode->SetState(node->TGeoAtt::IsVisible() ? kButtonDown : kButtonUp);
88 fVizNodeDaughters->SetState(node->TGeoAtt::IsVisDaughters() ? kButtonDown : kButtonUp);
89 fVizVolume->SetState(vol->IsVisible() ? kButtonDown : kButtonUp);
90 fVizVolumeDaughters->SetState(vol->IsVisDaughters() ? kButtonDown : kButtonUp);
96 void TEveGeoNodeEditor::DoVizNode()
98 fNodeRE->SetRnrSelf(fVizNode->IsOn());
105 void TEveGeoNodeEditor::DoVizNodeDaughters()
107 fNodeRE->SetRnrChildren(fVizNodeDaughters->IsOn());
114 void TEveGeoNodeEditor::DoVizVolume()
116 fNodeRE->fNode->GetVolume()->SetVisibility(fVizVolume->IsOn());
123 void TEveGeoNodeEditor::DoVizVolumeDaughters()
125 fNodeRE->fNode->GetVolume()->VisibleDaughters(fVizVolumeDaughters->IsOn());
134 ClassImp(TEveGeoTopNodeEditor);
139 TEveGeoTopNodeEditor::TEveGeoTopNodeEditor(
const TGWindow *p,
140 Int_t width, Int_t height,
141 UInt_t options, Pixel_t back) :
142 TGedFrame(p, width, height, options | kVerticalFrame, back),
149 MakeTitle(
"GeoTopNode");
153 fVisOption =
new TEveGValuator(
this,
"VisOption:", 90, 0);
154 fVisOption->SetLabelWidth(labelW);
155 fVisOption->SetShowSlider(kFALSE);
156 fVisOption->SetNELength(4);
158 fVisOption->SetLimits(0, 2, 10, TGNumberFormat::kNESInteger);
159 fVisOption->SetToolTip(
"Visualization option passed to TGeoPainter.");
160 fVisOption->Connect(
"ValueSet(Double_t)",
"TEveGeoTopNodeEditor",
this,
"DoVisOption()");
161 AddFrame(fVisOption,
new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
163 fVisLevel =
new TEveGValuator(
this,
"VisLevel:", 90, 0);
164 fVisLevel->SetLabelWidth(labelW);
165 fVisLevel->SetShowSlider(kFALSE);
166 fVisLevel->SetNELength(4);
168 fVisLevel->SetLimits(0, 30, 31, TGNumberFormat::kNESInteger);
169 fVisLevel->SetToolTip(
"Level (depth) to which the geometry is traversed.\nWhen zero, maximum number of nodes to draw can be specified.");
170 fVisLevel->Connect(
"ValueSet(Double_t)",
"TEveGeoTopNodeEditor",
this,
"DoVisLevel()");
171 AddFrame(fVisLevel,
new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
173 fMaxVisNodes =
new TEveGValuator(
this,
"MaxNodes:", 90, 0);
174 fMaxVisNodes->SetLabelWidth(labelW);
175 fMaxVisNodes->SetShowSlider(kFALSE);
176 fMaxVisNodes->SetNELength(6);
177 fMaxVisNodes->Build();
178 fMaxVisNodes->SetLimits(100, 999999, 0, TGNumberFormat::kNESInteger);
179 fMaxVisNodes->SetToolTip(
"Maximum number of nodes to draw.");
180 fMaxVisNodes->Connect(
"ValueSet(Double_t)",
"TEveGeoTopNodeEditor",
this,
"DoMaxVisNodes()");
181 AddFrame(fMaxVisNodes,
new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
187 void TEveGeoTopNodeEditor::SetModel(TObject* obj)
189 fTopNodeRE =
dynamic_cast<TEveGeoTopNode*
>(obj);
191 fVisOption ->SetValue(fTopNodeRE->GetVisOption());
192 fVisLevel ->SetValue(fTopNodeRE->GetVisLevel());
193 fMaxVisNodes->SetValue(fTopNodeRE->GetMaxVisNodes());
194 if (fTopNodeRE->GetVisLevel() > 0)
195 fMaxVisNodes->UnmapWindow();
197 fMaxVisNodes->MapWindow();
203 void TEveGeoTopNodeEditor::DoVisOption()
205 fTopNodeRE->SetVisOption(Int_t(fVisOption->GetValue()));
212 void TEveGeoTopNodeEditor::DoVisLevel()
214 fTopNodeRE->SetVisLevel(Int_t(fVisLevel->GetValue()));
221 void TEveGeoTopNodeEditor::DoMaxVisNodes()
223 fTopNodeRE->SetMaxVisNodes(Int_t(fMaxVisNodes->GetValue()));