![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtObserverController.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCore/vrvCore.h> 00015 00016 #include <vrvCore/DtKeyMapManager.h> 00017 #include <vrvCore/DtMouseEvent.h> 00018 #include <vrvUtil/DtObserverConfiguration.h> 00019 #include <vrvCore/DtDriver.h> 00020 #include <vrvCore/DtViewStateProcessor.h> 00021 00022 #include <string> 00023 00024 namespace makVrv 00025 { 00026 00027 class DtDe; 00028 class DtObserver; 00029 class DtKeyMapManager; 00030 00034 class DT_DLL_VRVCORE DtObserverController 00035 { 00036 public: 00037 00039 DtObserverController( DtDe& de, DtKeyMapManager& keyMapManager ); 00040 00042 virtual ~DtObserverController(); 00043 00044 void setCurrentObserver( DtObserver* observer ); 00045 DtObserver* currentObserver() const; 00046 00047 virtual void bindFunctions(); 00048 00049 // 00051 // 00052 // 00054 // 00055 virtual void incrementOrbitSpeedGain(); 00056 virtual void decrementOrbitSpeedGain(); 00057 virtual void incrementLinearSpeedGain(); 00058 virtual void decrementLinearSpeedGain(); 00059 virtual void incrementRotationSpeedGain(); 00060 virtual void decrementRotationSpeedGain(); 00061 00063 virtual void startOrbitingLeft(); 00064 virtual void stopOrbitingLeft(); 00065 virtual void startOrbitingRight(); 00066 virtual void stopOrbitingRight(); 00067 virtual void startOrbitingUp(); 00068 virtual void stopOrbitingUp(); 00069 virtual void startOrbitingDown(); 00070 virtual void stopOrbitingDown(); 00071 00072 virtual void startLookUp(); 00073 virtual void startLookDown(); 00074 virtual void startLookLeft(); 00075 virtual void startLookRight(); 00076 virtual void startLookTiltLeft(); 00077 virtual void startLookTiltRight(); 00078 00079 virtual void startLevelYawLeft(); 00080 virtual void startLevelYawRight(); 00081 virtual void startLevelPitchUp(); 00082 virtual void startLevelPitchDown(); 00083 virtual void startLevelRollRight(); 00084 virtual void startLevelRollLeft(); 00085 00086 virtual void startYawLeft(); 00087 virtual void startYawRight(); 00088 virtual void startPitchUp(); 00089 virtual void startPitchDown(); 00090 virtual void startRollRight(); 00091 virtual void startRollLeft(); 00092 00093 virtual void startMoveObserverForward(); 00094 virtual void startMoveObserverLeft(); 00095 virtual void startMoveObserverBack(); 00096 virtual void startMoveObserverRight(); 00097 virtual void startMoveObserverUp(); 00098 virtual void startMoveObserverDown(); 00099 00100 virtual void startMoveLevelObserverForward(); 00101 virtual void startMoveLevelObserverBack(); 00102 virtual void startMoveLevelObserverLeft(); 00103 virtual void startMoveLevelObserverRight(); 00104 virtual void startMoveLevelObserverUp(); 00105 virtual void startMoveLevelObserverDown(); 00106 00107 virtual void startMoveAttachedContextForward(); 00108 virtual void startMoveAttachedContextBack(); 00109 virtual void startMoveAttachedContextLeft(); 00110 virtual void startMoveAttachedContextRight(); 00111 virtual void startMoveAttachedContextUp(); 00112 virtual void startMoveAttachedContextDown(); 00113 00114 virtual void stopLookUp(); 00115 virtual void stopLookDown(); 00116 virtual void stopLookLeft(); 00117 virtual void stopLookRight(); 00118 virtual void stopLookTiltLeft(); 00119 virtual void stopLookTiltRight(); 00120 00121 virtual void stopLevelYawLeft(); 00122 virtual void stopLevelYawRight(); 00123 virtual void stopLevelPitchUp(); 00124 virtual void stopLevelPitchDown(); 00125 virtual void stopLevelRollRight(); 00126 virtual void stopLevelRollLeft(); 00127 00128 virtual void stopYawLeft(); 00129 virtual void stopYawRight(); 00130 virtual void stopPitchUp(); 00131 virtual void stopPitchDown(); 00132 virtual void stopRollRight(); 00133 virtual void stopRollLeft(); 00134 00135 virtual void stopMoveObserverForward(); 00136 virtual void stopMoveObserverLeft(); 00137 virtual void stopMoveObserverBack(); 00138 virtual void stopMoveObserverRight(); 00139 virtual void stopMoveObserverUp(); 00140 virtual void stopMoveObserverDown(); 00141 00142 virtual void stopMoveLevelObserverForward(); 00143 virtual void stopMoveLevelObserverBack(); 00144 virtual void stopMoveLevelObserverLeft(); 00145 virtual void stopMoveLevelObserverRight(); 00146 virtual void stopMoveLevelObserverUp(); 00147 virtual void stopMoveLevelObserverDown(); 00148 00149 virtual void stopMoveAttachedContextForward(); 00150 virtual void stopMoveAttachedContextBack(); 00151 virtual void stopMoveAttachedContextLeft(); 00152 virtual void stopMoveAttachedContextRight(); 00153 virtual void stopMoveAttachedContextUp(); 00154 virtual void stopMoveAttachedContextDown(); 00155 00156 virtual void startSuppressingConstrainToTerrain(); 00157 virtual void stopSuppressingConstrainToTerrain(); 00158 00164 virtual void nextAttachMode(); 00165 00166 virtual void level(); 00167 virtual void resetCamera(); 00168 virtual void reset(); 00169 virtual void toggleSpeedScaling(); 00170 virtual void toggleConstrainToTerrain(); 00171 virtual void toggleForceNorthOrientation(); 00172 00175 virtual void toggleViewControl(); 00177 virtual void toggleTrackHistories(); 00178 00179 virtual void toggleConstrainToCenter(); 00180 virtual void detach(); 00181 virtual void toggleHideModelOnAttach(); 00182 virtual void toggleOrientToTargetConstraint(); 00183 virtual void attachNextAllowed(); 00184 virtual void attachNextEntityOrProp(); 00185 virtual void attachPrevAllowed(); 00186 virtual void attachPrevEntityOrProp(); 00187 00188 virtual void setMimicAttachType(); 00189 virtual void setTetherAttachType(); 00190 virtual void setTrackAttachType(); 00191 00192 virtual void setOrbitSpeedGain( int gain ); 00193 virtual void setLinearSpeedGain( int gain ); 00194 virtual void setRotationSpeedGain( int gain ); 00195 00196 virtual void clearMotion(); 00197 virtual void nextObserverMode(); 00198 virtual void previousObserverMode(); 00199 00201 //@name View Resolution (2D) functions. The resolution is in 00203 virtual void incrementViewResolution(); 00204 virtual void decrementViewResolution(); 00205 virtual void startIncreasingViewResolution(); 00206 virtual void stopIncreasingViewResolution(); 00207 virtual void startDecreasingViewResolution(); 00208 virtual void stopDecreasingViewResolution(); 00209 virtual void setViewResolution(double resolution); 00211 00212 00214 //@name View Magnification (3D) functions. 00215 virtual void incrementViewMagnification(); 00216 virtual void decrementViewMagnification(); 00217 virtual void resetViewMagnification(); 00218 virtual void setViewMagnification(double magnification); 00219 //@] 00220 00221 private: 00223 DtObserverController( const DtObserverController& ); 00224 00226 DtObserverController& operator=( const DtObserverController& ); 00227 00228 protected: 00229 00230 DtDe& myDe; 00231 DtKeyMapManager& myKeyMapManager; 00232 00234 DtObserver* myCurrentObserver; 00235 00236 }; 00237 00240 class DT_DLL_VRVCORE DtObserverControllerCreator : public DtVirtualBaseClass 00241 { 00242 public: 00243 00245 DtObserverControllerCreator(); 00246 00248 virtual ~DtObserverControllerCreator(); 00249 00251 static DtObserverControllerCreator& instance(DtDe& de); 00252 00256 static void registerInstance(DtDe& de, DtObserverControllerCreator* creator); 00257 00259 virtual DtObserverController* create( DtDe& de, DtKeyMapManager& keyMapManager ); 00260 00261 }; 00262 00263 }