ATLAS Offline Software
Loading...
Searching...
No Matches
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?
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

◆ ROTATIONMODE

◆ VIEW

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),
82 popup_menu(0),
127 tourLoopsForever(false),
130 isantialias(false),
133 button_home(0),
136 button_seek(0),
138 sphere(0),
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}
static Double_t tc
VP1CustomTourEditor * customtoureditor
VP1ExaminerViewer * theclass
VP1ExaminerViewer_SignalCatcher * signalcatcher
VP1CustomStereoEditor * customstereoeditor
ROTATIONMODE rotationMode
Which mode is left wheel in?
AnimationSequencer animationSequencer
friend class VP1ExaminerViewer_SignalCatcher
static void messageVerbose(const QString &)
Definition VP1Msg.cxx:84

◆ ~Imp()

VP1ExaminerViewer::Imp::~Imp ( )
inline

Definition at line 156 of file VP1ExaminerViewer.cxx.

157 {
158 VP1Msg::messageVerbose("VP1ExaminerViewer::~Imp() destructor");
160 actualSceneGraph->unref();
161 if (environmentNode)
162 environmentNode->unref();
164 customtoureditor->deleteLater();
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
2152 if (viewmenu_storecurrentview==menu) {
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}
static Double_t fs
QList< QAction * > restoreViewActions
QList< QAction * > deleteViewActions
QList< QAction * > storeViewActions
QList< StoredView > storedViews
bool fitsCurrentCamType(const StoredView &sv)
QList< QAction * > zoomToViewActions
static void messageDebug(const QString &)
Definition VP1Msg.cxx:39

◆ 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}
std::map< QPushButton *, std::pair< REGION, VIEW > > detectorbuttons

◆ 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);
1237 animationSequencer.setMovie(true);
1238 animationSequencer.setMovieParameters(outdir,movieFrameFileNamePrefix,fps,width,height);
1239 } else {
1240 animationSequencer.setMovie(false);
1241 }
1242}
const double width

◆ 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 }
1299 if (theclass->currentCamIsPerspective()) {
1300 //Fix for bad camera (fixme: this doesn't really work... Perhaps let all detector buttons reset camera?):
1301 theclass->toggleCameraType();
1302 theclass->toggleCameraType();
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,
1316 theclass->currentCamIsPerspective());
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}
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)
QString toString(const REGION &r)
SoSphere * getRegionSphere(REGION, bool perspective)

◆ 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));
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}
static QString viewerDrawStyle2PrettyString(SoQtViewer::DrawStyle)
static int viewerDrawStyleToInt(SoQtViewer::DrawStyle)
QList< QAction * > popup_drawstyle_still_actions
static QList< SoQtViewer::DrawStyle > getAllViewerDrawStyles()
QList< QAction * > popup_drawstyle_interactive_actions
QList< QAction * > popup_transptype_actions
static QList< SoGLRenderAction::TransparencyType > getAllTransparencyTypes()
static QString transparencyType2PrettyString(SoGLRenderAction::TransparencyType)
static int transparencyTypeToInt(SoGLRenderAction::TransparencyType)
static QString environmentVariableValue(const QString &name)

◆ 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}
l
Printing final latex table to .tex output file.

◆ 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}
int r
Definition globals.cxx:22

◆ 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}
QPushButton * addNewButton(QString text, QString tooltip, REGION region, VIEW view, QWidget *tempparent, QString iconname="")

◆ 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}
static QString str(const QString &s)
Definition VP1String.h:49

◆ 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}
void rotateCamera(SoCamera *cam, const SbVec3f &aroundaxis, const float delta)

◆ 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();
1275 //animationSequencer
1276 animationSequencer.startAnimating();
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()");
989 animationSequencer.sequence().clearAllFrames();
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:
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)
1082 animationSequencer.sequence().addFrame(theclass->currentCameraState(),firstfact*steptime);
1083
1084 return true;
1085}
#define M_PI
bool first
Definition DeMoScan.py:534

◆ 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 }
static Double_t al

◆ updateMovieMenuVisuals()

void VP1ExaminerViewer::Imp::updateMovieMenuVisuals ( )

Definition at line 1828 of file VP1ExaminerViewer.cxx.

1829{
1830 VP1Msg::messageVerbose("VP1ExaminerViewer::Imp::updateMovieMenuVisuals()");
1831
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
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: