#include "TGedEditor.h"
#include "TGDoubleSlider.h"
#include "TGNumberEntry.h"
#include "TVirtualPad.h"
#include "TGButton.h"
#include "TGLabel.h"
#include "TClass.h"
#include "TGTab.h"
#include "TGL5DDataSetEditor.h"
#include "TGLUtil.h"
#include "TGL5D.h"
ClassImp(TGL5DDataSetEditor);
TGL5DDataSetEditor::TGL5DDataSetEditor(const TGWindow *p, Int_t width,
Int_t height, UInt_t options, Pixel_t back) : TGedFrame(p, width, height,
options | kVerticalFrame, back), fShowBoxCut(), fNumberOfPlanes(0),
fAlpha(0), fLogScale(0), fSlideRange(0), fApplyAlpha(0), fApplyPlanes(0)
{
CreateStyleTab();
}
TGL5DDataSetEditor::~TGL5DDataSetEditor()
{
}
void TGL5DDataSetEditor::ConnectSignals2Slots()
{
fShowBoxCut->Connect("Toggled(Bool_t)", "TGL5DDataSetEditor", this, "DoShowBoxCut()");
fSlideRange->Connect("PositionChanged()","TGL5DDataSetEditor", this,"DoSliderRangeMoved()");
fLogScale->Connect("Toggled(Bool_t)", "TGL5DDataSetEditor", this, "DoLogScale()");
fApplyPlanes->Connect("Clicked()", "TGL5DDataSetEditor", this, "DoPlanes()");
fApplyAlpha->Connect("Clicked()", "TGL5DDataSetEditor", this, "DoAlpha()");
fAlpha->Connect("ValueChanged(Long_t)", "TGL5DDataSetEditor", this, "DoAlphaChanged()");
fAlpha->Connect("ValueSet(Long_t)", "TGL5DDataSetEditor", this, "DoAlphaChanged()");
fNumberOfPlanes->Connect("ValueChanged(Long_t)", "TGL5DDataSetEditor", this, "DoNContoursChanged()");
fNumberOfPlanes->Connect("ValueSet(Long_t)", "TGL5DDataSetEditor", this, "DoNContoursChanged()");
fInit = kFALSE;
}
void TGL5DDataSetEditor::CreateStyleTab()
{
TGHorizontalFrame *f;
fShowBoxCut = new TGCheckButton(this, "Show Box Cut");
fShowBoxCut->SetToolTipText("Box cut. When attached to a plot, cuts away a part of it");
AddFrame(fShowBoxCut, new TGLayoutHints(kLHintsLeft, 5, 2, 2, 2));
MakeTitle("isosurfaces");
f = new TGHorizontalFrame(this, 200, 50);
f->AddFrame(new TGLabel(f, "Number:"), new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 5, 2, 2, 2));
fNumberOfPlanes = new TGNumberEntry(f, 0, 3, -1, TGNumberFormat::kNESInteger, TGNumberFormat::kNEANonNegative,
TGNumberFormat::kNELLimitMinMax, 1, 200);
fNumberOfPlanes->GetNumberEntry()->SetToolTipText("Set number of isosurfaces");
f->AddFrame(fNumberOfPlanes, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
fApplyPlanes = new TGTextButton(f, " Apply ");
f->AddFrame(fApplyPlanes, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 2, 2, 2, 2));
AddFrame(f, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 0, 0, 0, 0));
fApplyPlanes->SetState(kButtonDisabled);
MakeTitle("Alpha");
f = new TGHorizontalFrame(this, 200, 50);
f->AddFrame(new TGLabel(f, "Value:"), new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 5, 2, 2, 2));
fAlpha = new TGNumberEntry(f, 0, 1, -1, TGNumberFormat::kNESRealThree, TGNumberFormat::kNEANonNegative,
TGNumberFormat::kNELLimitMinMax, 0.1, 0.5);
fAlpha->GetNumberEntry()->SetToolTipText("Value of alpha parameter");
f->AddFrame(fAlpha, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
fApplyAlpha = new TGTextButton(f, " Apply ");
f->AddFrame(fApplyAlpha, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 2, 2, 2, 2));
AddFrame(f, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 0, 0, 0, 0));
fApplyAlpha->SetState(kButtonDisabled);
fLogScale = new TGCheckButton(this, "Log Scale");
AddFrame(fLogScale, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 2, 2, 2));
AddFrame(new TGLabel(this, "Slide Range:"), new TGLayoutHints(kLHintsLeft, 5, 2, 2, 2));
fSlideRange = new TGDoubleHSlider(this, 200, kDoubleScaleDownRight);
AddFrame(fSlideRange, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 5, 2, 2, 2));
}
void TGL5DDataSetEditor::DoAlpha()
{
if (fPainter) {
fApplyAlpha->SetState(kButtonDisabled);
fPainter->SetAlpha(fAlpha->GetNumber());
fAlpha->SetNumber(fPainter->GetAlpha());
}
if (gPad) gPad->Update();
}
void TGL5DDataSetEditor::DoLogScale()
{
if (fPainter) {
}
if (gPad) gPad->Update();
}
void TGL5DDataSetEditor::DoPlanes()
{
if (fPainter) {
fApplyPlanes->SetState(kButtonDisabled);
fPainter->SetNContours((Int_t)fNumberOfPlanes->GetIntNumber());
fNumberOfPlanes->SetIntNumber(fPainter->GetNContours());
}
if (gPad) gPad->Update();
}
void TGL5DDataSetEditor::DoShowBoxCut()
{
if (fPainter) fPainter->ShowBoxCut(fShowBoxCut->IsOn());
if (gPad) gPad->Update();
}
void TGL5DDataSetEditor::DoSliderRangeMoved()
{
if (fPainter) {
fPainter->SetV5SliderMin(fSlideRange->GetMinPosition());
fPainter->SetV5SliderMax(fSlideRange->GetMaxPosition());
}
if (gPad) gPad->Update();
}
void TGL5DDataSetEditor::DoAlphaChanged()
{
fApplyAlpha->SetState(kButtonUp);
}
void TGL5DDataSetEditor::DoNContoursChanged()
{
fApplyPlanes->SetState(kButtonUp);
}
void TGL5DDataSetEditor::SetModel(TObject* obj)
{
fPainter = 0;
TGL5DDataSet *dset = static_cast<TGL5DDataSet *>(obj);
fPainter = dset->GetRealPainter();
fShowBoxCut->SetState(fPainter->IsBoxCutShown() ? kButtonDown : kButtonUp);
fNumberOfPlanes->SetNumber(fPainter->GetNContours());
fAlpha->SetNumber(fPainter->GetAlpha());
fSlideRange->SetRange(fPainter->GetV5PredictedMin(), fPainter->GetV5PredictedMax());
fSlideRange->SetPosition(fPainter->GetV5SliderMin(), fPainter->GetV5SliderMax());
if (fInit)
ConnectSignals2Slots();
}
TGL5DDataSetEditor.cxx:10 TGL5DDataSetEditor.cxx:11 TGL5DDataSetEditor.cxx:12 TGL5DDataSetEditor.cxx:13 TGL5DDataSetEditor.cxx:14 TGL5DDataSetEditor.cxx:15 TGL5DDataSetEditor.cxx:16 TGL5DDataSetEditor.cxx:17 TGL5DDataSetEditor.cxx:18 TGL5DDataSetEditor.cxx:19 TGL5DDataSetEditor.cxx:20 TGL5DDataSetEditor.cxx:21 TGL5DDataSetEditor.cxx:22 TGL5DDataSetEditor.cxx:23 TGL5DDataSetEditor.cxx:24 TGL5DDataSetEditor.cxx:25 TGL5DDataSetEditor.cxx:26 TGL5DDataSetEditor.cxx:27 TGL5DDataSetEditor.cxx:28 TGL5DDataSetEditor.cxx:29 TGL5DDataSetEditor.cxx:30 TGL5DDataSetEditor.cxx:31 TGL5DDataSetEditor.cxx:32 TGL5DDataSetEditor.cxx:33 TGL5DDataSetEditor.cxx:34 TGL5DDataSetEditor.cxx:35 TGL5DDataSetEditor.cxx:36 TGL5DDataSetEditor.cxx:37 TGL5DDataSetEditor.cxx:38 TGL5DDataSetEditor.cxx:39 TGL5DDataSetEditor.cxx:40 TGL5DDataSetEditor.cxx:41 TGL5DDataSetEditor.cxx:42 TGL5DDataSetEditor.cxx:43 TGL5DDataSetEditor.cxx:44 TGL5DDataSetEditor.cxx:45 TGL5DDataSetEditor.cxx:46 TGL5DDataSetEditor.cxx:47 TGL5DDataSetEditor.cxx:48 TGL5DDataSetEditor.cxx:49 TGL5DDataSetEditor.cxx:50 TGL5DDataSetEditor.cxx:51 TGL5DDataSetEditor.cxx:52 TGL5DDataSetEditor.cxx:53 TGL5DDataSetEditor.cxx:54 TGL5DDataSetEditor.cxx:55 TGL5DDataSetEditor.cxx:56 TGL5DDataSetEditor.cxx:57 TGL5DDataSetEditor.cxx:58 TGL5DDataSetEditor.cxx:59 TGL5DDataSetEditor.cxx:60 TGL5DDataSetEditor.cxx:61 TGL5DDataSetEditor.cxx:62 TGL5DDataSetEditor.cxx:63 TGL5DDataSetEditor.cxx:64 TGL5DDataSetEditor.cxx:65 TGL5DDataSetEditor.cxx:66 TGL5DDataSetEditor.cxx:67 TGL5DDataSetEditor.cxx:68 TGL5DDataSetEditor.cxx:69 TGL5DDataSetEditor.cxx:70 TGL5DDataSetEditor.cxx:71 TGL5DDataSetEditor.cxx:72 TGL5DDataSetEditor.cxx:73 TGL5DDataSetEditor.cxx:74 TGL5DDataSetEditor.cxx:75 TGL5DDataSetEditor.cxx:76 TGL5DDataSetEditor.cxx:77 TGL5DDataSetEditor.cxx:78 TGL5DDataSetEditor.cxx:79 TGL5DDataSetEditor.cxx:80 TGL5DDataSetEditor.cxx:81 TGL5DDataSetEditor.cxx:82 TGL5DDataSetEditor.cxx:83 TGL5DDataSetEditor.cxx:84 TGL5DDataSetEditor.cxx:85 TGL5DDataSetEditor.cxx:86 TGL5DDataSetEditor.cxx:87 TGL5DDataSetEditor.cxx:88 TGL5DDataSetEditor.cxx:89 TGL5DDataSetEditor.cxx:90 TGL5DDataSetEditor.cxx:91 TGL5DDataSetEditor.cxx:92 TGL5DDataSetEditor.cxx:93 TGL5DDataSetEditor.cxx:94 TGL5DDataSetEditor.cxx:95 TGL5DDataSetEditor.cxx:96 TGL5DDataSetEditor.cxx:97 TGL5DDataSetEditor.cxx:98 TGL5DDataSetEditor.cxx:99 TGL5DDataSetEditor.cxx:100 TGL5DDataSetEditor.cxx:101 TGL5DDataSetEditor.cxx:102 TGL5DDataSetEditor.cxx:103 TGL5DDataSetEditor.cxx:104 TGL5DDataSetEditor.cxx:105 TGL5DDataSetEditor.cxx:106 TGL5DDataSetEditor.cxx:107 TGL5DDataSetEditor.cxx:108 TGL5DDataSetEditor.cxx:109 TGL5DDataSetEditor.cxx:110 TGL5DDataSetEditor.cxx:111 TGL5DDataSetEditor.cxx:112 TGL5DDataSetEditor.cxx:113 TGL5DDataSetEditor.cxx:114 TGL5DDataSetEditor.cxx:115 TGL5DDataSetEditor.cxx:116 TGL5DDataSetEditor.cxx:117 TGL5DDataSetEditor.cxx:118 TGL5DDataSetEditor.cxx:119 TGL5DDataSetEditor.cxx:120 TGL5DDataSetEditor.cxx:121 TGL5DDataSetEditor.cxx:122 TGL5DDataSetEditor.cxx:123 TGL5DDataSetEditor.cxx:124 TGL5DDataSetEditor.cxx:125 TGL5DDataSetEditor.cxx:126 TGL5DDataSetEditor.cxx:127 TGL5DDataSetEditor.cxx:128 TGL5DDataSetEditor.cxx:129 TGL5DDataSetEditor.cxx:130 TGL5DDataSetEditor.cxx:131 TGL5DDataSetEditor.cxx:132 TGL5DDataSetEditor.cxx:133 TGL5DDataSetEditor.cxx:134 TGL5DDataSetEditor.cxx:135 TGL5DDataSetEditor.cxx:136 TGL5DDataSetEditor.cxx:137 TGL5DDataSetEditor.cxx:138 TGL5DDataSetEditor.cxx:139 TGL5DDataSetEditor.cxx:140 TGL5DDataSetEditor.cxx:141 TGL5DDataSetEditor.cxx:142 TGL5DDataSetEditor.cxx:143 TGL5DDataSetEditor.cxx:144 TGL5DDataSetEditor.cxx:145 TGL5DDataSetEditor.cxx:146 TGL5DDataSetEditor.cxx:147 TGL5DDataSetEditor.cxx:148 TGL5DDataSetEditor.cxx:149 TGL5DDataSetEditor.cxx:150 TGL5DDataSetEditor.cxx:151 TGL5DDataSetEditor.cxx:152 TGL5DDataSetEditor.cxx:153 TGL5DDataSetEditor.cxx:154 TGL5DDataSetEditor.cxx:155 TGL5DDataSetEditor.cxx:156 TGL5DDataSetEditor.cxx:157 TGL5DDataSetEditor.cxx:158 TGL5DDataSetEditor.cxx:159 TGL5DDataSetEditor.cxx:160 TGL5DDataSetEditor.cxx:161 TGL5DDataSetEditor.cxx:162 TGL5DDataSetEditor.cxx:163 TGL5DDataSetEditor.cxx:164 TGL5DDataSetEditor.cxx:165 TGL5DDataSetEditor.cxx:166 TGL5DDataSetEditor.cxx:167 TGL5DDataSetEditor.cxx:168 TGL5DDataSetEditor.cxx:169 TGL5DDataSetEditor.cxx:170 TGL5DDataSetEditor.cxx:171 TGL5DDataSetEditor.cxx:172 TGL5DDataSetEditor.cxx:173 TGL5DDataSetEditor.cxx:174 TGL5DDataSetEditor.cxx:175 TGL5DDataSetEditor.cxx:176 TGL5DDataSetEditor.cxx:177 TGL5DDataSetEditor.cxx:178 TGL5DDataSetEditor.cxx:179 TGL5DDataSetEditor.cxx:180 TGL5DDataSetEditor.cxx:181 TGL5DDataSetEditor.cxx:182 TGL5DDataSetEditor.cxx:183 TGL5DDataSetEditor.cxx:184 TGL5DDataSetEditor.cxx:185 TGL5DDataSetEditor.cxx:186 TGL5DDataSetEditor.cxx:187 TGL5DDataSetEditor.cxx:188 TGL5DDataSetEditor.cxx:189 TGL5DDataSetEditor.cxx:190 TGL5DDataSetEditor.cxx:191 TGL5DDataSetEditor.cxx:192 TGL5DDataSetEditor.cxx:193 TGL5DDataSetEditor.cxx:194 TGL5DDataSetEditor.cxx:195 TGL5DDataSetEditor.cxx:196 TGL5DDataSetEditor.cxx:197 TGL5DDataSetEditor.cxx:198 TGL5DDataSetEditor.cxx:199 TGL5DDataSetEditor.cxx:200 TGL5DDataSetEditor.cxx:201 TGL5DDataSetEditor.cxx:202 TGL5DDataSetEditor.cxx:203 TGL5DDataSetEditor.cxx:204 TGL5DDataSetEditor.cxx:205 TGL5DDataSetEditor.cxx:206 TGL5DDataSetEditor.cxx:207 TGL5DDataSetEditor.cxx:208 TGL5DDataSetEditor.cxx:209