VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtObserverController.h
Go to the documentation of this file.
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 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)