ATLAS Offline Software
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
VP1ExaminerViewer::Imp Class Reference
Collaboration diagram for VP1ExaminerViewer::Imp:

Classes

class  StoredView
 

Public Types

enum  REGION {
  VERTEX, INDET, CALO, MUON,
  FORWARDREGION
}
 
enum  VIEW { ASIDE, CSIDE, BARREL }
 
enum  ROTATIONMODE { XROT, ZROT }
 

Public Member Functions

 Imp (const Imp &)=delete
 
Impoperator= (const Imp &)=delete
 
 Imp (VP1ExaminerViewer *tc, bool dvb)
 
 ~Imp ()
 
QString toString (const REGION &r)
 
QPushButton * addNewButton (QString text, QString tooltip, REGION region, VIEW view, QWidget *tempparent, QString iconname="")
 
void init ()
 
void detectorZoomButtonClicked (std::pair< REGION, VIEW >)
 
void takeTourButtonClicked ()
 
void grabFocus ()
 
bool ensureMenuInit ()
 
void updatePopupMenuStates ()
 
void updateEnvironmentNode ()
 
void applyMovieSettingsToAnimationSequencer ()
 
bool updateAnimationSequence ()
 
SoSphere * getRegionSphere (REGION, bool perspective)
 
float rotZWheelMotion (float value, float oldvalue)
 
float rotXWheelMotion (float value, float oldvalue)
 
void rotateCamera (SoCamera *cam, const SbVec3f &aroundaxis, const float delta)
 
void updateAmbientLightText ()
 
void updateMovieMenuVisuals ()
 
void aboutToShowMenu (QMenu *)
 
bool fitsCurrentCamType (const StoredView &sv)
 
void storedViewsChanged ()
 
QString firstAvailableStoredViewName ()
 

Static Public Member Functions

static int drawStyleToInt (SoQtViewer::DrawStyle)
 
static SoQtViewer::DrawStyle intToDrawStyle (int)
 
static QList< SoQtViewer::DrawStyle > getAllViewerDrawStyles ()
 
static int viewerDrawStyleToInt (SoQtViewer::DrawStyle)
 
static SoQtViewer::DrawStyle intToViewerDrawStyle (int)
 
static QString viewerDrawStyle2PrettyString (SoQtViewer::DrawStyle)
 
static QList< SoQtViewer::StereoType > getAllStereoViewTypes ()
 
static int viewerStereoTypeToInt (SoQtViewer::StereoType)
 
static SoQtViewer::StereoType intToViewerStereoType (int)
 
static QString viewerStereoType2PrettyString (SoQtViewer::StereoType)
 

Public Attributes

VP1ExaminerViewertheclass
 
std::map< QPushButton *, std::pair< REGION, VIEW > > detectorbuttons
 
QPushButton * takeTourButton
 
ROTATIONMODE rotationMode
 Which mode is left wheel in? More...
 
SoGroup * actualSceneGraph
 
SoEnvironment * environmentNode
 
QByteArray customtoureditorState
 
VP1CustomTourEditorcustomtoureditor
 
VP1CustomStereoEditorcustomstereoeditor
 
QMenu * popup_menu
 
QAction * popup_headLightAction
 
QAction * popup_antiAliasAction
 
QAction * popup_bgdColAction
 
QAction * popup_ambientLightAction
 
QAction * popup_focalLengthAction
 
QAction * popup_dumpSceneAction
 
QAction * popup_dumpSceneVRMLAction
 
QAction * popup_toSVGAction
 
QAction * popup_toEPSAction
 
QAction * popup_resetCameraAction
 
QAction * popup_hidedecorationsaction
 
QList< QAction * > popup_transptype_actions
 
QList< QAction * > popup_drawstyle_still_actions
 
QList< QAction * > popup_drawstyle_interactive_actions
 
QAction * popup_tourReturnToStartAction
 
QAction * popup_tourExecute
 
QAction * popup_tourStartEachEvent
 
QAction * popup_tourSpeedVerySlow
 
QAction * popup_tourSpeedSlow
 
QAction * popup_tourSpeedMedium
 
QAction * popup_tourSpeedFast
 
QAction * popup_tourSpeedVeryFast
 
QAction * popup_tourPartsVertex
 
QAction * popup_tourPartsInDet
 
QAction * popup_tourPartsCalo
 
QAction * popup_tourPartsMuon
 
QAction * popup_tourLoopOnce
 
QAction * popup_tourLoopTwice
 
QAction * popup_tourLoopThrice
 
QAction * popup_tourLoopForever
 
QMenu * viewmenu_storecurrentview
 
QMenu * viewmenu_deleteview
 
QMenu * viewmenu_restoreview
 
QMenu * viewmenu_zoomtoview
 
QAction * customtour_launcheditor
 
QAction * customtour_execute
 
QAction * stereo_launcheditor
 
QAction * action_movieenabled
 
QAction * action_moviewidth
 
QAction * action_movieheight
 
QAction * action_moviefps
 
QAction * action_movieoutdir
 
QAction * action_moviefadetocurrentview
 
float stereo_offset_value
 
QAction * popup_focal_value_action
 
bool detectorViewButtons
 
AnimationSequencer animationSequencer
 
bool tourLoopsForever
 
bool tourLoopsForeverSkipFirstFrame
 
VP1ExaminerViewer_SignalCatchersignalcatcher
 
bool isantialias
 
QPushButton * button_interact
 
QPushButton * button_examine
 
QPushButton * button_home
 
QPushButton * button_sethome
 
QPushButton * button_viewall
 
QPushButton * button_seek
 
QPushButton * button_togglecamera
 
SoSphere * sphere
 
bool decorationMenuRemoved
 
int ambientLightPercentage
 
QString movieFrameFileNamePrefix
 
QString lastDumpFile
 
QString lastSVGFile
 
QString lastEPSFile
 
bool resetCamera_isPerspective
 
QByteArray resetCamera_state
 
QList< StoredViewstoredViews
 
QList< QAction * > storeViewActions
 
QList< QAction * > restoreViewActions
 
QList< QAction * > deleteViewActions
 
QList< QAction * > zoomToViewActions
 

Detailed Description

Definition at line 68 of file VP1ExaminerViewer.cxx.

Member Enumeration Documentation

◆ REGION

Enumerator
VERTEX 
INDET 
CALO 
MUON 
FORWARDREGION 

Definition at line 175 of file VP1ExaminerViewer.cxx.

◆ ROTATIONMODE

Enumerator
XROT 
ZROT 

Definition at line 193 of file VP1ExaminerViewer.cxx.

193 { XROT, ZROT };

◆ VIEW

Enumerator
ASIDE 
CSIDE 
BARREL 

Definition at line 189 of file VP1ExaminerViewer.cxx.

189 { ASIDE, CSIDE, BARREL };

Constructor & Destructor Documentation

◆ Imp() [1/2]

VP1ExaminerViewer::Imp::Imp ( const Imp )
delete

◆ Imp() [2/2]

VP1ExaminerViewer::Imp::Imp ( VP1ExaminerViewer tc,
bool  dvb 
)
inline

Definition at line 74 of file VP1ExaminerViewer.cxx.

75 : theclass(tc),
76  takeTourButton(0),
79  environmentNode(0),
82  popup_menu(0),
120  action_moviefps(0),
123  stereo_offset_value(0.0),
125  detectorViewButtons(dvb),
126  animationSequencer(tc),
127  tourLoopsForever(false),
130  isantialias(false),
131  button_interact(0),
132  button_examine(0),
133  button_home(0),
134  button_sethome(0),
135  button_viewall(0),
136  button_seek(0),
138  sphere(0),
139  decorationMenuRemoved(false),
141  movieFrameFileNamePrefix("vp1_frame"),
143 {
144  VP1Msg::messageVerbose("VP1ExaminerViewer::Imp() constructor");
145  signalcatcher->m_d = this; init();
146 
147  // TEST
148  // With this command, Coin does not clear the pixel-buffer,
149  // so the previous (or background) image
150  // is not removed before the new rendering.
151  // theclass->setClearBeforeRender(FALSE, TRUE);
152  // theclass->setClearBeforeRender(FALSE, FALSE);
153  // theclass->setClearBeforeOverlayRender(FALSE);
154 }

◆ ~Imp()

VP1ExaminerViewer::Imp::~Imp ( )
inline

Definition at line 156 of file VP1ExaminerViewer.cxx.

157  {
158  VP1Msg::messageVerbose("VP1ExaminerViewer::~Imp() destructor");
159  if (actualSceneGraph)
160  actualSceneGraph->unref();
161  if (environmentNode)
162  environmentNode->unref();
163  if (customtoureditor)
164  customtoureditor->deleteLater();
165  if (customstereoeditor)
166  customstereoeditor->deleteLater();
167  delete popup_menu;
168  delete signalcatcher;
169  if (sphere)
170  sphere->unref();
171  }

Member Function Documentation

◆ aboutToShowMenu()

void VP1ExaminerViewer::Imp::aboutToShowMenu ( QMenu *  menu)

Definition at line 2147 of file VP1ExaminerViewer.cxx.

2148 {
2149  VP1Msg::messageVerbose("aboutToShowMenu()");
2150 
2152  viewmenu_storecurrentview->clear();
2153  storeViewActions.clear();
2154  QString fs = firstAvailableStoredViewName();
2155  QAction * act = viewmenu_storecurrentview->addAction("Store as "+fs);
2156  act->setData(fs);
2157  storeViewActions << act;
2158  if (!storedViews.isEmpty()) {
2159  viewmenu_storecurrentview->addSeparator();
2160  for(StoredView sv : storedViews) {
2161  act = viewmenu_storecurrentview->addAction("Overwrite "+sv.name());
2162  act->setIcon(sv.icon());
2163  if (!fitsCurrentCamType(sv)) {
2164  act->setEnabled(false);
2165  } else {
2166  act->setData(sv.name());
2167  storeViewActions << act;
2168  }
2169  }
2170  }
2171  return;
2172 
2173  }
2174  if (viewmenu_zoomtoview==menu) {
2175  viewmenu_zoomtoview->clear();
2176  zoomToViewActions.clear();
2177  for(StoredView sv : storedViews) {
2178  QAction * act = viewmenu_zoomtoview->addAction(sv.name());
2179  act->setIcon(sv.icon());
2180  if (!fitsCurrentCamType(sv)) {
2181  act->setEnabled(false);
2182  } else {
2183  act->setData(sv.name());
2184  zoomToViewActions << act;
2185  }
2186  }
2187  return;
2188  }
2189  if (viewmenu_restoreview==menu) {
2190  viewmenu_restoreview->clear();
2191  restoreViewActions.clear();
2192  for(StoredView sv : storedViews) {
2193  QAction * act = viewmenu_restoreview->addAction(sv.name());
2194  act->setIcon(sv.icon());
2195  act->setData(sv.name());
2196  restoreViewActions << act;
2197  }
2198  return;
2199  }
2200  if (viewmenu_deleteview==menu) {
2201  viewmenu_deleteview->clear();
2202  deleteViewActions.clear();
2203  for(StoredView sv : storedViews) {
2204  QAction * act = viewmenu_deleteview->addAction(sv.name());
2205  act->setIcon(sv.icon());
2206  act->setData(sv.name());
2207  deleteViewActions << act;
2208  }
2209  return;
2210  }
2211  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::aboutToShowMenu ERROR: Unknown menu");
2212 }

◆ addNewButton()

QPushButton * VP1ExaminerViewer::Imp::addNewButton ( QString  text,
QString  tooltip,
REGION  region,
VIEW  view,
QWidget *  tempparent,
QString  iconname = "" 
)

Definition at line 964 of file VP1ExaminerViewer.cxx.

965 {
966  VP1Msg::messageVerbose("VP1ExaminerViewer::Imp::addNewButton()");
967 
968  QPushButton * button = new QPushButton(tempparent);
969  if (iconname.isEmpty()) {
970  button->setText(text);
971  } else {
972  button->setIcon( QIcon(iconname) );
973  }
974  button->setToolTip(tooltip);
975  detectorbuttons[button] = std::make_pair(region,view);
976  button->setFocusPolicy(Qt::NoFocus);
977  // button->setIconSize(QSize(24, 24));
978  // button->setFixedSize(30, );
979  QObject::connect(button,SIGNAL(clicked()),signalcatcher,SLOT(catchSignal()));
980  theclass->addAppPushButton(button);
981  return button;
982 }

