00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _SO_WIN_WALK_VIEWER_
00027 #define _SO_WIN_WALK_VIEWER_
00028
00029 #include <Inventor/Win/SoWinBeginStrict.h>
00030
00031 #include <Inventor/Win/viewers/SoWinConstrainedViewer.h>
00032 #include <Inventor/SbLinear.h>
00033 #include <Inventor/SbTime.h>
00034
00035 #include <Inventor/Gui/viewers/SoGuiWalkViewer.h>
00036
00037 class SoFieldSensor;
00038
00095 class SoWinWalkViewer : public SoWinConstrainedViewer
00096 {
00097 public:
00098
00107 SoWinWalkViewer( SoWidget parent = NULL,
00108 const char* name = NULL,
00109 SbBool buildInsideParent = TRUE,
00110 SoWinFullViewer::BuildFlag flag = SoWinFullViewer::BUILD_ALL,
00111 SoWinViewer::Type type = SoWinViewer::BROWSER );
00115 ~SoWinWalkViewer();
00116
00117
00118
00119
00120 virtual void setViewing( SbBool onOrOff );
00121 virtual void setCamera( SoCamera* cam );
00122 virtual void setCursorEnabled( SbBool onOrOff );
00123
00124
00125 virtual void setCameraType( SoType type );
00126
00130 void setViewerSpeed( float speed ) { m_guiWalkViewer->setViewerSpeed( speed ); }
00131
00135 float getViewerSpeed() const { return m_guiWalkViewer->getViewerSpeed(); }
00136
00137 virtual void setSeekMode( SbBool onOrOff );
00138
00139 private:
00140
00141 SoGuiWalkViewer* getGuiWalkViewer() const;
00142
00143 private:
00144
00145
00146
00147
00148 SoEXTENDER SoWinWalkViewer( SoWidget parent,
00149 const char* name,
00150 SbBool buildInsideParent,
00151 SoWinFullViewer::BuildFlag flag,
00152 SoWinViewer::Type type,
00153 SbBool buildNow );
00154
00155
00156 virtual SbString getDefaultWidgetName() const;
00157 virtual SbString getDefaultTitle() const;
00158 virtual SbString getDefaultIconTitle() const;
00159
00160
00161 virtual void processEvent( XAnyEvent* anyevent );
00162 virtual void actualRedraw();
00163 virtual void rightWheelMotion( float newVal );
00164 virtual void mouseWheelMotion( float newVal );
00165 virtual void dollyCamera( float dist );
00166
00167
00168 virtual SoWidget buildLeftTrim( SoWidget parent );
00169
00170
00171 virtual void createPrefSheet();
00172
00173
00174 virtual void openViewerHelpCard();
00175
00176 virtual void updateCursor();
00177
00178 private:
00179 SoGuiWalkViewer* m_guiWalkViewer;
00180
00181
00182 Cursor tiltCursor;
00183
00184
00185 int heightWheelVal;
00186
00187 static void heightWheelCB( SoWinWalkViewer* p, XtPointer* d );
00188
00189 void updateViewerMode( unsigned int state );
00190 void switchMode( int newMode );
00191
00192
00193 void constructorCommon( SbBool buildNow );
00194
00195
00196 void processPopupItem( int item );
00197 };
00198
00199 #include <Inventor/Win/SoWinEndStrict.h>
00200
00201 #endif
00202
00203