00001
00003
00004
00005
00006
00007
00008
00010
00011 #include "VP1GuideLineSystems/GuideSysController.h"
00012 #include "VP1GuideLineSystems/VP1Floor.h"
00013 #include "ui_guidelinescontrollerform.h"
00014 #include "ui_guides_settings_coordinateaxes_form.h"
00015 #include "ui_guides_settings_etacones_form.h"
00016 #include "ui_guides_settings_floorandletters_form.h"
00017 #include "ui_guides_settings_grid_form.h"
00018 #include "ui_guides_settings_idprojsurfs_form.h"
00019 #include "VP1Base/VP1Serialise.h"
00020 #include "VP1Base/VP1Deserialise.h"
00021 #include "CLHEP/Units/SystemOfUnits.h"
00022
00023
00024 class GuideSysController::Imp {
00025 public:
00026 GuideSysController * theclass;
00027 Ui::VP1GuidesControllerForm ui;
00028 Ui::VP1GuidesSysSettingsCoordinateAxesForm ui_axes;
00029 Ui::VP1GuidesSysSettingsEtaConeForm ui_etacones;
00030 Ui::VP1GuidesSysSettingsFloorAndLettersForm ui_floorandletters;
00031 Ui::VP1GuidesSysSettingsGridForm ui_grid;
00032 Ui::VP1GuidesSysSettingsIDProjSurfsForm ui_idprojsurfs;
00033
00034 static SbColor4f color4f(const QColor& col, int transp_int) {
00035 return SbColor4f(std::max<float>(0.0f,std::min<float>(1.0f,col.redF())),
00036 std::max<float>(0.0f,std::min<float>(1.0f,col.greenF())),
00037 std::max<float>(0.0f,std::min<float>(1.0f,col.blueF())),
00038 std::max<float>(0.0f,std::min<float>(1.0f,1.0-transp_int/100.0)));
00039 }
00040
00041 InDetProjFlags::DetTypeFlags inDetDetTypesUsingProjections;
00042
00043 bool last_showFloor;
00044 SbColor4f last_floorColourAndTransp;
00045 double last_floorExtent;
00046 double last_floorSpacing;
00047 double last_floorHeight;
00048 bool last_showLetters;
00049 double last_lettersZPos;
00050 double last_lettersVerticalPos;
00051 bool last_showAxes;
00052 double last_axesLength;
00053 SbVec3f last_axesPosition;
00054 double last_relAxesThickness;
00055 bool last_showCartesianGrid;
00056 bool last_showCylindricalGrid;
00057 SbColor4f last_gridColourAndTransp;
00058 double last_gridSpacing;
00059 double last_gridExtent;
00060 bool last_showEtaCone1;
00061 bool last_showEtaCone2;
00062 bool last_showEtaCone3;
00063 double last_etaConeValue1;
00064 double last_etaConeValue2;
00065 double last_etaConeValue3;
00066 double last_etaExtent;
00067 InDetProjFlags::InDetProjPartsFlags last_applicablePixelProjParts;
00068 InDetProjFlags::InDetProjPartsFlags last_applicableSCTProjParts;
00069 InDetProjFlags::InDetProjPartsFlags last_applicableTRTProjParts;
00070 InDetProjFlags::InDetProjPartsFlags last_shownPixelProjSurfaces;
00071 InDetProjFlags::InDetProjPartsFlags last_shownSCTProjSurfaces;
00072 InDetProjFlags::InDetProjPartsFlags last_shownTRTProjSurfaces;
00073
00074 static InDetProjFlags::InDetProjPartsFlags projPartsFlag( bool barrelinner, bool barrelouter,
00075 bool endcapinner, bool endcapouter,
00076 bool endcap_hidenormalcyls_when_zasr = false,
00077 bool endcap_zasr = false );
00078 InDetProjFlags::DetTypeFlags pixelPartsEnabledByGUIOrDataUsage() const;
00079 InDetProjFlags::DetTypeFlags sctPartsEnabledByGUIOrDataUsage() const;
00080 InDetProjFlags::DetTypeFlags trtPartsEnabledByGUIOrDataUsage() const;
00081 };
00082
00083
00084 GuideSysController::GuideSysController(IVP1System * sys)
00085 : VP1Controller(sys,"GuideSysController"), d(new Imp)
00086 {
00087 d->theclass = this;
00088 d->ui.setupUi(this);
00089
00090 initDialog(d->ui_axes, d->ui.pushButton_settings_coordinateAxes,d->ui.checkBox_coordinateAxes);
00091 initDialog(d->ui_etacones, d->ui.pushButton_settings_etaCones,d->ui.checkBox_etaCones);
00092 initDialog(d->ui_floorandletters, d->ui.pushButton_settings_floorAndLetters,d->ui.checkBox_floorAndLetters);
00093 initDialog(d->ui_grid, d->ui.pushButton_settings_grid,d->ui.checkBox_grid);
00094 initDialog(d->ui_idprojsurfs, d->ui.pushButton_settings_inDetProjSurfs,d->ui.checkBox_inDetProjSurfs);
00095
00096
00097 d->ui_idprojsurfs.groupBox_pixelproj->setVisible(false);
00098 d->ui_idprojsurfs.groupBox_sctproj->setVisible(false);
00099
00100
00101
00102
00103 QButtonGroup * pixelproj_barrel_radiogroup = defineRadioButtonGroup(d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
00104 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
00105 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
00106 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner->setChecked(true);
00107 QButtonGroup * pixelproj_endcap_radiogroup = defineRadioButtonGroup(d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
00108 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
00109 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
00110 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner->setChecked(true);
00111
00112
00113 QButtonGroup * sctproj_barrel_radiogroup = defineRadioButtonGroup(d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
00114 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
00115 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
00116 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner->setChecked(true);
00117 QButtonGroup * sctproj_endcap_radiogroup = defineRadioButtonGroup(d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
00118 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
00119 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
00120 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner->setChecked(true);
00121
00122
00123 QButtonGroup * trtproj_barrel_radiogroup = defineRadioButtonGroup(d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
00124 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
00125 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
00126 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner->setChecked(true);
00127 QButtonGroup * trtproj_endcap_radiogroup = defineRadioButtonGroup(d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
00128 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
00129 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
00130 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner->setChecked(true);
00131
00132
00133 d->ui_floorandletters.colorButton_floor->setColor(QColor::fromRgbF(0.5,0.5,0.5));
00134 d->ui_grid.colorButton_grid->setColor(QColor::fromRgbF(1.0,1.0,1.0));
00135 d->ui_floorandletters.matButton_letters->setMaterial(VP1MaterialButton::createMaterial(0.5,0.5,0.5,0.1));
00136 d->ui_axes.matButton_axes_x->setMaterial(VP1MaterialButton::createMaterial(1,0,0,0.15));
00137 d->ui_axes.matButton_axes_y->setMaterial(VP1MaterialButton::createMaterial(0,1,0,0.15));
00138 d->ui_axes.matButton_axes_z->setMaterial(VP1MaterialButton::createMaterial(0,0,2,0.15));
00139 d->ui_etacones.matButton_etaCone1->setMaterial(VP1MaterialButton::createMaterial(1,1,0,0.2,0.5));
00140 d->ui_etacones.matButton_etaCone2->setMaterial(VP1MaterialButton::createMaterial(1,0.56471,0.20784,0.2,0.5));
00141 d->ui_etacones.matButton_etaCone3->setMaterial(VP1MaterialButton::createMaterial(1,0.15686,0.08235,0.2,0.5));
00142 d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
00143 d->ui_idprojsurfs.pushButton_projsurfmaterial_sct->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
00144 d->ui_idprojsurfs.pushButton_projsurfmaterial_trt->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
00145
00147
00149
00150 addUpdateSlot(SLOT(possibleChange_showFloor()));
00151 connectToLastUpdateSlot(d->ui.checkBox_floorAndLetters);
00152 connectToLastUpdateSlot(d->ui_floorandletters.checkBox_floorenabled);
00153
00154 addUpdateSlot(SLOT(possibleChange_floorColourAndTransp()));
00155 connectToLastUpdateSlot(d->ui_floorandletters.colorButton_floor);
00156 connectToLastUpdateSlot(d->ui_floorandletters.spinBox_floortransp);
00157
00158 addUpdateSlot(SLOT(possibleChange_floorExtent()));
00159 connectToLastUpdateSlot(d->ui_floorandletters.doubleSpinBox_floorextent);
00160
00161 addUpdateSlot(SLOT(possibleChange_floorSpacing()));
00162 connectToLastUpdateSlot(d->ui_floorandletters.doubleSpinBox_floorspacing);
00163
00164 addUpdateSlot(SLOT(possibleChange_floorHeight()));
00165 connectToLastUpdateSlot(d->ui_floorandletters.doubleSpinBox_floorheight);
00166
00167 addUpdateSlot(SLOT(possibleChange_showLetters()));
00168 connectToLastUpdateSlot(d->ui.checkBox_floorAndLetters);
00169 connectToLastUpdateSlot(d->ui_floorandletters.checkBox_acdesignations);
00170
00171 addUpdateSlot(SLOT(possibleChange_lettersZPos()));
00172 connectToLastUpdateSlot(this,SIGNAL(floorExtentChanged(const double&)));
00173 connectToLastUpdateSlot(this,SIGNAL(floorSpacingChanged(const double&)));
00174
00175 addUpdateSlot(SLOT(possibleChange_lettersVerticalPos()));
00176 connectToLastUpdateSlot(this,SIGNAL(floorHeightChanged(const double&)));
00177
00178 addUpdateSlot(SLOT(possibleChange_showAxes()));
00179 connectToLastUpdateSlot(d->ui.checkBox_coordinateAxes);
00180
00181 addUpdateSlot(SLOT(possibleChange_axesLength()));
00182 connectToLastUpdateSlot(d->ui_axes.checkBox_axes_shownegativeparts);
00183 connectToLastUpdateSlot(d->ui_axes.doubleSpinBox_axes_lengths_m);
00184
00185 addUpdateSlot(SLOT(possibleChange_axesPosition()));
00186 connectToLastUpdateSlot(d->ui_axes.doubleSpinBox_axes_xpos_m);
00187 connectToLastUpdateSlot(d->ui_axes.doubleSpinBox_axes_ypos_m);
00188 connectToLastUpdateSlot(d->ui_axes.doubleSpinBox_axes_zpos_m);
00189
00190 addUpdateSlot(SLOT(possibleChange_relAxesThickness()));
00191 connectToLastUpdateSlot(d->ui_axes.doubleSpinBox_axes_relthickness);
00192
00193 addUpdateSlot(SLOT(possibleChange_showCartesianGrid()));
00194 connectToLastUpdateSlot(d->ui.checkBox_grid);
00195 connectToLastUpdateSlot(d->ui_grid.radioButton_grid_cartesian);
00196
00197 addUpdateSlot(SLOT(possibleChange_showCylindricalGrid()));
00198 connectToLastUpdateSlot(d->ui.checkBox_grid);
00199 connectToLastUpdateSlot(d->ui_grid.radioButton_grid_cylindrical);
00200
00201 addUpdateSlot(SLOT(possibleChange_gridColourAndTransp()));
00202 connectToLastUpdateSlot(d->ui_grid.colorButton_grid);
00203 connectToLastUpdateSlot(d->ui_grid.spinBox_gridtransp);
00204
00205 addUpdateSlot(SLOT(possibleChange_gridSpacing()));
00206 connectToLastUpdateSlot(d->ui_grid.doubleSpinBox_gridspacing);
00207
00208 addUpdateSlot(SLOT(possibleChange_gridExtent()));
00209 connectToLastUpdateSlot(d->ui_grid.doubleSpinBox_gridextent);
00210
00211 addUpdateSlot(SLOT(possibleChange_showEtaCone1()));
00212 connectToLastUpdateSlot(d->ui.checkBox_etaCones);
00213 connectToLastUpdateSlot(d->ui_etacones.checkBox_etacone1);
00214
00215 addUpdateSlot(SLOT(possibleChange_showEtaCone2()));
00216 connectToLastUpdateSlot(d->ui.checkBox_etaCones);
00217 connectToLastUpdateSlot(d->ui_etacones.checkBox_etacone2);
00218
00219 addUpdateSlot(SLOT(possibleChange_showEtaCone3()));
00220 connectToLastUpdateSlot(d->ui.checkBox_etaCones);
00221 connectToLastUpdateSlot(d->ui_etacones.checkBox_etacone3);
00222
00223 addUpdateSlot(SLOT(possibleChange_etaConeValue1()));
00224 connectToLastUpdateSlot(d->ui_etacones.doubleSpinBox_etaval1);
00225
00226 addUpdateSlot(SLOT(possibleChange_etaConeValue2()));
00227 connectToLastUpdateSlot(d->ui_etacones.doubleSpinBox_etaval2);
00228
00229 addUpdateSlot(SLOT(possibleChange_etaConeValue3()));
00230 connectToLastUpdateSlot(d->ui_etacones.doubleSpinBox_etaval3);
00231
00232 addUpdateSlot(SLOT(possibleChange_etaExtent()));
00233 connectToLastUpdateSlot(d->ui_etacones.doubleSpinBox_etaconeextent);
00234 connectToLastUpdateSlot(d->ui_etacones.radioButton_etaconeextentisr);
00235
00236 addUpdateSlot(SLOT(possibleChange_applicablePixelProjParts()));
00237 connectToLastUpdateSlot(pixelproj_barrel_radiogroup);
00238 connectToLastUpdateSlot(pixelproj_endcap_radiogroup);
00239
00240 addUpdateSlot(SLOT(possibleChange_applicableSCTProjParts()));
00241 connectToLastUpdateSlot(sctproj_barrel_radiogroup);
00242 connectToLastUpdateSlot(sctproj_endcap_radiogroup);
00243
00244 addUpdateSlot(SLOT(possibleChange_applicableTRTProjParts()));
00245 connectToLastUpdateSlot(trtproj_barrel_radiogroup);
00246 connectToLastUpdateSlot(trtproj_endcap_radiogroup);
00247 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
00248
00249 addUpdateSlot(SLOT(possibleChange_shownPixelProjSurfaces()));
00250 connectToLastUpdateSlot(d->ui.checkBox_inDetProjSurfs);
00251 connectToLastUpdateSlot(this,SIGNAL(applicablePixelProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
00252 connectToLastUpdateSlot(d->ui_idprojsurfs.groupBox_pixelproj);
00253 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
00254 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
00255 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
00256 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
00257 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
00258
00259 addUpdateSlot(SLOT(possibleChange_shownSCTProjSurfaces()));
00260 connectToLastUpdateSlot(d->ui.checkBox_inDetProjSurfs);
00261 connectToLastUpdateSlot(this,SIGNAL(applicableSCTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
00262 connectToLastUpdateSlot(d->ui_idprojsurfs.groupBox_sctproj);
00263 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
00264 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
00265 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
00266 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
00267 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
00268
00269 addUpdateSlot(SLOT(possibleChange_shownTRTProjSurfaces()));
00270 connectToLastUpdateSlot(d->ui.checkBox_inDetProjSurfs);
00271 connectToLastUpdateSlot(this,SIGNAL(applicableTRTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
00272 connectToLastUpdateSlot(d->ui_idprojsurfs.groupBox_trtproj);
00273 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
00274 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
00275 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
00276 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
00277 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
00278
00279 addUpdateSlot(SLOT(updateProjPartsCheckboxStates_Pixel()));
00280 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
00281
00282 addUpdateSlot(SLOT(updateProjPartsCheckboxStates_SCT()));
00283 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
00284
00285 addUpdateSlot(SLOT(updateProjPartsCheckboxStates_TRT()));
00286 connectToLastUpdateSlot(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
00287
00288 initLastVars();
00289 }
00290
00291
00292 GuideSysController::~GuideSysController()
00293 {
00294 delete d;
00295 }
00296
00297
00298
00299 SoMaterial * GuideSysController::lettersMaterial() const { return d->ui_floorandletters.matButton_letters->handledMaterials().at(0); }
00300 SoMaterial * GuideSysController::xAxisMaterial() const { return d->ui_axes.matButton_axes_x->handledMaterials().at(0); }
00301 SoMaterial * GuideSysController::yAxisMaterial() const { return d->ui_axes.matButton_axes_y->handledMaterials().at(0); }
00302 SoMaterial * GuideSysController::zAxisMaterial() const { return d->ui_axes.matButton_axes_z->handledMaterials().at(0); }
00303 SoMaterial * GuideSysController::etaCone1Material() const { return d->ui_etacones.matButton_etaCone1->handledMaterials().at(0); }
00304 SoMaterial * GuideSysController::etaCone2Material() const { return d->ui_etacones.matButton_etaCone2->handledMaterials().at(0); }
00305 SoMaterial * GuideSysController::etaCone3Material() const { return d->ui_etacones.matButton_etaCone3->handledMaterials().at(0); }
00306 SoMaterial * GuideSysController::pixelProjSurfMaterial() const { return d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel->handledMaterials().at(0); }
00307 SoMaterial * GuideSysController::sctProjSurfMaterial() const { return d->ui_idprojsurfs.pushButton_projsurfmaterial_sct->handledMaterials().at(0); }
00308 SoMaterial * GuideSysController::trtProjSurfMaterial() const { return d->ui_idprojsurfs.pushButton_projsurfmaterial_trt->handledMaterials().at(0); }
00309
00310
00311 bool GuideSysController::showFloor() const
00312 {
00313 return d->ui.checkBox_floorAndLetters->isChecked() &&
00314 d->ui_floorandletters.checkBox_floorenabled->isChecked();
00315 }
00316
00317
00318 SbColor4f GuideSysController::floorColourAndTransp() const
00319 {
00320 return Imp::color4f(d->ui_floorandletters.colorButton_floor->color(),d->ui_floorandletters.spinBox_floortransp->value());
00321 }
00322
00323
00324 double GuideSysController::floorExtent() const
00325 {
00326 return d->ui_floorandletters.doubleSpinBox_floorextent->value()*m;
00327 }
00328
00329
00330 double GuideSysController::floorSpacing() const
00331 {
00332 return d->ui_floorandletters.doubleSpinBox_floorspacing->value()*m;
00333 }
00334
00335
00336 double GuideSysController::floorHeight() const
00337 {
00338 return d->ui_floorandletters.doubleSpinBox_floorheight->value()*m;
00339 }
00340
00341
00342 bool GuideSysController::showLetters() const
00343 {
00344 return d->ui.checkBox_floorAndLetters->isChecked() &&
00345 d->ui_floorandletters.checkBox_acdesignations->isChecked();
00346 }
00347
00348
00349 double GuideSysController::lettersZPos() const
00350 {
00351
00352 int nmax; double distmax;
00353 if (!VP1Floor::calcParsFromExtentAndSpacing( (VP1HelperClassBase*)this, floorExtent(), floorSpacing(), VP1Floor::nMax(), nmax, distmax )) {
00354 nmax = 10;
00355 distmax = 10*m;
00356 message("lettersZPos ERROR: Problems calculating floor nmax/distmax.");
00357 }
00358 return distmax*1.1;
00359 }
00360
00361
00362 double GuideSysController::lettersVerticalPos() const
00363 {
00364 return floorHeight()+1.5*m;
00365 }
00366
00367
00368 bool GuideSysController::showAxes() const
00369 {
00370 return d->ui.checkBox_coordinateAxes->isChecked();
00371 }
00372
00373
00374 double GuideSysController::axesLength() const
00375 {
00376 return d->ui_axes.doubleSpinBox_axes_lengths_m->value()*m *
00377 (d->ui_axes.checkBox_axes_shownegativeparts->isChecked()?-1.0:1.0);
00378 }
00379
00380
00381 SbVec3f GuideSysController::axesPosition() const
00382 {
00383 return SbVec3f(d->ui_axes.doubleSpinBox_axes_xpos_m->value()*m,
00384 d->ui_axes.doubleSpinBox_axes_ypos_m->value()*m,
00385 d->ui_axes.doubleSpinBox_axes_zpos_m->value()*m);
00386
00387 }
00388
00389
00390 double GuideSysController::relAxesThickness() const
00391 {
00392 return d->ui_axes.doubleSpinBox_axes_relthickness->value();
00393 }
00394
00395
00396 bool GuideSysController::showCartesianGrid() const
00397 {
00398 return d->ui.checkBox_grid->isChecked() &&
00399 d->ui_grid.radioButton_grid_cartesian->isChecked();
00400 }
00401
00402
00403 bool GuideSysController::showCylindricalGrid() const
00404 {
00405 return d->ui.checkBox_grid->isChecked() &&
00406 d->ui_grid.radioButton_grid_cylindrical->isChecked();
00407 }
00408
00409
00410 SbColor4f GuideSysController::gridColourAndTransp() const
00411 {
00412 return Imp::color4f(d->ui_grid.colorButton_grid->color(),d->ui_grid.spinBox_gridtransp->value());
00413 }
00414
00415
00416 double GuideSysController::gridSpacing() const
00417 {
00418 return d->ui_grid.doubleSpinBox_gridspacing->value()*m;
00419 }
00420
00421
00422 double GuideSysController::gridExtent() const
00423 {
00424 return d->ui_grid.doubleSpinBox_gridextent->value()*m;
00425 }
00426
00427
00428 bool GuideSysController::showEtaCone1() const
00429 {
00430 return d->ui.checkBox_etaCones->isChecked() &&
00431 d->ui_etacones.checkBox_etacone1->isChecked();
00432 }
00433
00434
00435 bool GuideSysController::showEtaCone2() const
00436 {
00437 return d->ui.checkBox_etaCones->isChecked() &&
00438 d->ui_etacones.checkBox_etacone2->isChecked();
00439 }
00440
00441
00442 bool GuideSysController::showEtaCone3() const
00443 {
00444 return d->ui.checkBox_etaCones->isChecked() &&
00445 d->ui_etacones.checkBox_etacone3->isChecked();
00446 }
00447
00448
00449 double GuideSysController::etaConeValue1() const
00450 {
00451 return std::max(1.0e-5,d->ui_etacones.doubleSpinBox_etaval1->value());
00452 }
00453
00454
00455 double GuideSysController::etaConeValue2() const
00456 {
00457 return std::max(1.0e-5,d->ui_etacones.doubleSpinBox_etaval2->value());
00458 }
00459
00460
00461 double GuideSysController::etaConeValue3() const
00462 {
00463 return std::max(1.0e-5,d->ui_etacones.doubleSpinBox_etaval3->value());
00464 }
00465
00466
00467 double GuideSysController::etaExtent() const
00468 {
00469 return d->ui_etacones.doubleSpinBox_etaconeextent->value() * m
00470 * (d->ui_etacones.radioButton_etaconeextentisr->isChecked() ? 1.0 : -1.0);
00471 }
00472
00473
00474 InDetProjFlags::InDetProjPartsFlags GuideSysController::Imp::projPartsFlag( bool barrelinner, bool barrelouter,
00475 bool endcapinner, bool endcapouter,
00476 bool endcap_hidenormalcyls_when_zasr,
00477 bool endcap_zasr )
00478 {
00479 InDetProjFlags::InDetProjPartsFlags parts(InDetProjFlags::NoProjections);
00480
00481 if ( barrelinner )
00482 parts |= InDetProjFlags::BarrelCentral;
00483 if ( barrelouter ) {
00484 parts |= InDetProjFlags::BarrelPositive;
00485 parts |= InDetProjFlags::BarrelNegative;
00486 }
00487
00488 if ( !( endcap_zasr && endcap_hidenormalcyls_when_zasr ) ) {
00489 if ( endcapinner ) {
00490
00491 parts |= InDetProjFlags::EndCapInnerPositive;
00492 parts |= InDetProjFlags::EndCapInnerNegative;
00493 }
00494 if ( endcapouter ) {
00495
00496 parts |= InDetProjFlags::EndCapOuterPositive;
00497 parts |= InDetProjFlags::EndCapOuterNegative;
00498 }
00499 }
00500
00501 if (endcap_zasr) {
00502 if ( barrelinner )
00503 parts |= InDetProjFlags::TRT_EndCapZToRCentral;
00504 if ( barrelouter ) {
00505 parts |= InDetProjFlags::TRT_EndCapZToRPositive;
00506 parts |= InDetProjFlags::TRT_EndCapZToRNegative;
00507 }
00508 }
00509 return parts;
00510 }
00511
00512
00513 InDetProjFlags::InDetProjPartsFlags GuideSysController::applicablePixelProjParts() const
00514 {
00515 return Imp::projPartsFlag( d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner->isChecked() || d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both->isChecked(),
00516 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer->isChecked() || d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both->isChecked(),
00517 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner->isChecked() || d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both->isChecked(),
00518 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer->isChecked() || d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both->isChecked() );
00519 }
00520
00521
00522 InDetProjFlags::InDetProjPartsFlags GuideSysController::applicableSCTProjParts() const
00523 {
00524 return Imp::projPartsFlag( d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner->isChecked() || d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both->isChecked(),
00525 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer->isChecked() || d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both->isChecked(),
00526 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner->isChecked() || d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both->isChecked(),
00527 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer->isChecked() || d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both->isChecked() );
00528 }
00529
00530
00531 InDetProjFlags::InDetProjPartsFlags GuideSysController::applicableTRTProjParts() const
00532 {
00533 return Imp::projPartsFlag( d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner->isChecked() || d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both->isChecked(),
00534 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer->isChecked() || d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both->isChecked(),
00535 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner->isChecked() || d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both->isChecked(),
00536 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer->isChecked() || d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both->isChecked(),
00537 true, d->ui_idprojsurfs.checkBox_trtprojsurf_z2r->isChecked() );
00538 }
00539
00540
00541 InDetProjFlags::DetTypeFlags GuideSysController::Imp::trtPartsEnabledByGUIOrDataUsage() const
00542 {
00543 InDetProjFlags::DetTypeFlags f(InDetProjFlags::NoDet);
00544 if (ui_idprojsurfs.groupBox_trtproj->isChecked()) {
00545 if (ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded->isChecked()) {
00546 f |= (inDetDetTypesUsingProjections&InDetProjFlags::TRT_all);
00547 } else {
00548 if (ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::TRT_brlpos;
00549 if (ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::TRT_brlneg;
00550 if (ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::TRT_ecpos;
00551 if (ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::TRT_ecneg;
00552 }
00553 }
00554 return f;
00555 }
00556
00557
00558 InDetProjFlags::DetTypeFlags GuideSysController::Imp::sctPartsEnabledByGUIOrDataUsage() const
00559 {
00560 InDetProjFlags::DetTypeFlags f(InDetProjFlags::NoDet);
00561 if (ui_idprojsurfs.groupBox_sctproj->isChecked()) {
00562 if (ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded->isChecked()) {
00563 f |= (inDetDetTypesUsingProjections&InDetProjFlags::SCT_all);
00564 } else {
00565 if (ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::SCT_brlpos;
00566 if (ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::SCT_brlneg;
00567 if (ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::SCT_ecpos;
00568 if (ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::SCT_ecneg;
00569 }
00570 }
00571 return f;
00572 }
00573
00574
00575 InDetProjFlags::DetTypeFlags GuideSysController::Imp::pixelPartsEnabledByGUIOrDataUsage() const
00576 {
00577 InDetProjFlags::DetTypeFlags f(InDetProjFlags::NoDet);
00578 if (ui_idprojsurfs.groupBox_pixelproj->isChecked()) {
00579 if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded->isChecked()) {
00580 f |= (inDetDetTypesUsingProjections&InDetProjFlags::Pixel_all);
00581 } else {
00582 if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::Pixel_brlpos;
00583 if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::Pixel_brlneg;
00584 if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::Pixel_ecpos;
00585 if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::Pixel_ecneg;
00586 }
00587 }
00588 return f;
00589 }
00590
00591
00592 InDetProjFlags::InDetProjPartsFlags GuideSysController::shownPixelProjSurfaces() const
00593 {
00594 InDetProjFlags::DetTypeFlags enabledDetRegions = d->pixelPartsEnabledByGUIOrDataUsage();
00595 if (!(InDetProjFlags::Pixel_all&enabledDetRegions)||!d->ui.checkBox_inDetProjSurfs->isChecked())
00596 return InDetProjFlags::NoProjections;
00597 InDetProjFlags::InDetProjPartsFlags pixelProjParts(applicablePixelProjParts());
00598 if (pixelProjParts==InDetProjFlags::NoProjections)
00599 return InDetProjFlags::NoProjections;
00600 InDetProjFlags::InDetProjPartsFlags dummy_sct(InDetProjFlags::NoProjections), dummy_trt(InDetProjFlags::NoProjections);
00601 InDetProjFlags::projectionPartsGivenUsedDetectors( pixelProjParts, dummy_sct, dummy_trt, enabledDetRegions );
00602 return pixelProjParts;
00603 }
00604
00605
00606 InDetProjFlags::InDetProjPartsFlags GuideSysController::shownSCTProjSurfaces() const
00607 {
00608 InDetProjFlags::DetTypeFlags enabledDetRegions = d->sctPartsEnabledByGUIOrDataUsage();
00609 if (!(InDetProjFlags::SCT_all&enabledDetRegions)||!d->ui.checkBox_inDetProjSurfs->isChecked())
00610 return InDetProjFlags::NoProjections;
00611 InDetProjFlags::InDetProjPartsFlags sctProjParts(applicableSCTProjParts());
00612 if (sctProjParts==InDetProjFlags::NoProjections)
00613 return InDetProjFlags::NoProjections;
00614 InDetProjFlags::InDetProjPartsFlags dummy_pixel(InDetProjFlags::NoProjections), dummy_trt(InDetProjFlags::NoProjections);
00615 InDetProjFlags::projectionPartsGivenUsedDetectors( dummy_pixel, sctProjParts, dummy_trt, enabledDetRegions );
00616 return sctProjParts;
00617 }
00618
00619
00620 InDetProjFlags::InDetProjPartsFlags GuideSysController::shownTRTProjSurfaces() const
00621 {
00622 InDetProjFlags::DetTypeFlags enabledDetRegions = d->trtPartsEnabledByGUIOrDataUsage();
00623 if (!(InDetProjFlags::TRT_all&enabledDetRegions)||!d->ui.checkBox_inDetProjSurfs->isChecked())
00624 return InDetProjFlags::NoProjections;
00625 InDetProjFlags::InDetProjPartsFlags trtProjParts(applicableTRTProjParts());
00626 if (trtProjParts==InDetProjFlags::NoProjections)
00627 return InDetProjFlags::NoProjections;
00628 InDetProjFlags::InDetProjPartsFlags dummy_pixel(InDetProjFlags::NoProjections), dummy_sct(InDetProjFlags::NoProjections);
00629 InDetProjFlags::projectionPartsGivenUsedDetectors( dummy_pixel, dummy_sct, trtProjParts,enabledDetRegions );
00630 return trtProjParts;
00631 }
00632
00633
00634 void GuideSysController::setInDetDetTypesUsingProjections(InDetProjFlags::DetTypeFlags f)
00635 {
00636 if (d->inDetDetTypesUsingProjections==f)
00637 return;
00638 d->inDetDetTypesUsingProjections=f;
00639 possibleChange_shownPixelProjSurfaces();
00640 possibleChange_shownSCTProjSurfaces();
00641 possibleChange_shownTRTProjSurfaces();
00642 }
00643
00644
00645 void GuideSysController::updateProjPartsCheckboxStates_Pixel()
00646 {
00647 const bool e(!d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded->isChecked());
00648 d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA->setEnabled(e);
00649 d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC->setEnabled(e);
00650 d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA->setEnabled(e);
00651 d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC->setEnabled(e);
00652 }
00653
00654
00655 void GuideSysController::updateProjPartsCheckboxStates_SCT()
00656 {
00657 const bool e(!d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded->isChecked());
00658 d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA->setEnabled(e);
00659 d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC->setEnabled(e);
00660 d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA->setEnabled(e);
00661 d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC->setEnabled(e);
00662 }
00663
00664
00665 void GuideSysController::updateProjPartsCheckboxStates_TRT()
00666 {
00667 const bool e(!d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded->isChecked());
00668 d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA->setEnabled(e);
00669 d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC->setEnabled(e);
00670 d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA->setEnabled(e);
00671 d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC->setEnabled(e);
00672 }
00673
00674
00675
00676 int GuideSysController::currentSettingsVersion() const
00677 {
00678 return 1;
00679 }
00680
00681
00682 void GuideSysController::actualSaveSettings(VP1Serialise&s) const
00683 {
00684
00685
00686
00687
00688 s.save(d->ui_floorandletters.matButton_letters);
00689 s.save(d->ui_axes.matButton_axes_x);
00690 s.save(d->ui_axes.matButton_axes_y);
00691 s.save(d->ui_axes.matButton_axes_z);
00692 s.save(d->ui_etacones.matButton_etaCone1);
00693 s.save(d->ui_etacones.matButton_etaCone2);
00694 s.save(d->ui_etacones.matButton_etaCone3);
00695 s.save(d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel);
00696 s.save(d->ui_idprojsurfs.pushButton_projsurfmaterial_sct);
00697 s.save(d->ui_idprojsurfs.pushButton_projsurfmaterial_trt);
00698
00699
00700 s.save(d->ui_grid.colorButton_grid);
00701 s.save(d->ui_grid.spinBox_gridtransp);
00702 s.save(d->ui_floorandletters.colorButton_floor);
00703 s.save(d->ui_floorandletters.spinBox_floortransp);
00704 s.save(d->ui_floorandletters.doubleSpinBox_floorheight);
00705 s.save(d->ui_floorandletters.checkBox_floorenabled);
00706 s.save(d->ui_floorandletters.doubleSpinBox_floorspacing);
00707 s.save(d->ui_floorandletters.doubleSpinBox_floorextent);
00708 s.save(d->ui_floorandletters.checkBox_acdesignations);
00709
00710 s.save(d->ui_axes.checkBox_axes_shownegativeparts);
00711 s.save(d->ui_axes.doubleSpinBox_axes_lengths_m);
00712 s.save(d->ui_axes.doubleSpinBox_axes_relthickness);
00713 s.save(d->ui_axes.doubleSpinBox_axes_xpos_m);
00714 s.save(d->ui_axes.doubleSpinBox_axes_ypos_m);
00715 s.save(d->ui_axes.doubleSpinBox_axes_zpos_m);
00716 s.save(0,d->ui_grid.radioButton_grid_cartesian,d->ui_grid.radioButton_grid_cylindrical);
00717 s.save(d->ui_grid.doubleSpinBox_gridspacing);
00718 s.save(d->ui_grid.doubleSpinBox_gridextent);
00719 s.save(d->ui_etacones.checkBox_etacone1);
00720 s.save(d->ui_etacones.doubleSpinBox_etaval1);
00721 s.save(d->ui_etacones.checkBox_etacone2);
00722 s.save(d->ui_etacones.doubleSpinBox_etaval2);
00723 s.save(d->ui_etacones.checkBox_etacone3);
00724 s.save(d->ui_etacones.doubleSpinBox_etaval3);
00725 s.save(d->ui_etacones.doubleSpinBox_etaconeextent);
00726 s.save(d->ui_etacones.radioButton_etaconeextentisr,d->ui_etacones.radioButton_etaconeextentisz);
00727
00728
00729
00730 s.save(d->ui_idprojsurfs.groupBox_pixelproj);
00731 s.save(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
00732 s.save(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
00733 s.save(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
00734 s.save(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
00735 s.save(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
00736 s.save(d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
00737 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
00738 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
00739 s.save(d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
00740 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
00741 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
00742 s.save(d->ui_idprojsurfs.groupBox_sctproj);
00743 s.save(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
00744 s.save(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
00745 s.save(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
00746 s.save(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
00747 s.save(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
00748 s.save(d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
00749 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
00750 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
00751 s.save(d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
00752 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
00753 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
00754 s.save(d->ui_idprojsurfs.groupBox_trtproj);
00755 s.save(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
00756 s.save(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
00757 s.save(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
00758 s.save(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
00759 s.save(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
00760 s.save(d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
00761 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
00762 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
00763 s.save(d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
00764 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
00765 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
00766 s.save(d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
00767
00768 s.save(d->ui.checkBox_coordinateAxes);
00769 s.save(d->ui.checkBox_etaCones);
00770 s.save(d->ui.checkBox_floorAndLetters);
00771 s.save(d->ui.checkBox_grid);
00772 s.save(d->ui.checkBox_inDetProjSurfs);
00773 }
00774
00775
00776 void GuideSysController::actualRestoreSettings(VP1Deserialise& s)
00777 {
00778 if (s.version()<0||s.version()>1) {
00779 message("Warning: State data in .vp1 file has unsupported version ("+str(s.version())+")");
00780 return;
00781 }
00782
00783 if (s.version()==0)
00784 s.ignoreInt();
00785
00786
00787 s.restore(d->ui_floorandletters.matButton_letters);
00788 s.restore(d->ui_axes.matButton_axes_x);
00789 s.restore(d->ui_axes.matButton_axes_y);
00790 s.restore(d->ui_axes.matButton_axes_z);
00791 s.restore(d->ui_etacones.matButton_etaCone1);
00792 s.restore(d->ui_etacones.matButton_etaCone2);
00793 s.restore(d->ui_etacones.matButton_etaCone3);
00794 s.restore(d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel);
00795 s.restore(d->ui_idprojsurfs.pushButton_projsurfmaterial_sct);
00796 s.restore(d->ui_idprojsurfs.pushButton_projsurfmaterial_trt);
00797
00798
00799 s.restore(d->ui_grid.colorButton_grid);
00800 s.restore(d->ui_grid.spinBox_gridtransp);
00801 s.restore(d->ui_floorandletters.colorButton_floor);
00802 s.restore(d->ui_floorandletters.spinBox_floortransp);
00803 s.restore(d->ui_floorandletters.doubleSpinBox_floorheight);
00804 s.restore(d->ui_floorandletters.checkBox_floorenabled);
00805 s.restore(d->ui_floorandletters.doubleSpinBox_floorspacing);
00806 s.restore(d->ui_floorandletters.doubleSpinBox_floorextent);
00807 s.restore(d->ui_floorandletters.checkBox_acdesignations);
00808 if (s.version()==0)
00809 s.ignoreBool();
00810 s.restore(d->ui_axes.checkBox_axes_shownegativeparts);
00811 s.restore(d->ui_axes.doubleSpinBox_axes_lengths_m);
00812 s.restore(d->ui_axes.doubleSpinBox_axes_relthickness);
00813 s.restore(d->ui_axes.doubleSpinBox_axes_xpos_m);
00814 s.restore(d->ui_axes.doubleSpinBox_axes_ypos_m);
00815 s.restore(d->ui_axes.doubleSpinBox_axes_zpos_m);
00816 s.restore(0,d->ui_grid.radioButton_grid_cartesian,d->ui_grid.radioButton_grid_cylindrical);
00817 s.restore(d->ui_grid.doubleSpinBox_gridspacing);
00818 s.restore(d->ui_grid.doubleSpinBox_gridextent);
00819 s.restore(d->ui_etacones.checkBox_etacone1);
00820 s.restore(d->ui_etacones.doubleSpinBox_etaval1);
00821 s.restore(d->ui_etacones.checkBox_etacone2);
00822 s.restore(d->ui_etacones.doubleSpinBox_etaval2);
00823 s.restore(d->ui_etacones.checkBox_etacone3);
00824 s.restore(d->ui_etacones.doubleSpinBox_etaval3);
00825 s.restore(d->ui_etacones.doubleSpinBox_etaconeextent);
00826 s.restore(d->ui_etacones.radioButton_etaconeextentisr,d->ui_etacones.radioButton_etaconeextentisz);
00827
00828
00829
00830 s.restore(d->ui_idprojsurfs.groupBox_pixelproj);
00831 s.restore(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
00832 s.restore(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
00833 s.restore(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
00834 s.restore(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
00835 s.restore(d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
00836 s.restore(d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
00837 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
00838 d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
00839 s.restore(d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
00840 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
00841 d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
00842 s.restore(d->ui_idprojsurfs.groupBox_sctproj);
00843 s.restore(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
00844 s.restore(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
00845 s.restore(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
00846 s.restore(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
00847 s.restore(d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
00848 s.restore(d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
00849 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
00850 d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
00851 s.restore(d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
00852 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
00853 d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
00854 s.restore(d->ui_idprojsurfs.groupBox_trtproj);
00855 s.restore(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
00856 s.restore(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
00857 s.restore(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
00858 s.restore(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
00859 s.restore(d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
00860 s.restore(d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
00861 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
00862 d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
00863 s.restore(d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
00864 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
00865 d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
00866 s.restore(d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
00867
00868 if (s.version()>=1) {
00869 s.restore(d->ui.checkBox_coordinateAxes);
00870 s.restore(d->ui.checkBox_etaCones);
00871 s.restore(d->ui.checkBox_floorAndLetters);
00872 s.restore(d->ui.checkBox_grid);
00873 s.restore(d->ui.checkBox_inDetProjSurfs);
00874 }
00875 }
00876
00878
00879
00880 #define VP1CONTROLLERCLASSNAME GuideSysController
00881 #include "VP1Base/VP1ControllerMacros.h"
00882 POSSIBLECHANGE_IMP(showFloor)
00883 POSSIBLECHANGE_IMP(floorColourAndTransp)
00884 POSSIBLECHANGE_IMP(floorExtent)
00885 POSSIBLECHANGE_IMP(floorSpacing)
00886 POSSIBLECHANGE_IMP(floorHeight)
00887 POSSIBLECHANGE_IMP(showLetters)
00888 POSSIBLECHANGE_IMP(lettersZPos)
00889 POSSIBLECHANGE_IMP(lettersVerticalPos)
00890 POSSIBLECHANGE_IMP(showAxes)
00891 POSSIBLECHANGE_IMP(axesLength)
00892 POSSIBLECHANGE_IMP(axesPosition)
00893 POSSIBLECHANGE_IMP(relAxesThickness)
00894 POSSIBLECHANGE_IMP(showCartesianGrid)
00895 POSSIBLECHANGE_IMP(showCylindricalGrid)
00896 POSSIBLECHANGE_IMP(gridColourAndTransp)
00897 POSSIBLECHANGE_IMP(gridSpacing)
00898 POSSIBLECHANGE_IMP(gridExtent)
00899 POSSIBLECHANGE_IMP(showEtaCone1)
00900 POSSIBLECHANGE_IMP(showEtaCone2)
00901 POSSIBLECHANGE_IMP(showEtaCone3)
00902 POSSIBLECHANGE_IMP(etaConeValue1)
00903 POSSIBLECHANGE_IMP(etaConeValue2)
00904 POSSIBLECHANGE_IMP(etaConeValue3)
00905 POSSIBLECHANGE_IMP(etaExtent)
00906 POSSIBLECHANGE_IMP(applicablePixelProjParts)
00907 POSSIBLECHANGE_IMP(applicableSCTProjParts)
00908 POSSIBLECHANGE_IMP(applicableTRTProjParts)
00909 POSSIBLECHANGE_IMP(shownPixelProjSurfaces)
00910 POSSIBLECHANGE_IMP(shownSCTProjSurfaces)
00911 POSSIBLECHANGE_IMP(shownTRTProjSurfaces)