◆ applyMovieSettingsToAnimationSequencer()

void VP1ExaminerViewer::Imp::applyMovieSettingsToAnimationSequencer ( )

Definition at line 1225 of file VP1ExaminerViewer.cxx.

1226 {
1227  VP1Msg::messageVerbose("VP1ExaminerViewer::Imp::applyMovieSettingsToAnimationSequencer()");
1228 
1229  //Movie pars:
1230  if (action_movieenabled->isChecked()) {
1231  int width = action_moviewidth->data().toInt();
1232  int height = action_movieheight->data().toInt();
1233  int fps = action_moviefps->data().toInt();
1234  QString outdir = action_movieoutdir->data().toString();
1235  QDir().mkpath(outdir);
1238  } else {
1240  }
1241 }

◆ detectorZoomButtonClicked()

void VP1ExaminerViewer::Imp::detectorZoomButtonClicked ( std::pair< REGION, VIEW p)

Definition at line 1283 of file VP1ExaminerViewer.cxx.

1284 {
1285  grabFocus();
1286 
1287  VP1Msg::messageVerbose("detectorZoomButtonClicked region = "+toString(p.first)+", from "+QString((std::to_string(p.second) +" Z axis").c_str()));
1288 
1289  SoNode * rootnode = theclass->getSceneGraph();
1290  if (!rootnode) {
1291  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::detectorZoomButtonClicked WARNING: No scenegraph set. Ignoring.");
1292  return;
1293  }
1294  if ( ! ( rootnode->getTypeId().isDerivedFrom(SoGroup::getClassTypeId())) ) {
1295  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::detectorZoomButtonClicked WARNING: Root node does not derive from SoGroup. Ignoring.");
1296  return;
1297  }
1299  //Fix for bad camera (fixme: this doesn't really work... Perhaps let all detector buttons reset camera?):
1302  }
1303  SoCamera * camera = theclass->getCamera();
1304  if (!camera) {
1305  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::detectorZoomButtonClicked WARNING: Could not get camera. Ignoring.");
1306  return;
1307  }
1308  rootnode->ref();
1309  camera->ref();
1310 
1311  SoGroup * root = static_cast<SoGroup*>(rootnode);
1312 
1313  //Get region:
1314  SoSphere * regionsphere = getRegionSphere(p.first,
1316  //Get direction:
1317  int zDir=0;
1318  int xDir=0;
1319  switch (p.second){
1320  case ASIDE:
1321  {
1322  zDir=-1;
1324  theclass->setLeftWheelString("Rotz");
1325  break;
1326  }
1327  case CSIDE:
1328  {
1329  zDir=1;
1331  theclass->setLeftWheelString("Rotz");
1332  break;
1333  }
1334  case BARREL:
1335  {
1336  xDir=1;
1338  theclass->setLeftWheelString("Rotx");
1339  }
1340  }
1341  SbVec3f lookat(xDir,0,zDir), upvec(0,1,0);
1342 
1343  bool notifyenabled = root->enableNotify(false);
1344 
1345  root->insertChild(regionsphere,0);
1346  VP1Msg::messageVerbose("detectorZoomButtonClicked Initiating zoom.");
1347  if (theclass->isAnimating())
1348  theclass->stopAnimating();
1349  camera->unrefNoDelete();//Must be done before we start the zoom (to avoid an abort)
1350  // if (resetCamera_state!=QByteArray())
1351  // VP1CameraHelper::animatedZoomToCameraState( camera,root,resetCamera_state,1.0, true );
1352  // else
1353  VP1CameraHelper::animatedZoomToSubTree(camera,root,regionsphere,1.0,100.0,100.0,0.1,lookat,upvec);
1354 
1355  root->removeChild(regionsphere);
1356  if (notifyenabled) {
1357  root->enableNotify(true);
1358  root->touch();
1359  }
1360 
1361  rootnode->unrefNoDelete();
1362 
1363  VP1Msg::messageVerbose("detectorZoomButtonClicked end.");
1364 }

◆ drawStyleToInt()

int VP1ExaminerViewer::Imp::drawStyleToInt ( SoQtViewer::DrawStyle  ds)
static

Definition at line 598 of file VP1ExaminerViewer.cxx.

598  {
599  switch (ds) {
600  case VIEW_AS_IS: return 0;
601  case VIEW_HIDDEN_LINE: return 1;
602  case VIEW_NO_TEXTURE: return 2;
603  case VIEW_LOW_COMPLEXITY: return 3;
604  case VIEW_LINE: return 4;
605  case VIEW_POINT: return 5;
606  case VIEW_BBOX: return 6;
607  case VIEW_LOW_RES_LINE: return 7;
608  case VIEW_LOW_RES_POINT: return 8;
609  case VIEW_SAME_AS_STILL: return 9;
610  case VIEW_WIREFRAME_OVERLAY : return 10;
611  default:
612  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::drawStyleToInt ERROR: Unknown draw style");
613  return 0;
614  }
615 }

◆ ensureMenuInit()

bool VP1ExaminerViewer::Imp::ensureMenuInit ( )

Definition at line 1850 of file VP1ExaminerViewer.cxx.

1851 {
1852  if (popup_menu)
1853  return true;
1854  QWidget * w = theclass->getWidget();
1855  if (!w)
1856  return false;
1857  popup_menu = new QMenu (w);
1858 
1859  popup_bgdColAction = popup_menu->addAction("&Background Colour");
1860  popup_antiAliasAction = popup_menu->addAction("&Anti aliasing [A]");
1861  popup_resetCameraAction = popup_menu->addAction("&Reset camera");
1862 
1863  if (detectorViewButtons) {
1864  //Tour - base
1865  QMenu * tourmenu = popup_menu->addMenu("&Tour");
1866  popup_tourStartEachEvent = tourmenu->addAction("Start tour on new event");
1867  popup_tourStartEachEvent->setCheckable(true);
1868  popup_tourReturnToStartAction = tourmenu->addAction("Tour ends at &original view");
1869  popup_tourReturnToStartAction->setCheckable(true);
1870  popup_tourReturnToStartAction->setVisible(false);//Until functionality actually implemented
1871  QMenu * tourspeedmenu = tourmenu->addMenu("&Speed");
1872  QMenu * tourpartsmenu = tourmenu->addMenu("&Parts");
1873  QMenu * tourloopmenu = tourmenu->addMenu("&Looping");
1874  popup_tourExecute = tourmenu->addAction("E&xecute");
1875 
1876  //Tour - speed:
1877  popup_tourSpeedVerySlow = tourspeedmenu->addAction("Very s&low");
1878  popup_tourSpeedSlow = tourspeedmenu->addAction("&Slow");
1879  popup_tourSpeedMedium = tourspeedmenu->addAction("&Medium");
1880  popup_tourSpeedFast = tourspeedmenu->addAction("&Fast");
1881  popup_tourSpeedVeryFast = tourspeedmenu->addAction("Very f&ast");
1882  popup_tourSpeedVerySlow->setCheckable(true);
1883  popup_tourSpeedSlow->setCheckable(true);
1884  popup_tourSpeedMedium->setCheckable(true);
1885  popup_tourSpeedFast->setCheckable(true);
1886  popup_tourSpeedVeryFast->setCheckable(true);
1887  QActionGroup * tour_speed_group = new QActionGroup(tourspeedmenu);
1888  tour_speed_group->addAction(popup_tourSpeedVerySlow);
1889  tour_speed_group->addAction(popup_tourSpeedSlow);
1890  tour_speed_group->addAction(popup_tourSpeedMedium);
1891  tour_speed_group->addAction(popup_tourSpeedFast);
1892  tour_speed_group->addAction(popup_tourSpeedVeryFast);
1893  popup_tourSpeedMedium->setChecked(true);
1894 
1895  //Tour - parts:
1896  popup_tourPartsVertex = tourpartsmenu->addAction("&Vertex region");
1897  popup_tourPartsInDet = tourpartsmenu->addAction("&Inner Detector");
1898  popup_tourPartsCalo = tourpartsmenu->addAction("&Calorimeters");
1899  popup_tourPartsMuon = tourpartsmenu->addAction("&Muon systems");
1900  popup_tourPartsVertex->setCheckable(true);
1901  popup_tourPartsInDet->setCheckable(true);
1902  popup_tourPartsCalo->setCheckable(true);
1903  popup_tourPartsMuon->setCheckable(true);
1904  popup_tourPartsInDet->setChecked(true);
1905  popup_tourPartsMuon->setChecked(true);
1906 
1907  //Tour - Looping:
1908  popup_tourLoopOnce = tourloopmenu->addAction("&Once");
1909  popup_tourLoopTwice = tourloopmenu->addAction("&Twice");
1910  popup_tourLoopThrice = tourloopmenu->addAction("T&hrice");
1911  popup_tourLoopForever = tourloopmenu->addAction("&Indefinitely");
1912  popup_tourLoopOnce->setCheckable(true);
1913  popup_tourLoopTwice->setCheckable(true);
1914  popup_tourLoopThrice->setCheckable(true);
1915  popup_tourLoopForever->setCheckable(true);
1916  QActionGroup * tour_loop_group = new QActionGroup(tourloopmenu);
1917  tour_loop_group->addAction(popup_tourLoopOnce);
1918  tour_loop_group->addAction(popup_tourLoopTwice);
1919  tour_loop_group->addAction(popup_tourLoopThrice);
1920  tour_loop_group->addAction(popup_tourLoopForever);
1921  popup_tourLoopOnce->setChecked(true);
1922 
1923  }
1924 
1925  QMenu * advancedmenu = popup_menu->addMenu("&More");
1926 
1927  popup_hidedecorationsaction = advancedmenu->addAction("Hide &controls");
1928  popup_headLightAction = advancedmenu->addAction("&Headlight");
1929  popup_ambientLightAction = advancedmenu->addAction("dummy");
1930  popup_dumpSceneAction = advancedmenu->addAction("Dump &scene to file");
1931  popup_dumpSceneVRMLAction = advancedmenu->addAction("Dump &scene to VRML file");
1932  popup_toSVGAction = advancedmenu->addAction("Produce SV&G image");
1933  popup_toEPSAction = advancedmenu->addAction("Produce &EPS image");
1934 
1935  if (detectorViewButtons) {
1936  //Custom views:
1937  QMenu * viewsmenu = advancedmenu->addMenu("Stored &views");
1938  viewmenu_zoomtoview = viewsmenu->addMenu("Animated &zoom to view");
1939  viewmenu_restoreview = viewsmenu->addMenu("&Restore view");
1940  viewmenu_storecurrentview = viewsmenu->addMenu("Store &current view");
1941  viewmenu_deleteview = viewsmenu->addMenu("&Delete view");
1942  QObject::connect(viewmenu_storecurrentview,SIGNAL(aboutToShow()),signalcatcher,SLOT(catchSignal()));
1943  QObject::connect(viewmenu_deleteview,SIGNAL(aboutToShow()),signalcatcher,SLOT(catchSignal()));
1944  QObject::connect(viewmenu_restoreview,SIGNAL(aboutToShow()),signalcatcher,SLOT(catchSignal()));
1945  QObject::connect(viewmenu_zoomtoview,SIGNAL(aboutToShow()),signalcatcher,SLOT(catchSignal()));
1947  }
1948 
1949  if (detectorViewButtons) {
1950  //Custom tour:
1951  QMenu * customtourmenu = advancedmenu->addMenu("Custom &tour");
1952  customtour_launcheditor = customtourmenu->addAction("Launch &editor");
1953  customtour_execute = customtourmenu->addAction("E&xecute");
1954  customtour_execute->setEnabled(false);
1955 
1956  //Movies:
1957  QMenu * moviesmenu = advancedmenu->addMenu("&Movie settings");
1958  action_movieenabled = moviesmenu->addAction("&Enable movie output when executing tours (one image file per frame)");
1959  action_movieenabled->setCheckable(true);
1960  action_movieenabled->setChecked(false);
1961  action_moviewidth = moviesmenu->addAction("dummy");
1962  action_moviewidth->setData(1024);
1963  action_movieheight = moviesmenu->addAction("dummy");
1964  action_movieheight->setData(768);
1965  action_moviefps = moviesmenu->addAction("dummy");
1966  action_moviefps->setData(24);
1967  action_movieoutdir = moviesmenu->addAction("dummy");
1968  QString username=VP1QtUtils::environmentVariableValue("USER");
1969  action_movieoutdir->setData(username.isEmpty() ? "/tmp/vp1frames" : "/tmp/"+username+"/vp1frames");
1970  action_moviefadetocurrentview = moviesmenu->addAction("Fade last frame to current view (1s)");
1972  }
1973 
1974 
1976  popup_headLightAction->setCheckable(true);
1977  popup_antiAliasAction->setCheckable(true);
1978  popup_hidedecorationsaction->setCheckable(true);
1979 
1980 
1981  //Draw styles sub menu:
1982  QMenu * drawstylemenu = advancedmenu->addMenu("&Draw styles");
1983 
1984  QMenu * drawstyle_still_menu = drawstylemenu->addMenu("&Still draw style");
1985  QMenu * drawstyle_interactive_menu = drawstylemenu->addMenu("&Interactive draw style");
1986  QMenu * drawstyle_transptype_menu = drawstylemenu->addMenu("&Transparency Type");
1987 
1988  //Drawstyles sub menus:
1989  QActionGroup * ds_still_group = new QActionGroup(drawstyle_still_menu);
1990  QActionGroup * ds_interactive_group = new QActionGroup(drawstyle_interactive_menu);
1991  for(SoQtViewer::DrawStyle ds : getAllViewerDrawStyles()) {
1992  int ids = viewerDrawStyleToInt(ds);
1994  if (ds!=SoQtViewer::VIEW_SAME_AS_STILL) {
1995  //still menu:
1996  QAction * act = drawstyle_still_menu->addAction(pretty);
1997  act->setData(ids);
1999  ds_still_group->addAction(act);
2000  act->setCheckable(true);
2001  }
2002  if (ds!=SoQtViewer::VIEW_AS_IS) {
2003  //interactive menu:
2004  QAction * act = drawstyle_interactive_menu->addAction(pretty);
2005  act->setData(ids);
2007  ds_interactive_group->addAction(act);
2008  act->setCheckable(true);
2009  }
2010  }
2011 
2012  //Transparency type sub menu:
2013  QActionGroup * transptype_group = new QActionGroup(drawstyle_transptype_menu);
2014  for(SoGLRenderAction::TransparencyType type : VP1QtInventorUtils::getAllTransparencyTypes()) {
2015  QAction * act = drawstyle_transptype_menu->addAction(VP1QtInventorUtils::transparencyType2PrettyString(type));
2017  popup_transptype_actions << act;
2018  transptype_group->addAction(act);
2019  act->setCheckable(true);
2020  }
2021 
2022 
2023  //Stereo view sub menu:
2024  QMenu * stereoviewmenu_main = advancedmenu->addMenu("&Stereographic view");
2025  stereo_launcheditor = stereoviewmenu_main->addAction("Launch &editor");
2026 
2027  // focal length submenu
2028  popup_focal_value_action = advancedmenu->addAction("dummy"); // dummy text replaced here below
2029  SoCamera *camera = theclass->getCamera();
2030  float default_focal_camera = camera->focalDistance.getValue();
2031  popup_focal_value_action->setData(default_focal_camera);
2032  popup_focal_value_action->setText("Change camera FOCAL LENGTH [current: "+QString::number(default_focal_camera)+"]");
2033 
2034  // N.B.!! --> all the actions and menus here below are not needed anymore,
2035  // because we implemented the new stereo editor
2036 
2037 // QMenu * stereoviewmenu = stereoviewmenu_main->addMenu("stereo menu - viewer");
2038 // QMenu * stereoviewmenu_camera = stereoviewmenu_main->addMenu("stereo menu - camera");
2039 
2040 
2041 // // STEREO settings - SoQtViewer version
2042 //
2043 // QMenu * stereo_set_offset_menu = stereoviewmenu->addMenu("Set stereo &Offset");
2044 // popup_stereo_offset_value_action = stereoviewmenu->addAction("dummy"); // dummy text replaced here below
2045 // QMenu * stereo_set_type_menu = stereoviewmenu->addMenu("Set &Stereo type");
2046 // stereo_set_anaglyph_menu = stereoviewmenu->addMenu("Set &Anaglyph settings");
2047 
2048 
2049 // // build the Stereo Offset submenu
2050 // QActionGroup * stereo_set_offset_group = new QActionGroup(stereo_set_offset_menu);
2051 //
2052 // QList<float> offset_values;
2053 // offset_values << 0 << 1000.00 << 5000.00 << 10000.00 << 20000.00;
2054 //
2055 // for(float value : offset_values) {
2056 // QAction * act = stereo_set_offset_menu->addAction(QString::number(value));
2057 // act->setData(QString::number(value));
2058 // popup_stereo_offset_actions << act;
2059 // stereo_set_offset_group->addAction(act);
2060 // act->setCheckable(true);
2061 // }
2062 //
2063 //
2064 //
2065 // // an action to change the let the user change the stereo offset by entering a double
2066 // float default_offset = 0.1;
2067 // popup_stereo_offset_value_action->setData(default_offset);
2068 // popup_stereo_offset_value_action->setText("Change STEREO offset [current: "+QString::number(default_offset)+"]");
2069 //
2070 //
2071 // // build the Stereo Type submenu
2072 // QActionGroup * stereo_set_type_group = new QActionGroup(stereoviewmenu);
2073 //
2074 // QList<SoQtViewer::StereoType> stereo_type_values;
2075 // stereo_type_values << SoQtViewer::STEREO_NONE << SoQtViewer::STEREO_ANAGLYPH;
2076 //
2077 // for(SoQtViewer::StereoType value : getAllStereoViewTypes() ) {
2078 // QAction * act = stereo_set_type_menu->addAction(viewerStereoType2PrettyString(value));
2079 // act->setData( viewerStereoTypeToInt(value) );
2080 // popup_stereo_type_actions << act;
2081 // stereo_set_type_group->addAction(act);
2082 // act->setCheckable(true);
2083 // }
2084 //
2085 //
2086 // // build the Anaglyph settings submenu
2087 // QActionGroup * stereo_set_anaglyph_group = new QActionGroup(stereoviewmenu);
2088 //
2089 // QList<SoQtViewer::StereoType> stereo_type_values;
2090 // stereo_type_values << SoQtViewer::STEREO_NONE << SoQtViewer::STEREO_ANAGLYPH;
2091 //
2092 // QStringList options;
2093 // options << "Standard Red-Cyan view" << "Left-eye only" << "Right-eye only";
2094 //
2095 // for(QString value : options ) {
2096 // QAction * act = stereo_set_anaglyph_menu->addAction(value);
2097 // act->setData( value );
2098 // popup_stereo_anaglyph_actions << act;
2099 // stereo_set_anaglyph_group->addAction(act);
2100 // act->setCheckable(true);
2101 // }
2102 
2103 
2104 
2105 
2106  // STEREO settings - Camera version
2107 
2108 // // offset submenu
2109 // popup_stereo_offset_value_action_camera = stereoviewmenu_camera->addAction("dummy"); // dummy text replaced here below
2110 // // an action to change the let the user change the stereo offset by entering a double
2111 // float default_offset_camera = 0.1;
2112 // popup_stereo_offset_value_action_camera->setData(default_offset_camera);
2113 // popup_stereo_offset_value_action_camera->setText("Change STEREO offset [current: "+QString::number(default_offset_camera)+"]");
2114 //
2115 // // balance submenu
2116 // popup_stereo_balance_value_action_camera = stereoviewmenu_camera->addAction("dummy"); // dummy text replaced here below
2117 // // an action to change the let the user change the stereo offset by entering a double
2118 // float default_balance_camera = 1.0;
2119 // popup_stereo_balance_value_action_camera->setData(default_balance_camera);
2120 // popup_stereo_balance_value_action_camera->setText("Change STEREO balance [current: "+QString::number(default_balance_camera)+"]");
2121 //
2122 
2123 
2124 
2125 // // stereo camera view settings submenu
2126 // stereo_set_stereo_camera_view_menu = stereoviewmenu_camera->addMenu("Set Stereo &Camera view settings");
2127 // QActionGroup * stereo_set_stereo_camera_view_group = new QActionGroup(stereoviewmenu_camera);
2128 //
2129 // QStringList options_camera;
2130 // options_camera << "Standard view" << "Left-eye view" << "Right-eye view";
2131 //
2132 // for(QString value : options_camera ) {
2133 // QAction * act = stereo_set_stereo_camera_view_menu->addAction(value);
2134 // act->setData( value );
2135 // popup_stereo_anaglyph_actions_camera << act;
2136 // stereo_set_stereo_camera_view_group->addAction(act);
2137 // act->setCheckable(true);
2138 // }
2139 
2140 
2141 
2142  return true;
2143 
2144 }

◆ firstAvailableStoredViewName()

QString VP1ExaminerViewer::Imp::firstAvailableStoredViewName ( )
inline

Definition at line 368 of file VP1ExaminerViewer.cxx.

368  {
369  const bool perspective(theclass->currentCamIsPerspective());
370  int i(1);
371  while (true) {
372  QString n = QString(perspective?"Perspective":"Orthographic")+"View"+QString::number(i++);
373  bool ok(true);
374  for(StoredView sv : storedViews) {
375  if (sv.name()==n) {
376  ok = false;
377  break;
378  }
379  }
380  if (ok)
381  return n;
382  }
383  }

◆ fitsCurrentCamType()

bool VP1ExaminerViewer::Imp::fitsCurrentCamType ( const StoredView sv)
inline

Definition at line 353 of file VP1ExaminerViewer.cxx.

353 { return sv.camStateIsPerspective()==theclass->currentCamIsPerspective(); }

◆ getAllStereoViewTypes()

QList< SoQtViewer::StereoType > VP1ExaminerViewer::Imp::getAllStereoViewTypes ( )
static

Definition at line 2963 of file VP1ExaminerViewer.cxx.

2964 {
2965  VP1Msg::messageVerbose("getAllStereoViewTypes()");
2966  QList<SoQtViewer::StereoType> l;
2967 
2968  // for the moment we only use these two
2969  l << SoQtViewer::STEREO_NONE; //Use monoscopic rendering.
2970  l<< SoQtViewer::STEREO_ANAGLYPH; //Render stereo by superimposing two images of the same scene, but with different color filters over the left and right view (or "eye").
2971  //This is a way of rendering stereo which works on any display, using color-filter glasses. Such glasses are usually cheap and easy to come by.
2972  //See also: setAnaglyphStereoColorMasks()
2973 
2974  // test
2975  l << SoQtViewer::STEREO_QUADBUFFER; //Render stereo by using OpenGL quad-buffers. This is the most common interface for stereo rendering for more expensive hardware devices, such as shutter glasses and polarized glasses.
2976  //The well known Crystal Eyes glasses are commonly used with this type of stereo display.
2977  l << SoQtViewer::STEREO_INTERLEAVED_ROWS; //Interleaving / interlacing rows from the left and right eye is another stereo rendering method requiring special hardware. One example of a provider of shutter glasses working with interleaved glasses is VRex:
2978  //http://www.vrex.com/
2979  l << SoQtViewer::STEREO_INTERLEAVED_COLUMNS; //Same basic technique as SoQtViewer::STEREO_INTERLEAVED_ROWS, only it is vertical lines that are interleaved / interlaced, instead of horizontal lines.
2980 
2981  return l;
2982 }

◆ getAllViewerDrawStyles()

QList< SoQtViewer::DrawStyle > VP1ExaminerViewer::Imp::getAllViewerDrawStyles ( )
static

Definition at line 3032 of file VP1ExaminerViewer.cxx.

3033 {
3034  VP1Msg::messageVerbose("getAllViewerDrawStyles()");
3035 
3036  QList<SoQtViewer::DrawStyle> l;
3037  l << SoQtViewer::VIEW_SAME_AS_STILL
3038  << SoQtViewer::VIEW_AS_IS
3039  << SoQtViewer::VIEW_HIDDEN_LINE
3040  << SoQtViewer::VIEW_NO_TEXTURE
3041  << SoQtViewer::VIEW_LOW_COMPLEXITY
3042  << SoQtViewer::VIEW_LINE
3043  << SoQtViewer::VIEW_POINT
3044  << SoQtViewer::VIEW_BBOX
3045  << SoQtViewer::VIEW_LOW_RES_LINE
3046  << SoQtViewer::VIEW_LOW_RES_POINT
3047  << SoQtViewer::VIEW_WIREFRAME_OVERLAY;
3048  return l;
3049 }

◆ getRegionSphere()

SoSphere * VP1ExaminerViewer::Imp::getRegionSphere ( REGION  region,
bool  perspective 
)

Definition at line 1179 of file VP1ExaminerViewer.cxx.

1180 {
1181  if (!sphere) {
1182  sphere = new SoSphere;
1183  sphere->ref();
1184  }
1185  double r(30);
1186  switch (region) {
1187  case VERTEX:
1188  VP1Msg::messageVerbose("set sphere dimensions for vertex");
1189  //r = perspective ? 0.5 : 0.5;
1190  r=0.5;
1191  break;
1192  case INDET:
1193  VP1Msg::messageVerbose("set sphere dimensions for indet");
1194  r = perspective ? 13 : 7;
1195  break;
1196  case CALO:
1197  VP1Msg::messageVerbose("set sphere dimensions for calo");
1198  r = perspective ? 35 : 27;
1199  break;
1200  case FORWARDREGION:
1201  VP1Msg::messageVerbose("set sphere dimensions for forward region");
1202  //r = perspective ? 600 : 600;
1203  r=600;
1204  break;
1205  case MUON:
1206  default:
1207  VP1Msg::messageVerbose("set sphere dimensions for muon");
1208  r = perspective ? 95 : 73;
1209  break;
1210  }
1211  sphere->radius = r * 1000.0;
1212  return sphere;
1213 }

◆ grabFocus()

void VP1ExaminerViewer::Imp::grabFocus ( )

Definition at line 1216 of file VP1ExaminerViewer.cxx.

1217 {
1218  VP1Msg::messageVerbose("VP1ExaminerViewer::Imp::grabFocus()");
1219  QWidget * w = theclass->getGLWidget();
1220  if (w)
1221  w->setFocus(Qt::OtherFocusReason);
1222 }

◆ init()

void VP1ExaminerViewer::Imp::init ( )

Definition at line 1088 of file VP1ExaminerViewer.cxx.

1089 {
1090  VP1Msg::messageVerbose("VP1ExaminerViewer::Imp::init");
1091  QWidget * tempparent = new QWidget();//Use this as temporary parent to
1092  //avoid the buttons temporarily
1093  //showing up as individual top
1094  //widgets.
1095  tempparent->setVisible(false);
1096  if (detectorViewButtons) {
1097  // addNewButton("VA","View vertex region from positive Z axis",VERTEX,ASIDE,tempparent);
1098  // addNewButton("VC","View vertex region from negative Z axis",VERTEX,CSIDE,tempparent);
1099 
1100  addNewButton("IA","View inner detector from positive Z axis",INDET,ASIDE,tempparent);
1101  addNewButton("IC","View inner detector from negative Z axis",INDET,CSIDE,tempparent);
1102 
1103  addNewButton("CA","View calorimeters from positive Z axis",CALO,ASIDE,tempparent);
1104  addNewButton("CC","View calorimeters from negative Z axis",CALO,CSIDE,tempparent);
1105 
1106  addNewButton("MA","View muon spectrometer from positive Z axis",MUON,ASIDE,tempparent);
1107  addNewButton("MC","View muon spectrometer from negative Z axis",MUON,CSIDE,tempparent);
1108 
1109  addNewButton("FA","View forward region from positive Z axis",FORWARDREGION,ASIDE,tempparent);
1110  addNewButton("FC","View forward region from negative Z axis",FORWARDREGION,CSIDE,tempparent);
1111 
1112  addNewButton("MB","View muon spectrometer from barrel",MUON,BARREL,tempparent, ":icons/icons/rphi.png");
1113 
1114  // This one is special:
1115  //addNewButton("XT", "Execute a tour of the detector",INDET, true, tempparent);
1116  {
1117  QPushButton *button = new QPushButton(tempparent);
1118  button->setText("XT");
1119  button->setToolTip("Execute a tour of the detector (configure in context menu)");
1120  button->setFocusPolicy(Qt::NoFocus);
1121  takeTourButton=button;
1122  QObject::connect(button,SIGNAL(clicked()), signalcatcher, SLOT(catchSignal()));
1123  theclass->addAppPushButton(button);
1124  QObject::connect(&animationSequencer,SIGNAL(animationFinishedSuccessfully()),signalcatcher,SLOT(catchSignal()));
1125  }
1126  }
1127  QWidget * w_spacer = new QWidget(tempparent);
1128  QSizePolicy sp_spacer(w_spacer->sizePolicy());
1129  unsigned vertStretch = 99999;
1130  sp_spacer.setVerticalStretch(vertStretch);
1131  w_spacer->setSizePolicy(sp_spacer);
1132  theclass->addAppPushButton(w_spacer);
1133 
1134  tempparent->deleteLater();
1135 }

◆ intToDrawStyle()

SoQtViewer::DrawStyle VP1ExaminerViewer::Imp::intToDrawStyle ( int  i)
static

Definition at line 618 of file VP1ExaminerViewer.cxx.

618  {
619  switch (i) {
620  case 0: return SoQtViewer::VIEW_AS_IS;
621  case 1: return SoQtViewer::VIEW_HIDDEN_LINE;
622  case 2: return SoQtViewer::VIEW_NO_TEXTURE;
623  case 3: return SoQtViewer::VIEW_LOW_COMPLEXITY;
624  case 4: return SoQtViewer::VIEW_LINE;
625  case 5: return SoQtViewer::VIEW_POINT;
626  case 6: return SoQtViewer::VIEW_BBOX;
627  case 7: return SoQtViewer::VIEW_LOW_RES_LINE;
628  case 8: return SoQtViewer::VIEW_LOW_RES_POINT;
629  case 9: return SoQtViewer::VIEW_SAME_AS_STILL;
630  case 10: return SoQtViewer::VIEW_WIREFRAME_OVERLAY;
631  default:
632  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::intToDrawStyle ERROR: int out of range "+str(i));
633  return SoQtViewer::VIEW_AS_IS;
634  }
635 }

◆ intToViewerDrawStyle()

SoQtViewer::DrawStyle VP1ExaminerViewer::Imp::intToViewerDrawStyle ( int  i)
static

Definition at line 3073 of file VP1ExaminerViewer.cxx.

3074 {
3075  switch (i) {
3076  case 0: return SoQtViewer::VIEW_AS_IS;
3077  case 1: return SoQtViewer::VIEW_HIDDEN_LINE;
3078  case 2: return SoQtViewer::VIEW_NO_TEXTURE;
3079  case 3: return SoQtViewer::VIEW_LOW_COMPLEXITY;
3080  case 4: return SoQtViewer::VIEW_LINE;
3081  case 5: return SoQtViewer::VIEW_POINT;
3082  case 6: return SoQtViewer::VIEW_BBOX;
3083  case 7: return SoQtViewer::VIEW_LOW_RES_LINE;
3084  case 8: return SoQtViewer::VIEW_LOW_RES_POINT;
3085  case 9: return SoQtViewer::VIEW_SAME_AS_STILL;
3086  case 10: return SoQtViewer::VIEW_WIREFRAME_OVERLAY;
3087  default:
3088  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::intToViewerDrawStyle ERROR: int out of range "+VP1Msg::str(i));
3089  return SoQtViewer::VIEW_AS_IS;
3090  }
3091 }

◆ intToViewerStereoType()

SoQtViewer::StereoType VP1ExaminerViewer::Imp::intToViewerStereoType ( int  i)
static

Definition at line 3013 of file VP1ExaminerViewer.cxx.

3014 {
3015  VP1Msg::messageVerbose("intToViewerStereoType() - "+QString::number(i) );
3016  switch (i) {
3017  case 0: return SoQtViewer::STEREO_NONE;
3018  case 1: return SoQtViewer::STEREO_ANAGLYPH;
3019  case 2: return SoQtViewer::STEREO_QUADBUFFER;
3020  case 3: return SoQtViewer::STEREO_INTERLEAVED_ROWS;
3021  case 4: return SoQtViewer::STEREO_INTERLEAVED_COLUMNS;
3022  default:
3023  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::intToViewerStereoType ERROR: int out of range "+VP1Msg::str(i));
3024  return SoQtViewer::STEREO_NONE;
3025  }
3026 }

◆ operator=()

Imp& VP1ExaminerViewer::Imp::operator= ( const Imp )
delete

◆ rotateCamera()

void VP1ExaminerViewer::Imp::rotateCamera ( SoCamera *  cam,
const SbVec3f &  aroundaxis,
const float  delta 
)

Definition at line 1620 of file VP1ExaminerViewer.cxx.

1623 {
1624  const SbVec3f DEFAULTDIRECTION(0, 0, -1);
1625  const SbRotation currentorientation = cam->orientation.getValue();
1626 
1627  SbVec3f currentdir;
1628  currentorientation.multVec(DEFAULTDIRECTION, currentdir);
1629 
1630  const SbVec3f focalpoint = cam->position.getValue() +
1631  cam->focalDistance.getValue() * currentdir;
1632 
1633  // set new orientation
1634  cam->orientation = SbRotation(aroundaxis, delta) * currentorientation;
1635 
1636  SbVec3f newdir;
1637  cam->orientation.getValue().multVec(DEFAULTDIRECTION, newdir);
1638  cam->position = focalpoint - cam->focalDistance.getValue() * newdir;
1639 }

◆ rotXWheelMotion()

float VP1ExaminerViewer::Imp::rotXWheelMotion ( float  value,
float  oldvalue 
)

Definition at line 1607 of file VP1ExaminerViewer.cxx.

1608 {
1609  SoCamera * cam = theclass->getCamera();
1610  if (!cam)
1611  return 0.0f; // can happen for empty scenegraph
1612 
1613  cam->ref();
1614  rotateCamera(cam, SbVec3f(-1, 0, 0), value - oldvalue);
1615  cam->unrefNoDelete();
1616  return value;
1617 }

◆ rotZWheelMotion()

float VP1ExaminerViewer::Imp::rotZWheelMotion ( float  value,
float  oldvalue 
)

Definition at line 1594 of file VP1ExaminerViewer.cxx.

1595 {
1596  SoCamera * cam = theclass->getCamera();
1597  if (!cam)
1598  return 0.0f; // can happen for empty scenegraph
1599 
1600  cam->ref();
1601  rotateCamera(cam, SbVec3f(0, 0, -1), value - oldvalue);
1602  cam->unrefNoDelete();
1603  return value;
1604 }

◆ storedViewsChanged()

void VP1ExaminerViewer::Imp::storedViewsChanged ( )
inline

Definition at line 356 of file VP1ExaminerViewer.cxx.

356  {
358  viewmenu_deleteview->setEnabled(!storedViews.isEmpty());
360  viewmenu_restoreview->setEnabled(!storedViews.isEmpty());
362  viewmenu_zoomtoview->setEnabled(!storedViews.isEmpty());
363  }

◆ takeTourButtonClicked()

void VP1ExaminerViewer::Imp::takeTourButtonClicked ( )

Definition at line 1267 of file VP1ExaminerViewer.cxx.

1267  {
1268  VP1Msg::messageVerbose("takeTourButtonClicked begin.");
1269  grabFocus();
1270  if (theclass->isAnimating())
1271  theclass->stopAnimating();
1272  if (updateAnimationSequence()) {
1274  //animationSequencer
1276  } else {
1277  VP1Msg::messageDebug("Aborting tour since no detector parts enabled.");
1278  }
1279  VP1Msg::messageVerbose("takeTourButtonClicked end.");
1280 }

◆ toString()

QString VP1ExaminerViewer::Imp::toString ( const REGION r)
inline

Definition at line 176 of file VP1ExaminerViewer.cxx.

