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 2148 of file VP1ExaminerViewer.cxx.

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

◆ addNewButton()

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

Definition at line 965 of file VP1ExaminerViewer.cxx.

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

◆ applyMovieSettingsToAnimationSequencer()

void VP1ExaminerViewer::Imp::applyMovieSettingsToAnimationSequencer ( )

Definition at line 1226 of file VP1ExaminerViewer.cxx.

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

◆ detectorZoomButtonClicked()

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

Definition at line 1284 of file VP1ExaminerViewer.cxx.

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

◆ 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 1851 of file VP1ExaminerViewer.cxx.

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

◆ 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(const 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 2964 of file VP1ExaminerViewer.cxx.

2965 {
2966  VP1Msg::messageVerbose("getAllStereoViewTypes()");
2967  QList<SoQtViewer::StereoType> l;
2968 
2969  // for the moment we only use these two
2970  l << SoQtViewer::STEREO_NONE; //Use monoscopic rendering.
2971  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").
2972  //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.
2973  //See also: setAnaglyphStereoColorMasks()
2974 
2975  // test
2976  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.
2977  //The well known Crystal Eyes glasses are commonly used with this type of stereo display.
2978  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:
2979  //http://www.vrex.com/
2980  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.
2981 
2982  return l;
2983 }

◆ getAllViewerDrawStyles()

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

Definition at line 3033 of file VP1ExaminerViewer.cxx.

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

◆ getRegionSphere()

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

Definition at line 1180 of file VP1ExaminerViewer.cxx.

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

◆ grabFocus()

void VP1ExaminerViewer::Imp::grabFocus ( )

Definition at line 1217 of file VP1ExaminerViewer.cxx.

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

◆ init()

void VP1ExaminerViewer::Imp::init ( )

Definition at line 1089 of file VP1ExaminerViewer.cxx.

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

◆ 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 3074 of file VP1ExaminerViewer.cxx.

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

◆ intToViewerStereoType()

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

Definition at line 3014 of file VP1ExaminerViewer.cxx.

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

◆ operator=()

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

◆ rotateCamera()

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

Definition at line 1621 of file VP1ExaminerViewer.cxx.

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

◆ rotXWheelMotion()

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

Definition at line 1608 of file VP1ExaminerViewer.cxx.

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

◆ rotZWheelMotion()

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

Definition at line 1595 of file VP1ExaminerViewer.cxx.

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

◆ 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 1268 of file VP1ExaminerViewer.cxx.

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

◆ 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 986 of file VP1ExaminerViewer.cxx.

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

◆ 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 1828 of file VP1ExaminerViewer.cxx.

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

◆ updatePopupMenuStates()

void VP1ExaminerViewer::Imp::updatePopupMenuStates ( )

Definition at line 2216 of file VP1ExaminerViewer.cxx.

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

◆ viewerDrawStyle2PrettyString()

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

Definition at line 3095 of file VP1ExaminerViewer.cxx.

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

◆ viewerDrawStyleToInt()

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

Definition at line 3053 of file VP1ExaminerViewer.cxx.

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

◆ viewerStereoType2PrettyString()

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

Definition at line 2985 of file VP1ExaminerViewer.cxx.

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

◆ viewerStereoTypeToInt()

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

Definition at line 3000 of file VP1ExaminerViewer.cxx.

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

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:674
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:1473
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:1776
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:157
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
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
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:2434
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:699
VP1QtInventorUtils::getAllTransparencyTypes
static QList< SoGLRenderAction::TransparencyType > getAllTransparencyTypes()
Definition: VP1QtInventorUtils.cxx:639
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
VP1ExaminerViewer::Imp::toString
QString toString(const REGION &r)
Definition: VP1ExaminerViewer.cxx:176
VP1ExaminerViewer::Imp::viewerDrawStyleToInt
static int viewerDrawStyleToInt(SoQtViewer::DrawStyle)
Definition: VP1ExaminerViewer.cxx:3053
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:3139
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:3033
beamspotman.n
n
Definition: beamspotman.py:729
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:1621
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:1782
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:1851
AnimationSequencer::setMovie
void setMovie(bool)
Definition: AnimationSequencer.cxx:41
VP1ExaminerViewer::Imp::init
void init()
Definition: VP1ExaminerViewer.cxx:1089
VP1ExaminerViewer::Imp::updateMovieMenuVisuals
void updateMovieMenuVisuals()
Definition: VP1ExaminerViewer.cxx:1828
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:3095
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:657
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:965
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:1180
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
VP1ExaminerViewer::Imp::updateAnimationSequence
bool updateAnimationSequence()
Definition: VP1ExaminerViewer.cxx:986
VP1ExaminerViewer::Imp::deleteViewActions
QList< QAction * > deleteViewActions
Definition: VP1ExaminerViewer.cxx:366
DeMoScan.first
bool first
Definition: DeMoScan.py:534
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:1226
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:1217
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:198
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:1744