VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtObserverObject.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Copyright (c) 2011 MAK Technologies, Inc.
00003  * All rights reserved.
00004  *****************************************************************************/
00005 /*****************************************************************************
00006  * $RCSfile: DtObserverObject.h,v $ $Revision: 1.46 $ $State: Exp $
00007  *****************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #include <vrvCore/vrvCore.h>
00016 
00017 #include <vrvCore/DtUniqueID.h>
00018 
00019 #include <string>
00020 #include <vector>
00021 #include <map>
00022 
00023 namespace makVrv
00024 {
00025 
00026    class DtDe;
00027    class DtInputDriver;
00028 
00032    class DT_DLL_VRVCORE DtObserverObject
00033    { 
00034 
00035    public:
00036 
00037       typedef std::map<int, bool> ModeSettingsMap;
00038 
00039       enum ScaleType { XRScale, LinearScale };
00040 
00041       enum AttachType
00042       {
00043          AttachTypeTether,
00044          AttachTypeMimic,
00045          AttachTypeFollow,
00046          AttachTypeTrack,
00047          AttachTypeTetherTrack,
00048          AttachTypeMimicTrack,
00049          AttachTypeModelView,
00050          AttachTypeSpaceFollow
00051       };
00052 
00054       DtObserverObject( DtDe& de, DtUniqueID id,  const std::string& name="" );
00055 
00057       virtual ~DtObserverObject();
00058       
00060       virtual const std::string& name() const;
00061       
00063       virtual bool is2D() const;
00064       
00066       virtual void setIs2D( bool is2D );
00067 
00069       virtual bool displaySky() const;
00070       
00072       virtual void setDisplaySky( bool hasSky );
00073       
00076       virtual bool isScaling() const;
00077 
00079       virtual void setScaling(bool scale);
00080 
00082       virtual double scaleFactor() const;
00083       
00085       virtual void setScaleFactor( double scaleFactor );
00086       
00088       virtual DtObserverObject::ScaleType scaleType() const;
00089 
00091       virtual void setScaleType( DtObserverObject::ScaleType scaleType );
00092 
00094       virtual int modelSet() const;
00095       
00097       virtual void setModelSet( int modelSet );
00098       
00102       virtual void clearModeSettings();
00103       
00106       virtual void setModeSetting( int setting, bool value );
00107       
00110       virtual bool modeSetting( int setting ) const;
00111 
00112       virtual const ModeSettingsMap& modeSettings() const;
00113       
00117       virtual void setNameAndRegister( const std::string& name );
00118 
00124       virtual void tick( double ) {}
00125 
00127       virtual void setTerrainIsGlobal(bool global);
00128      
00130       virtual double altitude() const = 0;
00131 
00133       virtual double viewResolution() const { return 1.; };
00134 
00137       virtual void setViewMagnification( double mag ) = 0;
00138 
00139       //
00140       //
00142       //
00143       //
00144       
00146 
00147 
00148       virtual void startMoveObserverRight() {}
00149       virtual void stopMoveObserverRight() {} 
00150       virtual void moveObserverRight( double ) {}
00151       
00153 
00154 
00155       virtual void startMoveObserverForward() {}
00156       virtual void stopMoveObserverForward() {}
00157       virtual void moveObserverForward( double ) {}
00159       
00161 
00162 
00163       virtual void startMoveObserverUp() {}
00164       virtual void stopMoveObserverUp() {}
00165       virtual void moveObserverUp( double ) {}
00167      
00169 
00170 
00171       virtual void startMoveObserverLeft() {}
00172       virtual void stopMoveObserverLeft() {}
00173       virtual void moveObserverLeft( double ) {}
00175         
00177 
00178 
00179       virtual void startMoveObserverBack() {}
00180       virtual void stopMoveObserverBack() {}
00181       virtual void moveObserverBack( double ) {}
00183       
00185 
00186 
00187       virtual void startMoveObserverDown() {}
00188       virtual void stopMoveObserverDown() {}
00189       virtual void moveObserverDown( double ) {}
00191   
00193 
00194 
00195 
00196       virtual void startMoveLevelObserverRight() {}
00197       virtual void stopMoveLevelObserverRight() {}
00198       virtual void moveLevelObserverRight( double ) {}
00200       
00202 
00203 
00204 
00205       virtual void startMoveLevelObserverForward() {}
00206       virtual void stopMoveLevelObserverForward() {}
00207       virtual void moveLevelObserverForward( double ) {}
00209       
00211 
00212 
00213 
00214       virtual void startMoveLevelObserverUp() {}
00215       virtual void stopMoveLevelObserverUp() {}
00216       virtual void moveLevelObserverUp( double ) {}
00218      
00220 
00221 
00222 
00223       virtual void startMoveLevelObserverLeft() {}
00224       virtual void stopMoveLevelObserverLeft() {}
00225       virtual void moveLevelObserverLeft( double ) {}
00227       
00229 
00230 
00231 
00232       virtual void startMoveLevelObserverBack() {}
00233       virtual void stopMoveLevelObserverBack() {}
00234       virtual void moveLevelObserverBack( double ) {}
00236       
00238 
00239 
00240       virtual void startMoveLevelObserverDown() {}
00241       virtual void stopMoveLevelObserverDown() {}
00242       virtual void moveLevelObserverDown( double ) {}
00244       
00246 
00247 
00248       virtual void startMoveAttachedRight() {}
00249       virtual void stopMoveAttachedRight() {} 
00250       virtual void moveAttachedRight( double ) {}
00251       
00253 
00254 
00255       virtual void startMoveAttachedForward() {}
00256       virtual void stopMoveAttachedForward() {}
00257       virtual void moveAttachedForward( double ) {}
00259       
00261 
00262 
00263       virtual void startMoveAttachedUp() {}
00264       virtual void stopMoveAttachedUp() {}
00265       virtual void moveAttachedUp( double ) {}
00267      
00269 
00270 
00271       virtual void startMoveAttachedLeft() {}
00272       virtual void stopMoveAttachedLeft() {}
00273       virtual void moveAttachedLeft( double ) {}
00275         
00277 
00278 
00279       virtual void startMoveAttachedBack() {}
00280       virtual void stopMoveAttachedBack() {}
00281       virtual void moveAttachedBack( double ) {}
00283       
00285 
00286 
00287       virtual void startMoveAttachedDown() {}
00288       virtual void stopMoveAttachedDown() {}
00289       virtual void moveAttachedDown( double ) {}
00291   
00293 
00294 
00295 
00296       virtual void startMoveLevelAttachedRight() {}
00297       virtual void stopMoveLevelAttachedRight() {}
00298       virtual void moveLevelAttachedRight( double ) {}
00300       
00302 
00303 
00304 
00305       virtual void startMoveLevelAttachedForward() {}
00306       virtual void stopMoveLevelAttachedForward() {}
00307       virtual void moveLevelAttachedForward( double ) {}
00309       
00311 
00312 
00313 
00314       virtual void startMoveLevelAttachedUp() {}
00315       virtual void stopMoveLevelAttachedUp() {}
00316       virtual void moveLevelAttachedUp( double ) {}
00318      
00320 
00321 
00322 
00323       virtual void startMoveLevelAttachedLeft() {}
00324       virtual void stopMoveLevelAttachedLeft() {}
00325       virtual void moveLevelAttachedLeft( double ) {}
00327       
00329 
00330 
00331 
00332       virtual void startMoveLevelAttachedBack() {}
00333       virtual void stopMoveLevelAttachedBack() {}
00334       virtual void moveLevelAttachedBack( double ) {}
00336       
00338 
00339 
00340       virtual void startMoveLevelAttachedDown() {}
00341       virtual void stopMoveLevelAttachedDown() {}
00342       virtual void moveLevelAttachedDown( double ) {}
00344          
00346 
00347 
00348       virtual void startMoveAttachedContextRight() {}
00349       virtual void stopMoveAttachedContextRight() {}
00350       virtual void moveAttachedContextRight( double ) {}
00352       
00354 
00355 
00356       virtual void startMoveAttachedContextForward() {}
00357       virtual void stopMoveAttachedContextForward() {}
00358       virtual void moveAttachedContextForward( double ) {}
00360       
00362 
00363 
00364       virtual void startMoveAttachedContextUp() {}
00365       virtual void stopMoveAttachedContextUp() {}
00366       virtual void moveAttachedContextUp( double ) {}
00368      
00370 
00371 
00372       virtual void startMoveAttachedContextLeft() {}
00373       virtual void stopMoveAttachedContextLeft() {}
00374       virtual void moveAttachedContextLeft( double ) {}
00376       
00378 
00379 
00380       virtual void startMoveAttachedContextBack() {}
00381       virtual void stopMoveAttachedContextBack() {}
00382       virtual void moveAttachedContextBack( double ) {}
00384       
00386 
00387       virtual void startMoveAttachedContextDown() {}
00388       virtual void stopMoveAttachedContextDown() {}
00389       virtual void moveAttachedContextDown( double ) {}
00391      
00393 
00394 
00395       virtual void startYawLeft() {}
00396       virtual void stopYawLeft() {}
00397       virtual void rotateYawLeft( double rads ) {}
00399       
00401 
00402 
00403 
00404       virtual void startYawRight() {}
00405       virtual void stopYawRight() {}
00406       virtual void rotateYawRight( double rads ) {}
00408       
00410 
00411 
00412       virtual void startPitchUp() {}
00413       virtual void stopPitchUp() {}
00414       virtual void rotatePitchUp( double rads ) {}
00416       
00418 
00419 
00420       virtual void startPitchDown() {}
00421       virtual void stopPitchDown() {}
00422       virtual void rotatePitchDown( double rads ) {}
00424       
00426 
00427 
00428       virtual void startRollLeft() {}
00429       virtual void stopRollLeft() {}
00430       virtual void rollLeft( double rads ) {}
00432       
00434 
00435 
00436       virtual void startRollRight() {}
00437       virtual void stopRollRight() {}
00438       virtual void rollRight( double rads ) {}
00440  
00442 
00443 
00444       virtual void startLevelYawLeft() {}
00445       virtual void stopLevelYawLeft() {}
00446       virtual void rotateLevelYawLeft( double rads ) {}
00448       
00450 
00451 
00452 
00453       virtual void startLevelYawRight() {}
00454       virtual void stopLevelYawRight() {}
00455       virtual void rotateLevelYawRight( double rads ) {}
00457       
00459 
00460 
00461       virtual void startLevelPitchUp() {}
00462       virtual void stopLevelPitchUp() {}
00463       virtual void rotateLevelPitchUp( double rads ) {}
00465       
00467 
00468 
00469       virtual void startLevelPitchDown() {}
00470       virtual void stopLevelPitchDown() {}
00471       virtual void rotateLevelPitchDown( double rads ) {}
00473       
00475 
00476 
00477       virtual void startLevelRollLeft() {}
00478       virtual void stopLevelRollLeft() {}
00479       virtual void rollLevelLeft( double rads ) {}
00481       
00483 
00484 
00485       virtual void startLevelRollRight() {}
00486       virtual void stopLevelRollRight() {}
00487       virtual void rollLevelRight( double rads ) {}
00489 
00491 
00492 
00493       virtual void startOrbitingLeft() {}
00494       virtual void stopOrbitingLeft() {}
00495       virtual void orbitLeft( double rads ) {}
00497      
00499 
00500 
00501       virtual void startOrbitingRight() {}
00502       virtual void stopOrbitingRight() {}
00503       virtual void orbitRight( double rads ) {}
00505       
00507 
00508 
00509       virtual void startOrbitingUp( ) {}
00510       virtual void stopOrbitingUp() {}
00511       virtual void orbitUp( double rads ) {}
00513      
00515 
00516 
00517       virtual void startOrbitingDown() {}
00518       virtual void stopOrbitingDown() {}
00519       virtual void orbitDown( double rads ) {}
00521       
00525       virtual void level() {}
00526      
00528       virtual void setLocation( double x, double y, double z ) {}
00529        
00532       virtual void jumpTo( double x, double y, double z ) {}
00533       
00536       virtual void jumpTo( DtUniqueID id ) {}
00537       
00538       virtual void orientTo( double x, double y, double z ) {} // = 0;
00539             
00541       virtual void dragTerrain( double lastX, double lastY, double lastZ,
00542          double currX, double currY, double currZ ) {}    
00543          
00544       virtual void dragTerrain2( double myStartDragX, double myStartDragY,
00545             double myStartDragZ, int deltaMouseX, int deltaMouseY ) {}
00546                     
00547       virtual void dragGravityUp( double windowUnits ) {} 
00548       virtual void dragGravityDown( double windowUnits ) {} 
00549       virtual void dragGravityLeft( double windowUnits ) {} 
00550       virtual void dragGravityRight( double windowUnits ) {} 
00551       virtual void scrollObserverForward( int wheelUnits ) {} 
00552       virtual void scrollObserverBack( int wheelUnits ) {} 
00553       virtual void scrollLevelObserverForward( int wheelUnits ) {}
00554       virtual void scrollLevelObserverBack( int wheelUnits ) {}
00555       
00556       //
00557       //
00559       //
00560       //
00561 
00563 
00564 
00565       virtual void startLookLeft() {}
00566       virtual void stopLookLeft() {}
00567       virtual void lookLeft( double rads ) {}
00569      
00571 
00572 
00573       virtual void startLookRight() {}
00574       virtual void stopLookRight() {}
00575       virtual void lookRight( double rads ) {}
00577       
00579 
00580 
00581       virtual void startLookUp( ) {}
00582       virtual void stopLookUp() {}
00583       virtual void lookUp( double rads ) {}
00585      
00587 
00588 
00589       virtual void startLookDown() {}
00590       virtual void stopLookDown() {}
00591       virtual void lookDown( double rads ) {}
00593       
00595 
00596 
00597       virtual void startLookTiltRight() {}
00598       virtual void stopLookTiltRight() {}
00599       virtual void lookTiltRight( double rads ) {}
00601      
00603 
00604 
00605       virtual void startLookTiltLeft() {}
00606       virtual void stopLookTiltLeft() {}
00607       virtual void lookTiltLeft( double rads ) {}
00609       
00611       virtual void resetCamera() {}
00612 
00613       //
00614       //
00616       //
00617       //
00618       
00620       virtual void setOrbitSpeed( double speed ) {}
00621       
00623       virtual void setSpeedScaledSpeed( double speed ) {}
00624        
00626       virtual void setLinearSpeed( double speed ) {}
00627        
00629       virtual void setRotationSpeed( double speed ) {}
00630 
00632       virtual void setMaxLinearSpeed( double maxSpeed ) {}
00633       
00635       virtual void setMinLinearSpeed( double minSpeed ) {}
00636 
00638       virtual void setLinearScaledSpeedGain( double gain ) {}
00639      
00643       virtual void resetOrientation() {}
00644       
00648       virtual void gotoTerrainCenter( DtUniqueID terrainPatch, bool retry ) {}     
00649       
00651       virtual void resetAttachment() {}     
00652       
00653     
00655       virtual void stopAll() {}
00656       
00657       virtual void attachToObjects( const std::vector<DtUniqueID>& ids ) {}      
00658       virtual void setSecondaryAttachment( const std::vector<DtUniqueID>& ids  ) {}
00659 
00660       virtual void attachToPart( int partId) {}      
00661       virtual void detach() {}
00662       
00664       virtual void setSpeedScaling( bool trueFalse ) {}
00665       
00667       virtual void setConstrainToTerrain( bool trueFalse ) {}
00668       virtual void setConstrainToCenter( bool trueFalse ) {}
00669      
00671 
00672       virtual void increaseViewResolution() {}
00673       virtual void startIncreasingViewResolution() {}
00674       virtual void stopIncreasingViewResolution() {}
00675       virtual void decreaseViewResolution() {}
00676       virtual void startDecreasingViewResolution() {}
00677       virtual void stopDecreasingViewResolution() {}
00678       virtual void setViewResolution( double resolution ) {}
00680       
00683       virtual void suppressConstrainToTerrain( bool trueFalse  ) {}
00684       virtual void setAttachType( DtObserverObject::AttachType type ) {}
00685 
00686       virtual void setHideModelOnAttach( bool hide ) {}
00687       virtual void setOrientToTargetConstraint( bool orient ) {}
00688       virtual void setOrbiting( bool orient ) {}
00689       virtual void setOrientCameraToTargetConstraint( bool orient ) {}
00690 
00691       virtual void getLocation( double &x, double &y, double& z ) const
00692       {
00693          x = y = z = 0.; 
00694       }
00695 
00696       virtual void getOrientation( double& psi, double& theta, double& phi ) const
00697       {
00698          psi = theta = phi = 0.; 
00699       }
00700 
00702       virtual void getLinearVelocity( double &x, double &y, double &z ) const
00703       {
00704          x = y = z = 0;
00705       }
00706 
00708       virtual void getRotationalVelocity( double& x, double& y, double& z) const
00709       { 
00710          x = y = z = 0.; 
00711       }
00712 
00713       virtual void getObserverOffsetVector( double& x, double& y, double& z ) const
00714       {
00715          x = y = z = 0.;
00716       }
00717 
00719       virtual void setAttachedLocation( double x, double y, double z ) {}
00720 
00722       virtual void setOrientation( double psi, double theta, double phi ) {}
00723 
00725       virtual void setOrientation( double x, double y, double z, double w ) {}
00726 
00728       virtual void setAttachedOrientation( double psi, double theta, double phi ) {}
00729 
00730       virtual void setLocalModelScalingEnabled( bool enabled ) {}
00731 
00732       virtual void setLocalModelScalingAmount( float amount ) {}
00733 
00734       virtual void setObserverOffsetVector( double x, double y, double z ) {}
00735 
00736       virtual void getAttachedRotationOffset( double& x, double& y, double& z, double& w ) const
00737       {
00738          x = y = z = 0.;
00739          w = 1.;
00740       }
00741 
00742       virtual void getOrientation( double& x, double& y, double& z, double& w ) const
00743       {
00744          x = y = z = 0.;
00745          w = 1.;
00746       }
00747 
00748       virtual void setAttachedRotationOffset( double x, double y, double z, 
00749          double w ) {}
00750 
00753       virtual bool isMoving() const { return false; }
00754 
00755       virtual double topographicHeading() const
00756       {
00757             return 0.0;
00758       }
00759 
00761       bool isGlobalTerrain() const
00762       {
00763          return myTerrainIsGlobalFlag;
00764       }
00765 
00766       // Sends the location of the observer on the master to all others; only used
00767       // if different
00768       virtual void synchronizeLocation( double x, double y, double z ) {}
00769 
00770       // Sends the orientation of the observer on the master to all others; only used
00771       // if different
00772       virtual void synchronizeOrientation( double x, double y, double z, double w ) {}
00773 
00774    private:
00775 
00777       DtObserverObject( const DtObserverObject& );
00778 
00780       DtObserverObject& operator=( const DtObserverObject& );
00781 
00782    protected:
00783 
00784       DtDe& myDe;
00785       std::string myName;
00786       bool myIs2D;
00787       double myScaleFactor;
00788       int myModelSet;
00789       ScaleType myScaleType;
00790       bool myTerrainIsGlobalFlag;
00791       ModeSettingsMap myModeSettingsMap;
00792 
00793    };
00794 
00795 }

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)