176  {
177  switch (r) {
178  case VERTEX: return "VERTEX";
179  case INDET: return "INDET";
180  case FORWARDREGION: return "FORWARDREGION";
181  case CALO: return "CALO";
182  case MUON: return "MUON";
183  default: return "Unknown(ERROR)";
184  }
185  }

◆ updateAmbientLightText()

void VP1ExaminerViewer::Imp::updateAmbientLightText ( )
inline

Definition at line 308 of file VP1ExaminerViewer.cxx.

308  {
310  popup_ambientLightAction->setText("Change ambient &light [current "+QString::number(ambientLightPercentage)+"%]");
311  }

◆ updateAnimationSequence()

bool VP1ExaminerViewer::Imp::updateAnimationSequence ( )

Definition at line 985 of file VP1ExaminerViewer.cxx.

986 {
987  VP1Msg::messageVerbose("VP1ExaminerViewer::Imp::updateAnimationSequence()");
989  ensureMenuInit();
990 
991  //Speed:
992  double steptime=3;//seconds (fixme. Also, fix number of loops... Also, calculate total time and display in speed menu...
993  if (popup_tourSpeedVerySlow->isChecked())
994  steptime *= 3;
995  else if (popup_tourSpeedSlow->isChecked())
996  steptime *= 1.5;
997  else if (popup_tourSpeedFast->isChecked())
998  steptime /= 1.5;
999  else if (popup_tourSpeedVeryFast->isChecked())
1000  steptime /= 3;
1001 
1002  //cycles:
1003  tourLoopsForever = popup_tourLoopForever->isChecked();
1004  int nloops(1);//define number of loops
1005  if (popup_tourLoopTwice->isChecked())
1006  nloops = 2;
1007  else if (popup_tourLoopThrice->isChecked())
1008  nloops = 3;
1009 
1010  int nregions(0);
1012  double firstfact(action_movieenabled->isChecked()?0.0:0.25);
1014  bool first(true);
1015  for (int iloop = 0; iloop < nloops; ++iloop) {
1016  if (popup_tourPartsMuon->isChecked()) {
1018  if (first||latestRegion!=region)
1019  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), (first?firstfact:1.0)*steptime);
1020  animationSequencer.sequence().addFrame(region, SbVec3f(sin(10*M_PI/6), 0,cos(10*M_PI/6)), steptime);
1021  animationSequencer.sequence().addFrame(region, SbVec3f(sin(2*M_PI/6), 0,cos(2*M_PI/6)), steptime);
1022  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), steptime);
1023  latestRegion=region;
1024  if (first)
1025  firstRegion = region;
1026  first=false;
1027  if (iloop==0)
1028  ++nregions;
1029  }
1030  if (popup_tourPartsCalo->isChecked()) {
1032  if (first||latestRegion!=region)
1033  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), (first?firstfact:1.0)*steptime);
1034  animationSequencer.sequence().addFrame(region, SbVec3f(sin(10*M_PI/6), 0,cos(10*M_PI/6)), steptime);
1035  animationSequencer.sequence().addFrame(region, SbVec3f(sin(2*M_PI/6), 0,cos(2*M_PI/6)), steptime);
1036  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), steptime);
1037  latestRegion=region;
1038  if (first)
1039  firstRegion = region;
1040  first=false;
1041  if (iloop==0)
1042  ++nregions;
1043  }
1044  if (popup_tourPartsInDet->isChecked()) {
1046  if (first||latestRegion!=region)
1047  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), (first?firstfact:1.0)*steptime);
1048  animationSequencer.sequence().addFrame(region, SbVec3f(sin(10*M_PI/6), 0,cos(10*M_PI/6)), steptime);
1049  animationSequencer.sequence().addFrame(region, SbVec3f(sin(2*M_PI/6), 0,cos(2*M_PI/6)), steptime);
1050  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), steptime);
1051  latestRegion=region;
1052  if (first)
1053  firstRegion = region;
1054  first=false;
1055  if (iloop==0)
1056  ++nregions;
1057  }
1058  if (popup_tourPartsVertex->isChecked()) {
1060  if (first||latestRegion!=region)
1061  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), (first?firstfact:1.0)*steptime);
1062  animationSequencer.sequence().addFrame(region, SbVec3f(sin(10*M_PI/6), 0,cos(10*M_PI/6)), steptime);
1063  animationSequencer.sequence().addFrame(region, SbVec3f(sin(2*M_PI/6), 0,cos(2*M_PI/6)), steptime);
1064  animationSequencer.sequence().addFrame(region, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), steptime);
1065  latestRegion=region;
1066  if (first)
1067  firstRegion = region;
1068  first=false;
1069  if (iloop==0)
1070  ++nregions;
1071  }
1072  if (first)//Apparently nothing was enabled
1073  return false;
1074  }
1075  if (tourLoopsForever && nregions==1)
1077 
1078  if (!tourLoopsForever&&latestRegion!=firstRegion)
1079  animationSequencer.sequence().addFrame(firstRegion, SbVec3f(sin(6*M_PI/6), 0,cos(6*M_PI/6)), steptime);
1080  if (firstfact>0.0&&!tourLoopsForever)
1082 
1083  return true;
1084 }

◆ updateEnvironmentNode()

void VP1ExaminerViewer::Imp::updateEnvironmentNode ( )
inline

Definition at line 273 of file VP1ExaminerViewer.cxx.

273  {
274  if (environmentNode) {
275  int al = theclass->ambientLight();
276  environmentNode->ambientIntensity = (al==0?0.0f:(al==100?1.0f:al/100.0f));
277  }
278  }

◆ updateMovieMenuVisuals()

void VP1ExaminerViewer::Imp::updateMovieMenuVisuals ( )

Definition at line 1827 of file VP1ExaminerViewer.cxx.

1828 {
1829  VP1Msg::messageVerbose("VP1ExaminerViewer::Imp::updateMovieMenuVisuals()");
1830 
1831  ensureMenuInit();
1832  int width = action_moviewidth->data().toInt();
1833  int height = action_movieheight->data().toInt();
1834  int fps = action_moviefps->data().toInt();
1835  QString outdir = action_movieoutdir->data().toString();
1836  action_moviewidth->setText("Change output &width [current: "+QString::number(width)+"]");
1837  action_movieheight->setText("Change output &height [current: "+QString::number(height)+"]");
1838  action_moviefps->setText("Change output &FPS [current: "+QString::number(fps)+"]");
1839  action_movieoutdir->setText("Change output &dir [current: "+outdir+"]");
1840 
1841  bool c(action_movieenabled->isChecked());
1842  action_moviewidth->setEnabled(c);
1843  action_movieheight->setEnabled(c);
1844  action_moviefps->setEnabled(c);
1845  action_movieoutdir->setEnabled(c);
1846 
1847 }

◆ updatePopupMenuStates()

void VP1ExaminerViewer::Imp::updatePopupMenuStates ( )

Definition at line 2215 of file VP1ExaminerViewer.cxx.

2216 {
2217  VP1Msg::messageVerbose("updatePopupMenuStates()");
2218 
2219  if (!popup_headLightAction)
2220  return;
2221  popup_headLightAction->setChecked(theclass->isHeadlight());
2222  popup_antiAliasAction->setChecked(theclass->isAntiAlias());
2223  popup_hidedecorationsaction->setChecked(! theclass->isDecoration());
2224 
2225  int idrawstyle_still = viewerDrawStyleToInt(theclass->getDrawStyle(SoQtViewer::STILL));
2226  for (QAction * act : popup_drawstyle_still_actions) {
2227  if (act->data().toInt() == idrawstyle_still) {
2228  act->setChecked(true);
2229  break;
2230  }
2231  }
2232 
2233  int idrawstyle_interactive = viewerDrawStyleToInt(theclass->getDrawStyle(SoQtViewer::INTERACTIVE));
2234  for (QAction * act : popup_drawstyle_interactive_actions) {
2235  if (act->data().toInt() == idrawstyle_interactive) {
2236  act->setChecked(true);
2237  break;
2238  }
2239  }
2240 
2241  int itransptype = VP1QtInventorUtils::transparencyTypeToInt(theclass->getTransparencyType());
2242  for (QAction * act : popup_transptype_actions) {
2243  if (act->data().toInt() == itransptype) {
2244  act->setChecked(true);
2245  break;
2246  }
2247  }
2248 
2249  popup_resetCameraAction->setVisible(resetCamera_state!=QByteArray());
2250 
2251 }

◆ viewerDrawStyle2PrettyString()

QString VP1ExaminerViewer::Imp::viewerDrawStyle2PrettyString ( SoQtViewer::DrawStyle  ds)
static

Definition at line 3094 of file VP1ExaminerViewer.cxx.

3095 {
3096  switch (ds) {
3097  case SoQtViewer::VIEW_AS_IS: return "As is";
3098  case SoQtViewer::VIEW_HIDDEN_LINE: return "Hidden line";
3099  case SoQtViewer::VIEW_NO_TEXTURE: return "No texture";
3100  case SoQtViewer::VIEW_LOW_COMPLEXITY: return "Low complexity";
3101  case SoQtViewer::VIEW_LINE: return "Line";
3102  case SoQtViewer::VIEW_POINT: return "Point";
3103  case SoQtViewer::VIEW_BBOX: return "Bounding boxes";
3104  case SoQtViewer::VIEW_LOW_RES_LINE: return "Low resolution lines";
3105  case SoQtViewer::VIEW_LOW_RES_POINT: return "Low resolution points";
3106  case SoQtViewer::VIEW_SAME_AS_STILL: return "Same as still";
3107  case SoQtViewer::VIEW_WIREFRAME_OVERLAY: return "Wireframe overlay";
3108  default:
3109  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::viewerDrawStyleToInt ERROR: Unknown viewer draw style");
3110  return "";
3111  }
3112 }

◆ viewerDrawStyleToInt()

int VP1ExaminerViewer::Imp::viewerDrawStyleToInt ( SoQtViewer::DrawStyle  ds)
static

Definition at line 3052 of file VP1ExaminerViewer.cxx.

3053 {
3054  switch (ds) {
3055  case SoQtViewer::VIEW_AS_IS: return 0;
3056  case SoQtViewer::VIEW_HIDDEN_LINE: return 1;
3057  case SoQtViewer::VIEW_NO_TEXTURE: return 2;
3058  case SoQtViewer::VIEW_LOW_COMPLEXITY: return 3;
3059  case SoQtViewer::VIEW_LINE: return 4;
3060  case SoQtViewer::VIEW_POINT: return 5;
3061  case SoQtViewer::VIEW_BBOX: return 6;
3062  case SoQtViewer::VIEW_LOW_RES_LINE: return 7;
3063  case SoQtViewer::VIEW_LOW_RES_POINT: return 8;
3064  case SoQtViewer::VIEW_SAME_AS_STILL: return 9;
3065  case SoQtViewer::VIEW_WIREFRAME_OVERLAY: return 10;
3066  default:
3067  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::viewerDrawStyleToInt ERROR: Unknown viewer draw style");
3068  return -1;
3069  }
3070 }

◆ viewerStereoType2PrettyString()

QString VP1ExaminerViewer::Imp::viewerStereoType2PrettyString ( SoQtViewer::StereoType  ds)
static

Definition at line 2984 of file VP1ExaminerViewer.cxx.

2985 {
2986  VP1Msg::messageVerbose("viewerStereoType2PrettyString() - "+QString::number(ds) );
2987  switch (ds) {
2988  case SoQtViewer::STEREO_NONE: return "NO Stereo";
2989  case SoQtViewer::STEREO_ANAGLYPH: return "Anaglyph Stereo (Red-Cyan 3D mode)";
2990  case SoQtViewer::STEREO_QUADBUFFER: return "QUADBUFFER";
2991  case SoQtViewer::STEREO_INTERLEAVED_ROWS: return "INTERLEAVED_ROWS";
2992  case SoQtViewer::STEREO_INTERLEAVED_COLUMNS: return "INTERLEAVED_COLUMNS";
2993  default:
2994  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::viewerStereoType2PrettyString ERROR: Unknown viewer draw style");
2995  return "x";
2996  }
2997 }

◆ viewerStereoTypeToInt()

int VP1ExaminerViewer::Imp::viewerStereoTypeToInt ( SoQtViewer::StereoType  ds)
static

Definition at line 2999 of file VP1ExaminerViewer.cxx.

3000 {
3001  switch (ds) {
3002  case SoQtViewer::STEREO_NONE: return 0;
3003  case SoQtViewer::STEREO_ANAGLYPH: return 1;
3004  case SoQtViewer::STEREO_QUADBUFFER: return 2;
3005  case SoQtViewer::STEREO_INTERLEAVED_ROWS: return 3;
3006  case SoQtViewer::STEREO_INTERLEAVED_COLUMNS: return 4;
3007  default:
3008  VP1Msg::messageDebug("VP1ExaminerViewer::Imp::viewerStereoTypeToInt ERROR: Unknown viewer draw style");
3009  return -1;
3010  }
3011 }

Member Data Documentation

◆ action_movieenabled

QAction* VP1ExaminerViewer::Imp::action_movieenabled

Definition at line 253 of file VP1ExaminerViewer.cxx.

◆ action_moviefadetocurrentview

QAction* VP1ExaminerViewer::Imp::action_moviefadetocurrentview

Definition at line 258 of file VP1ExaminerViewer.cxx.

◆ action_moviefps

QAction* VP1ExaminerViewer::Imp::action_moviefps

Definition at line 256 of file VP1ExaminerViewer.cxx.

◆ action_movieheight

QAction* VP1ExaminerViewer::Imp::action_movieheight

Definition at line 255 of file VP1ExaminerViewer.cxx.

◆ action_movieoutdir

QAction* VP1ExaminerViewer::Imp::action_movieoutdir

Definition at line 257 of file VP1ExaminerViewer.cxx.

◆ action_moviewidth

QAction* VP1ExaminerViewer::Imp::action_moviewidth

Definition at line 254 of file VP1ExaminerViewer.cxx.

◆ actualSceneGraph

SoGroup* VP1ExaminerViewer::Imp::actualSceneGraph

Definition at line 204 of file VP1ExaminerViewer.cxx.

◆ ambientLightPercentage

int VP1ExaminerViewer::Imp::ambientLightPercentage

Definition at line 312 of file VP1ExaminerViewer.cxx.

◆ animationSequencer

AnimationSequencer VP1ExaminerViewer::Imp::animationSequencer

Definition at line 282 of file VP1ExaminerViewer.cxx.

◆ button_examine

QPushButton* VP1ExaminerViewer::Imp::button_examine

Definition at line 290 of file VP1ExaminerViewer.cxx.

◆ button_home

QPushButton* VP1ExaminerViewer::Imp::button_home

Definition at line 291 of file VP1ExaminerViewer.cxx.

◆ button_interact

QPushButton* VP1ExaminerViewer::Imp::button_interact

Definition at line 289 of file VP1ExaminerViewer.cxx.

◆ button_seek

QPushButton* VP1ExaminerViewer::Imp::button_seek

Definition at line 294 of file VP1ExaminerViewer.cxx.

◆ button_sethome

QPushButton* VP1ExaminerViewer::Imp::button_sethome

Definition at line 292 of file VP1ExaminerViewer.cxx.

◆ button_togglecamera

QPushButton* VP1ExaminerViewer::Imp::button_togglecamera

Definition at line 295 of file VP1ExaminerViewer.cxx.

◆ button_viewall

QPushButton* VP1ExaminerViewer::Imp::button_viewall

Definition at line 293 of file VP1ExaminerViewer.cxx.

◆ customstereoeditor

VP1CustomStereoEditor* VP1ExaminerViewer::Imp::customstereoeditor

Definition at line 214 of file VP1ExaminerViewer.cxx.

◆ customtour_execute

QAction* VP1ExaminerViewer::Imp::customtour_execute

Definition at line 251 of file VP1ExaminerViewer.cxx.

◆ customtour_launcheditor

QAction* VP1ExaminerViewer::Imp::customtour_launcheditor

Definition at line 250 of file VP1ExaminerViewer.cxx.

◆ customtoureditor

VP1CustomTourEditor* VP1ExaminerViewer::Imp::customtoureditor

Definition at line 213 of file VP1ExaminerViewer.cxx.

◆ customtoureditorState

QByteArray VP1ExaminerViewer::Imp::customtoureditorState

Definition at line 212 of file VP1ExaminerViewer.cxx.

◆ decorationMenuRemoved

bool VP1ExaminerViewer::Imp::decorationMenuRemoved

Definition at line 299 of file VP1ExaminerViewer.cxx.

◆ deleteViewActions

QList<QAction*> VP1ExaminerViewer::Imp::deleteViewActions

Definition at line 366 of file VP1ExaminerViewer.cxx.

◆ detectorbuttons

std::map<QPushButton*,std::pair<REGION,VIEW> > VP1ExaminerViewer::Imp::detectorbuttons

Definition at line 190 of file VP1ExaminerViewer.cxx.

◆ detectorViewButtons

bool VP1ExaminerViewer::Imp::detectorViewButtons

Definition at line 281 of file VP1ExaminerViewer.cxx.

◆ environmentNode

SoEnvironment* VP1ExaminerViewer::Imp::environmentNode

Definition at line 205 of file VP1ExaminerViewer.cxx.

◆ isantialias

bool VP1ExaminerViewer::Imp::isantialias

Definition at line 288 of file VP1ExaminerViewer.cxx.

◆ lastDumpFile

QString VP1ExaminerViewer::Imp::lastDumpFile

Definition at line 321 of file VP1ExaminerViewer.cxx.

◆ lastEPSFile

QString VP1ExaminerViewer::Imp::lastEPSFile

Definition at line 323 of file VP1ExaminerViewer.cxx.

◆ lastSVGFile

QString VP1ExaminerViewer::Imp::lastSVGFile

Definition at line 322 of file VP1ExaminerViewer.cxx.

◆ movieFrameFileNamePrefix

QString VP1ExaminerViewer::Imp::movieFrameFileNamePrefix

Definition at line 315 of file VP1ExaminerViewer.cxx.

◆ popup_ambientLightAction

QAction* VP1ExaminerViewer::Imp::popup_ambientLightAction

Definition at line 219 of file VP1ExaminerViewer.cxx.

◆ popup_antiAliasAction

QAction* VP1ExaminerViewer::Imp::popup_antiAliasAction

Definition at line 217 of file VP1ExaminerViewer.cxx.

◆ popup_bgdColAction

QAction* VP1ExaminerViewer::Imp::popup_bgdColAction

Definition at line 218 of file VP1ExaminerViewer.cxx.

◆ popup_drawstyle_interactive_actions

QList<QAction*> VP1ExaminerViewer::Imp::popup_drawstyle_interactive_actions

Definition at line 229 of file VP1ExaminerViewer.cxx.

◆ popup_drawstyle_still_actions

QList<QAction*> VP1ExaminerViewer::Imp::popup_drawstyle_still_actions

Definition at line 228 of file VP1ExaminerViewer.cxx.

◆ popup_dumpSceneAction

QAction* VP1ExaminerViewer::Imp::popup_dumpSceneAction

Definition at line 221 of file VP1ExaminerViewer.cxx.

◆ popup_dumpSceneVRMLAction

QAction* VP1ExaminerViewer::Imp::popup_dumpSceneVRMLAction

Definition at line 222 of file VP1ExaminerViewer.cxx.

◆ popup_focal_value_action

QAction* VP1ExaminerViewer::Imp::popup_focal_value_action

Definition at line 261 of file VP1ExaminerViewer.cxx.

◆ popup_focalLengthAction

QAction* VP1ExaminerViewer::Imp::popup_focalLengthAction

Definition at line 220 of file VP1ExaminerViewer.cxx.

◆ popup_headLightAction

QAction* VP1ExaminerViewer::Imp::popup_headLightAction

Definition at line 216 of file VP1ExaminerViewer.cxx.

◆ popup_hidedecorationsaction

QAction* VP1ExaminerViewer::Imp::popup_hidedecorationsaction

Definition at line 226 of file VP1ExaminerViewer.cxx.

◆ popup_menu

QMenu* VP1ExaminerViewer::Imp::popup_menu

Definition at line 215 of file VP1ExaminerViewer.cxx.

◆ popup_resetCameraAction

QAction* VP1ExaminerViewer::Imp::popup_resetCameraAction

Definition at line 225 of file VP1ExaminerViewer.cxx.

◆ popup_toEPSAction

QAction* VP1ExaminerViewer::Imp::popup_toEPSAction

Definition at line 224 of file VP1ExaminerViewer.cxx.

◆ popup_toSVGAction

QAction* VP1ExaminerViewer::Imp::popup_toSVGAction

Definition at line 223 of file VP1ExaminerViewer.cxx.

◆ popup_tourExecute

QAction* VP1ExaminerViewer::Imp::popup_tourExecute

Definition at line 231 of file VP1ExaminerViewer.cxx.

◆ popup_tourLoopForever

QAction* VP1ExaminerViewer::Imp::popup_tourLoopForever

Definition at line 245 of file VP1ExaminerViewer.cxx.

◆ popup_tourLoopOnce

QAction* VP1ExaminerViewer::Imp::popup_tourLoopOnce

Definition at line 242 of file VP1ExaminerViewer.cxx.

◆ popup_tourLoopThrice

QAction* VP1ExaminerViewer::Imp::popup_tourLoopThrice

Definition at line 244 of file VP1ExaminerViewer.cxx.

◆ popup_tourLoopTwice

QAction* VP1ExaminerViewer::Imp::popup_tourLoopTwice

Definition at line 243 of file VP1ExaminerViewer.cxx.

◆ popup_tourPartsCalo

QAction* VP1ExaminerViewer::Imp::popup_tourPartsCalo

Definition at line 240 of file VP1ExaminerViewer.cxx.

◆ popup_tourPartsInDet

QAction* VP1ExaminerViewer::Imp::popup_tourPartsInDet

Definition at line 239 of file VP1ExaminerViewer.cxx.

◆ popup_tourPartsMuon

QAction* VP1ExaminerViewer::Imp::popup_tourPartsMuon

Definition at line 241 of file VP1ExaminerViewer.cxx.

◆ popup_tourPartsVertex

QAction* VP1ExaminerViewer::Imp::popup_tourPartsVertex

Definition at line 238 of file VP1ExaminerViewer.cxx.

◆ popup_tourReturnToStartAction

QAction* VP1ExaminerViewer::Imp::popup_tourReturnToStartAction

Definition at line 230 of file VP1ExaminerViewer.cxx.

◆ popup_tourSpeedFast

QAction* VP1ExaminerViewer::Imp::popup_tourSpeedFast

Definition at line 236 of file VP1ExaminerViewer.cxx.

◆ popup_tourSpeedMedium

QAction* VP1ExaminerViewer::Imp::popup_tourSpeedMedium

Definition at line 235 of file VP1ExaminerViewer.cxx.

◆ popup_tourSpeedSlow

QAction* VP1ExaminerViewer::Imp::popup_tourSpeedSlow

Definition at line 234 of file VP1ExaminerViewer.cxx.

◆ popup_tourSpeedVeryFast

QAction* VP1ExaminerViewer::Imp::popup_tourSpeedVeryFast

Definition at line 237 of file VP1ExaminerViewer.cxx.

◆ popup_tourSpeedVerySlow

QAction* VP1ExaminerViewer::Imp::popup_tourSpeedVerySlow

Definition at line 233 of file VP1ExaminerViewer.cxx.

◆ popup_tourStartEachEvent

QAction* VP1ExaminerViewer::Imp::popup_tourStartEachEvent

Definition at line 232 of file VP1ExaminerViewer.cxx.

◆ popup_transptype_actions

QList<QAction*> VP1ExaminerViewer::Imp::popup_transptype_actions

Definition at line 227 of file VP1ExaminerViewer.cxx.

◆ resetCamera_isPerspective

bool VP1ExaminerViewer::Imp::resetCamera_isPerspective

Definition at line 324 of file VP1ExaminerViewer.cxx.

◆ resetCamera_state

QByteArray VP1ExaminerViewer::Imp::resetCamera_state

Definition at line 325 of file VP1ExaminerViewer.cxx.

◆ restoreViewActions

QList<QAction*> VP1ExaminerViewer::Imp::restoreViewActions

Definition at line 365 of file VP1ExaminerViewer.cxx.

◆ rotationMode

ROTATIONMODE VP1ExaminerViewer::Imp::rotationMode

Which mode is left wheel in?

Definition at line 194 of file VP1ExaminerViewer.cxx.

◆ signalcatcher

VP1ExaminerViewer_SignalCatcher* VP1ExaminerViewer::Imp::signalcatcher

Definition at line 287 of file VP1ExaminerViewer.cxx.

◆ sphere

SoSphere* VP1ExaminerViewer::Imp::sphere

Definition at line 296 of file VP1ExaminerViewer.cxx.

◆ stereo_launcheditor

QAction* VP1ExaminerViewer::Imp::stereo_launcheditor

Definition at line 252 of file VP1ExaminerViewer.cxx.

◆ stereo_offset_value

float VP1ExaminerViewer::Imp::stereo_offset_value

Definition at line 260 of file VP1ExaminerViewer.cxx.

◆ storedViews

QList<StoredView> VP1ExaminerViewer::Imp::storedViews

Definition at line 355 of file VP1ExaminerViewer.cxx.

◆ storeViewActions

QList<QAction*> VP1ExaminerViewer::Imp::storeViewActions

Definition at line 364 of file VP1ExaminerViewer.cxx.

◆ takeTourButton

QPushButton* VP1ExaminerViewer::Imp::takeTourButton

Definition at line 191 of file VP1ExaminerViewer.cxx.

◆ theclass

VP1ExaminerViewer* VP1ExaminerViewer::Imp::theclass

Definition at line 187 of file VP1ExaminerViewer.cxx.

◆ tourLoopsForever

bool VP1ExaminerViewer::Imp::tourLoopsForever

Definition at line 283 of file VP1ExaminerViewer.cxx.

◆ tourLoopsForeverSkipFirstFrame

bool VP1ExaminerViewer::Imp::tourLoopsForeverSkipFirstFrame

Definition at line 284 of file VP1ExaminerViewer.cxx.

◆ viewmenu_deleteview

QMenu* VP1ExaminerViewer::Imp::viewmenu_deleteview

Definition at line 247 of file VP1ExaminerViewer.cxx.

◆ viewmenu_restoreview

QMenu* VP1ExaminerViewer::Imp::viewmenu_restoreview

Definition at line 248 of file VP1ExaminerViewer.cxx.

◆ viewmenu_storecurrentview

QMenu* VP1ExaminerViewer::Imp::viewmenu_storecurrentview

Definition at line 246 of file VP1ExaminerViewer.cxx.

◆ viewmenu_zoomtoview

QMenu* VP1ExaminerViewer::Imp::viewmenu_zoomtoview

Definition at line 249 of file VP1ExaminerViewer.cxx.

◆ zoomToViewActions

QList<QAction*> VP1ExaminerViewer::Imp::zoomToViewActions

Definition at line 367 of file VP1ExaminerViewer.cxx.


The documentation for this class was generated from the following file:
VP1ExaminerViewer::Imp::detectorbuttons
std::map< QPushButton *, std::pair< REGION, VIEW > > detectorbuttons
Definition: VP1ExaminerViewer.cxx:190
VP1ExaminerViewer::Imp::tourLoopsForever
bool tourLoopsForever
Definition: VP1ExaminerViewer.cxx:283
beamspotman.r
def r
Definition: beamspotman.py:676
VP1ExaminerViewer::Imp::popup_tourSpeedMedium
QAction * popup_tourSpeedMedium
Definition: VP1ExaminerViewer.cxx:235
VP1ExaminerViewer::Imp::action_movieoutdir
QAction * action_movieoutdir
Definition: VP1ExaminerViewer.cxx:257
VP1ExaminerViewer::Imp::popup_toEPSAction
QAction * popup_toEPSAction
Definition: VP1ExaminerViewer.cxx:224
checkxAOD.ds
ds
Definition: Tools/PyUtils/bin/checkxAOD.py:260
VP1ExaminerViewer::Imp::FORWARDREGION
@ FORWARDREGION
Definition: VP1ExaminerViewer.cxx:175
VP1ExaminerViewer::Imp::popup_ambientLightAction
QAction * popup_ambientLightAction
Definition: VP1ExaminerViewer.cxx:219
VP1ExaminerViewer::Imp::button_sethome
QPushButton * button_sethome
Definition: VP1ExaminerViewer.cxx:292
dq_defect_compare_tags.pretty
def pretty(defects)
Definition: dq_defect_compare_tags.py:57
VP1ExaminerViewer::Imp::sphere
SoSphere * sphere
Definition: VP1ExaminerViewer.cxx:296
rename_histos_in_files_from_old_code.currentdir
currentdir
Definition: rename_histos_in_files_from_old_code.py:289
VP1ExaminerViewer::Imp::detectorViewButtons
bool detectorViewButtons
Definition: VP1ExaminerViewer.cxx:281
VP1ExaminerViewer::Imp::customtour_execute
QAction * customtour_execute
Definition: VP1ExaminerViewer.cxx:251
AnimationSequence::INDET
@ INDET
Definition: AnimationSequence.h:26
VP1ExaminerViewer::Imp::popup_tourSpeedVerySlow
QAction * popup_tourSpeedVerySlow
Definition: VP1ExaminerViewer.cxx:233
VP1ExaminerViewer::Imp::decorationMenuRemoved
bool decorationMenuRemoved
Definition: VP1ExaminerViewer.cxx:299
VP1ExaminerViewer::Imp::viewmenu_restoreview
QMenu * viewmenu_restoreview
Definition: VP1ExaminerViewer.cxx:248
VP1ExaminerViewer::toggleCameraType
virtual void toggleCameraType()
Definition: VP1ExaminerViewer.cxx:1472
VP1ExaminerViewer::Imp::popup_antiAliasAction
QAction * popup_antiAliasAction
Definition: VP1ExaminerViewer.cxx:217
VP1ExaminerViewer::Imp::restoreViewActions
QList< QAction * > restoreViewActions
Definition: VP1ExaminerViewer.cxx:365
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
VP1ExaminerViewer::Imp::resetCamera_isPerspective
bool resetCamera_isPerspective
Definition: VP1ExaminerViewer.cxx:324
AnimationSequencer::startAnimating
void startAnimating(bool skipFirstFrame=false)
Definition: AnimationSequencer.cxx:83
VP1ExaminerViewer::Imp::customtour_launcheditor
QAction * customtour_launcheditor
Definition: VP1ExaminerViewer.cxx:250
VP1ExaminerViewer::Imp::popup_transptype_actions
QList< QAction * > popup_transptype_actions
Definition: VP1ExaminerViewer.cxx:227
M_PI
#define M_PI
Definition: ActiveFraction.h:11
VP1ExaminerViewer::currentCamIsPerspective
bool currentCamIsPerspective() const
Definition: VP1ExaminerViewer.cxx:1775
VP1ExaminerViewer::Imp::ambientLightPercentage
int ambientLightPercentage
Definition: VP1ExaminerViewer.cxx:312
VP1ExaminerViewer::Imp::signalcatcher
VP1ExaminerViewer_SignalCatcher * signalcatcher
Definition: VP1ExaminerViewer.cxx:287
athena.value
value
Definition: athena.py:124
VP1ExaminerViewer::Imp::popup_resetCameraAction
QAction * popup_resetCameraAction
Definition: VP1ExaminerViewer.cxx:225
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
VP1ExaminerViewer::Imp::rotationMode
ROTATIONMODE rotationMode
Which mode is left wheel in?
Definition: VP1ExaminerViewer.cxx:194
sendEI_SPB.root
root
Definition: sendEI_SPB.py:34
VP1ExaminerViewer::Imp::viewmenu_storecurrentview
QMenu * viewmenu_storecurrentview
Definition: VP1ExaminerViewer.cxx:246
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
VP1ExaminerViewer::Imp::popup_focalLengthAction
QAction * popup_focalLengthAction
Definition: VP1ExaminerViewer.cxx:220
VP1ExaminerViewer::Imp::movieFrameFileNamePrefix
QString movieFrameFileNamePrefix
Definition: VP1ExaminerViewer.cxx:315
VP1ExaminerViewer::Imp::action_moviewidth
QAction * action_moviewidth
Definition: VP1ExaminerViewer.cxx:254
VP1ExaminerViewer::Imp::popup_focal_value_action
QAction * popup_focal_value_action
Definition: VP1ExaminerViewer.cxx:261
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
AnimationSequence::MUON
@ MUON
Definition: AnimationSequence.h:26
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
VP1ExaminerViewer::Imp::popup_tourReturnToStartAction
QAction * popup_tourReturnToStartAction
Definition: VP1ExaminerViewer.cxx:230
VP1ExaminerViewer::Imp::button_viewall
QPushButton * button_viewall
Definition: VP1ExaminerViewer.cxx:293
VP1ExaminerViewer::Imp::CSIDE
@ CSIDE
Definition: VP1ExaminerViewer.cxx:189
VP1QtUtils::environmentVariableValue
static QString environmentVariableValue(const QString &name)
Definition: VP1QtUtils.cxx:117
VP1ExaminerViewer_SignalCatcher::m_d
VP1ExaminerViewer::Imp * m_d
Definition: VP1ExaminerViewer.h:140
VP1ExaminerViewer::Imp::takeTourButton
QPushButton * takeTourButton
Definition: VP1ExaminerViewer.cxx:191
VP1ExaminerViewer::ambientLight
int ambientLight() const
Definition: VP1ExaminerViewer.cxx:2433
plotting.efficiency.outdir
outdir
Definition: efficiency.py:18
VP1ExaminerViewer::Imp::popup_tourLoopTwice
QAction * popup_tourLoopTwice
Definition: VP1ExaminerViewer.cxx:243
VP1ExaminerViewer::Imp::theclass
VP1ExaminerViewer * theclass
Definition: VP1ExaminerViewer.cxx:187
VP1ExaminerViewer_SignalCatcher
Definition: VP1ExaminerViewer.h:135
menu
make the sidebar many part of the config
Definition: hcg.cxx:551
VP1QtInventorUtils::transparencyType2PrettyString
static QString transparencyType2PrettyString(SoGLRenderAction::TransparencyType)
Definition: VP1QtInventorUtils.cxx:707
VP1QtInventorUtils::getAllTransparencyTypes
static QList< SoGLRenderAction::TransparencyType > getAllTransparencyTypes()
Definition: VP1QtInventorUtils.cxx:647
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
VP1ExaminerViewer::Imp::toString
QString toString(const REGION &r)
Definition: VP1ExaminerViewer.cxx:176
VP1ExaminerViewer::Imp::viewerDrawStyleToInt
static int viewerDrawStyleToInt(SoQtViewer::DrawStyle)
Definition: VP1ExaminerViewer.cxx:3052
VP1ExaminerViewer::Imp::fitsCurrentCamType
bool fitsCurrentCamType(const StoredView &sv)
Definition: VP1ExaminerViewer.cxx:353
VP1ExaminerViewer::Imp::zoomToViewActions
QList< QAction * > zoomToViewActions
Definition: VP1ExaminerViewer.cxx:367
VP1ExaminerViewer::Imp::popup_tourPartsMuon
QAction * popup_tourPartsMuon
Definition: VP1ExaminerViewer.cxx:241
VP1ExaminerViewer::getSceneGraph
virtual SoNode * getSceneGraph()
Definition: VP1ExaminerViewer.cxx:3138
lumiFormat.i
int i
Definition: lumiFormat.py:85
VP1ExaminerViewer::Imp::popup_tourPartsInDet
QAction * popup_tourPartsInDet
Definition: VP1ExaminerViewer.cxx:239
VP1ExaminerViewer::Imp::getAllViewerDrawStyles
static QList< SoQtViewer::DrawStyle > getAllViewerDrawStyles()
Definition: VP1ExaminerViewer.cxx:3032
beamspotman.n
n
Definition: beamspotman.py:731
VP1ExaminerViewer::Imp::resetCamera_state
QByteArray resetCamera_state
Definition: VP1ExaminerViewer.cxx:325
VP1ExaminerViewer::Imp::popup_drawstyle_interactive_actions
QList< QAction * > popup_drawstyle_interactive_actions
Definition: VP1ExaminerViewer.cxx:229
VP1ExaminerViewer::Imp::rotateCamera
void rotateCamera(SoCamera *cam, const SbVec3f &aroundaxis, const float delta)
Definition: VP1ExaminerViewer.cxx:1620
AnimationSequence::addFrame
void addFrame(REGION reg, const SbVec3f &dir, const SbVec3f &upvec, double t, bool variableSpeed=false, bool forceCircular=false, double clip=100.0)
Definition: AnimationSequence.h:53
VP1ExaminerViewer::Imp::popup_tourExecute
QAction * popup_tourExecute
Definition: VP1ExaminerViewer.cxx:231
VP1ExaminerViewer::currentCameraState
QByteArray currentCameraState() const
Definition: VP1ExaminerViewer.cxx:1781
VP1ExaminerViewer::Imp::stereo_offset_value
float stereo_offset_value
Definition: VP1ExaminerViewer.cxx:260
VP1ExaminerViewer::Imp::action_movieenabled
QAction * action_movieenabled
Definition: VP1ExaminerViewer.cxx:253
VP1ExaminerViewer::Imp::button_togglecamera
QPushButton * button_togglecamera
Definition: VP1ExaminerViewer.cxx:295
AnimationSequencer::sequence
AnimationSequence & sequence()
Definition: AnimationSequencer.cxx:75
VP1ExaminerViewer::Imp::popup_bgdColAction
QAction * popup_bgdColAction
Definition: VP1ExaminerViewer.cxx:218
VP1ExaminerViewer::Imp::popup_tourSpeedVeryFast
QAction * popup_tourSpeedVeryFast
Definition: VP1ExaminerViewer.cxx:237
VP1ExaminerViewer::Imp::viewmenu_deleteview
QMenu * viewmenu_deleteview
Definition: VP1ExaminerViewer.cxx:247
VP1ExaminerViewer::Imp::stereo_launcheditor
QAction * stereo_launcheditor
Definition: VP1ExaminerViewer.cxx:252
VP1ExaminerViewer::Imp::ensureMenuInit
bool ensureMenuInit()
Definition: VP1ExaminerViewer.cxx:1850
AnimationSequencer::setMovie
void setMovie(bool)
Definition: AnimationSequencer.cxx:41
VP1ExaminerViewer::Imp::init
void init()
Definition: VP1ExaminerViewer.cxx:1088
VP1ExaminerViewer::Imp::updateMovieMenuVisuals
void updateMovieMenuVisuals()
Definition: VP1ExaminerViewer.cxx:1827
VP1ExaminerViewer::Imp::storedViews
QList< StoredView > storedViews
Definition: VP1ExaminerViewer.cxx:355
VP1ExaminerViewer::Imp::VERTEX
@ VERTEX
Definition: VP1ExaminerViewer.cxx:175
VP1ExaminerViewer::Imp::viewerDrawStyle2PrettyString
static QString viewerDrawStyle2PrettyString(SoQtViewer::DrawStyle)
Definition: VP1ExaminerViewer.cxx:3094
VP1ExaminerViewer::Imp::popup_headLightAction
QAction * popup_headLightAction
Definition: VP1ExaminerViewer.cxx:216
VP1ExaminerViewer::Imp::storedViewsChanged
void storedViewsChanged()
Definition: VP1ExaminerViewer.cxx:356
VP1ExaminerViewer::Imp::XROT
@ XROT
Definition: VP1ExaminerViewer.cxx:193
VP1ExaminerViewer::Imp::popup_tourSpeedSlow
QAction * popup_tourSpeedSlow
Definition: VP1ExaminerViewer.cxx:234
VP1ExaminerViewer::Imp::customstereoeditor
VP1CustomStereoEditor * customstereoeditor
Definition: VP1ExaminerViewer.cxx:214
python.selection.number
number
Definition: selection.py:20
VP1ExaminerViewer::Imp::action_movieheight
QAction * action_movieheight
Definition: VP1ExaminerViewer.cxx:255
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
AnimationSequence::VERTEX
@ VERTEX
Definition: AnimationSequence.h:26
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
VP1QtInventorUtils::transparencyTypeToInt
static int transparencyTypeToInt(SoGLRenderAction::TransparencyType)
Definition: VP1QtInventorUtils.cxx:665
VP1ExaminerViewer::Imp::isantialias
bool isantialias
Definition: VP1ExaminerViewer.cxx:288
VP1Msg::messageVerbose
static void messageVerbose(const QString &)
Definition: VP1Msg.cxx:84
VP1ExaminerViewer::Imp::updateAmbientLightText
void updateAmbientLightText()
Definition: VP1ExaminerViewer.cxx:308
VP1ExaminerViewer::Imp::popup_tourSpeedFast
QAction * popup_tourSpeedFast
Definition: VP1ExaminerViewer.cxx:236
VP1ExaminerViewer::Imp::popup_tourLoopThrice
QAction * popup_tourLoopThrice
Definition: VP1ExaminerViewer.cxx:244
VP1ExaminerViewer::Imp::popup_drawstyle_still_actions
QList< QAction * > popup_drawstyle_still_actions
Definition: VP1ExaminerViewer.cxx:228
VP1ExaminerViewer::Imp::action_moviefps
QAction * action_moviefps
Definition: VP1ExaminerViewer.cxx:256
VP1ExaminerViewer::Imp::popup_tourLoopOnce
QAction * popup_tourLoopOnce
Definition: VP1ExaminerViewer.cxx:242
VP1ExaminerViewer::Imp::firstAvailableStoredViewName
QString firstAvailableStoredViewName()
Definition: VP1ExaminerViewer.cxx:368
VP1ExaminerViewer::Imp::addNewButton
QPushButton * addNewButton(QString text, QString tooltip, REGION region, VIEW view, QWidget *tempparent, QString iconname="")
Definition: VP1ExaminerViewer.cxx:964
AnimationSequence::clearAllFrames
void clearAllFrames()
Definition: AnimationSequence.h:50
VP1ExaminerViewer::Imp::button_home
QPushButton * button_home
Definition: VP1ExaminerViewer.cxx:291
VP1ExaminerViewer::Imp::storeViewActions
QList< QAction * > storeViewActions
Definition: VP1ExaminerViewer.cxx:364
VP1ExaminerViewer::Imp::CALO
@ CALO
Definition: VP1ExaminerViewer.cxx:175
VP1ExaminerViewer::Imp::getRegionSphere
SoSphere * getRegionSphere(REGION, bool perspective)
Definition: VP1ExaminerViewer.cxx:1179
AnimationSequence::REGION
REGION
Definition: AnimationSequence.h:26
VP1ExaminerViewer::Imp::popup_toSVGAction
QAction * popup_toSVGAction
Definition: VP1ExaminerViewer.cxx:223
VP1ExaminerViewer::Imp::popup_tourLoopForever
QAction * popup_tourLoopForever
Definition: VP1ExaminerViewer.cxx:245
AnimationSequence::CALO
@ CALO
Definition: AnimationSequence.h:26
VP1ExaminerViewer::Imp::popup_tourPartsCalo
QAction * popup_tourPartsCalo
Definition: VP1ExaminerViewer.cxx:240
VP1Msg::messageDebug
static void messageDebug(const QString &)
Definition: VP1Msg.cxx:39
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
VP1ExaminerViewer::Imp::popup_hidedecorationsaction
QAction * popup_hidedecorationsaction
Definition: VP1ExaminerViewer.cxx:226
VP1ExaminerViewer::Imp::popup_tourPartsVertex
QAction * popup_tourPartsVertex
Definition: VP1ExaminerViewer.cxx:238
VP1ExaminerViewer::Imp::popup_dumpSceneAction
QAction * popup_dumpSceneAction
Definition: VP1ExaminerViewer.cxx:221
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
VP1ExaminerViewer::Imp::updateAnimationSequence
bool updateAnimationSequence()
Definition: VP1ExaminerViewer.cxx:985
VP1ExaminerViewer::Imp::deleteViewActions
QList< QAction * > deleteViewActions
Definition: VP1ExaminerViewer.cxx:366
DeMoScan.first
bool first
Definition: DeMoScan.py:536
VP1ExaminerViewer::Imp::tourLoopsForeverSkipFirstFrame
bool tourLoopsForeverSkipFirstFrame
Definition: VP1ExaminerViewer.cxx:284
VP1ExaminerViewer::Imp::action_moviefadetocurrentview
QAction * action_moviefadetocurrentview
Definition: VP1ExaminerViewer.cxx:258
VP1ExaminerViewer::Imp::applyMovieSettingsToAnimationSequencer
void applyMovieSettingsToAnimationSequencer()
Definition: VP1ExaminerViewer.cxx:1225
VP1ExaminerViewer::Imp::popup_menu
QMenu * popup_menu
Definition: VP1ExaminerViewer.cxx:215
LArCellConditions.sv
bool sv
Definition: LArCellConditions.py:45
VP1ExaminerViewer::Imp::BARREL
@ BARREL
Definition: VP1ExaminerViewer.cxx:189
Herwig7_QED_EvtGen_ll.fs
dictionary fs
Definition: Herwig7_QED_EvtGen_ll.py:17
VP1ExaminerViewer::Imp::ZROT
@ ZROT
Definition: VP1ExaminerViewer.cxx:193
makeTransCanvas.text
text
Definition: makeTransCanvas.py:11
VP1ExaminerViewer::Imp::button_examine
QPushButton * button_examine
Definition: VP1ExaminerViewer.cxx:290
VP1ExaminerViewer::Imp::animationSequencer
AnimationSequencer animationSequencer
Definition: VP1ExaminerViewer.cxx:282
VP1ExaminerViewer::Imp::customtoureditor
VP1CustomTourEditor * customtoureditor
Definition: VP1ExaminerViewer.cxx:213
VP1ExaminerViewer::Imp::grabFocus
void grabFocus()
Definition: VP1ExaminerViewer.cxx:1216
VP1ExaminerViewer::Imp::popup_tourStartEachEvent
QAction * popup_tourStartEachEvent
Definition: VP1ExaminerViewer.cxx:232
VP1ExaminerViewer::Imp::actualSceneGraph
SoGroup * actualSceneGraph
Definition: VP1ExaminerViewer.cxx:204
VP1ExaminerViewer::Imp::INDET
@ INDET
Definition: VP1ExaminerViewer.cxx:175
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
VP1ExaminerViewer::Imp::popup_dumpSceneVRMLAction
QAction * popup_dumpSceneVRMLAction
Definition: VP1ExaminerViewer.cxx:222
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
VP1CameraHelper::animatedZoomToSubTree
static VP1CameraHelper * animatedZoomToSubTree(SoCamera *camera, SoGroup *sceneroot, SoNode *subtreeroot, double duration_in_secs=1.0, double clipVolPercent=100.0, double lastClipVolPercent=100.0, double slack=1.0, const SbVec3f &lookat=SbVec3f(999, 999, 999), const SbVec3f &upvec=SbVec3f(999, 999, 999), bool varySpeed=true, bool forceCircular=false)
Definition: VP1CameraHelper.cxx:413
python.compressB64.c
def c
Definition: compressB64.py:93
VP1ExaminerViewer::Imp::environmentNode
SoEnvironment * environmentNode
Definition: VP1ExaminerViewer.cxx:205
VP1ExaminerViewer::Imp::MUON
@ MUON
Definition: VP1ExaminerViewer.cxx:175
VP1ExaminerViewer::Imp::button_interact
QPushButton * button_interact
Definition: VP1ExaminerViewer.cxx:289
AnimationSequencer::setMovieParameters
void setMovieParameters(const QString &outdir, const QString &frameFileNamePrefix, int fps, int width, int height)
Definition: AnimationSequencer.cxx:46
VP1ExaminerViewer::Imp::ASIDE
@ ASIDE
Definition: VP1ExaminerViewer.cxx:189
VP1ExaminerViewer::Imp::viewmenu_zoomtoview
QMenu * viewmenu_zoomtoview
Definition: VP1ExaminerViewer.cxx:249
drawFromPickle.view
view
Definition: drawFromPickle.py:294
VP1ExaminerViewer::Imp::button_seek
QPushButton * button_seek
Definition: VP1ExaminerViewer.cxx:294
VP1ExaminerViewer::isAntiAlias
bool isAntiAlias() const
Definition: VP1ExaminerViewer.cxx:1743