VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtObserverObject.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtUniqueID.h>
14 
15 #include <string>
16 #include <vector>
17 #include <map>
18 
19 namespace makVrv
20 {
21 
22  class DtDe;
23  class DtInputDriver;
24  class DtSensor;
25 
30  {
31 
32  public:
33 
34  typedef std::map<int, bool> ModeSettingsMap;
35 
36  enum ScaleType { XRScale, LinearScale };
37 
39  {
49  AttachTypeMimicLocationTrack
50  };
51 
53  {
55  SpeedScalingMsl
56  };
57 
59  DtObserverObject( DtDe& de, DtUniqueID id, const std::string& name="" );
60 
62  virtual ~DtObserverObject();
63 
65  virtual const std::string& name() const;
66 
68  virtual bool is2D() const;
69 
71  virtual void setIs2D( bool is2D );
72 
74  virtual bool displaySky() const;
75 
77  virtual void setDisplaySky( bool hasSky );
78 
80  virtual bool dynamicLights() const;
81 
83  virtual void setDynamicLights( bool enabled );
84 
86  virtual bool dynamicOcean() const;
87 
89  virtual void setDynamicOcean( bool enabled );
90 
93  virtual bool isScaling() const;
94 
96  virtual void setScaling(bool scale);
97 
99  virtual double scaleFactor() const;
100 
102  virtual void setScaleFactor( double scaleFactor );
103 
105  virtual DtObserverObject::ScaleType scaleType() const;
106 
108  virtual void setScaleType( DtObserverObject::ScaleType scaleType );
109 
111  virtual int modelSet() const;
112 
114  virtual void setModelSet( int modelSet );
115 
117  virtual void setSpeedScalingMode( SpeedScalingMode mode );
118 
120  virtual SpeedScalingMode speedScalingMode() const;
121 
123  virtual void setSpeedScalingMslModeOffset( double offset );
124 
126  virtual double speedScalingMslModeOffset() const;
127 
131  virtual void clearModeSettings();
132 
135  virtual void setModeSetting( int setting, bool value );
136 
139  virtual bool modeSetting( int setting ) const;
140 
141  virtual const ModeSettingsMap& modeSettings() const;
142 
146  virtual void setNameAndRegister( const std::string& name );
147 
153  virtual void tick( double ) {}
154 
156  virtual void setTerrainIsGlobal(bool global);
157 
159  virtual double altitude() const = 0;
160 
162  virtual double viewResolution() const { return 1.; };
163 
169  virtual void setCurrentViewMagnification( double mag ) = 0;
170 
172  virtual double currentViewMagnification() const = 0;
173 
174  //
175  //
177  //
178  //
179 
181 
182 
183  virtual void startMoveObserverRight() {}
184  virtual void stopMoveObserverRight() {}
185  virtual void moveObserverRight( double ) {}
186 
188 
189 
190  virtual void startMoveObserverForward() {}
191  virtual void stopMoveObserverForward() {}
192  virtual void moveObserverForward( double ) {}
194 
196 
197 
198  virtual void startMoveObserverUp() {}
199  virtual void stopMoveObserverUp() {}
200  virtual void moveObserverUp( double ) {}
202 
204 
205 
206  virtual void startMoveObserverLeft() {}
207  virtual void stopMoveObserverLeft() {}
208  virtual void moveObserverLeft( double ) {}
210 
212 
213 
214  virtual void startMoveObserverBack() {}
215  virtual void stopMoveObserverBack() {}
216  virtual void moveObserverBack( double ) {}
218 
220 
221 
222  virtual void startMoveObserverDown() {}
223  virtual void stopMoveObserverDown() {}
224  virtual void moveObserverDown( double ) {}
226 
228 
229 
230 
231  virtual void startMoveLevelObserverRight() {}
232  virtual void stopMoveLevelObserverRight() {}
233  virtual void moveLevelObserverRight( double ) {}
235 
237 
238 
239 
242  virtual void moveLevelObserverForward( double ) {}
244 
246 
247 
248 
249  virtual void startMoveLevelObserverUp() {}
250  virtual void stopMoveLevelObserverUp() {}
251  virtual void moveLevelObserverUp( double ) {}
253 
255 
256 
257 
258  virtual void startMoveLevelObserverLeft() {}
259  virtual void stopMoveLevelObserverLeft() {}
260  virtual void moveLevelObserverLeft( double ) {}
262 
264 
265 
266 
267  virtual void startMoveLevelObserverBack() {}
268  virtual void stopMoveLevelObserverBack() {}
269  virtual void moveLevelObserverBack( double ) {}
271 
273 
274 
275  virtual void startMoveLevelObserverDown() {}
276  virtual void stopMoveLevelObserverDown() {}
277  virtual void moveLevelObserverDown( double ) {}
279 
281 
282 
283  virtual void startMoveAttachedRight() {}
284  virtual void stopMoveAttachedRight() {}
285  virtual void moveAttachedRight( double ) {}
286 
288 
289 
290  virtual void startMoveAttachedForward() {}
291  virtual void stopMoveAttachedForward() {}
292  virtual void moveAttachedForward( double ) {}
294 
296 
297 
298  virtual void startMoveAttachedUp() {}
299  virtual void stopMoveAttachedUp() {}
300  virtual void moveAttachedUp( double ) {}
302 
304 
305 
306  virtual void startMoveAttachedLeft() {}
307  virtual void stopMoveAttachedLeft() {}
308  virtual void moveAttachedLeft( double ) {}
310 
312 
313 
314  virtual void startMoveAttachedBack() {}
315  virtual void stopMoveAttachedBack() {}
316  virtual void moveAttachedBack( double ) {}
318 
320 
321 
322  virtual void startMoveAttachedDown() {}
323  virtual void stopMoveAttachedDown() {}
324  virtual void moveAttachedDown( double ) {}
326 
328 
329 
330 
331  virtual void startMoveLevelAttachedRight() {}
332  virtual void stopMoveLevelAttachedRight() {}
333  virtual void moveLevelAttachedRight( double ) {}
335 
337 
338 
339 
342  virtual void moveLevelAttachedForward( double ) {}
344 
346 
347 
348 
349  virtual void startMoveLevelAttachedUp() {}
350  virtual void stopMoveLevelAttachedUp() {}
351  virtual void moveLevelAttachedUp( double ) {}
353 
355 
356 
357 
358  virtual void startMoveLevelAttachedLeft() {}
359  virtual void stopMoveLevelAttachedLeft() {}
360  virtual void moveLevelAttachedLeft( double ) {}
362 
364 
365 
366 
367  virtual void startMoveLevelAttachedBack() {}
368  virtual void stopMoveLevelAttachedBack() {}
369  virtual void moveLevelAttachedBack( double ) {}
371 
373 
374 
375  virtual void startMoveLevelAttachedDown() {}
376  virtual void stopMoveLevelAttachedDown() {}
377  virtual void moveLevelAttachedDown( double ) {}
379 
381 
382 
385  virtual void moveAttachedContextRight( double ) {}
387 
389 
390 
393  virtual void moveAttachedContextForward( double ) {}
395 
397 
398 
399  virtual void startMoveAttachedContextUp() {}
400  virtual void stopMoveAttachedContextUp() {}
401  virtual void moveAttachedContextUp( double ) {}
403 
405 
406 
408  virtual void stopMoveAttachedContextLeft() {}
409  virtual void moveAttachedContextLeft( double ) {}
411 
413 
414 
416  virtual void stopMoveAttachedContextBack() {}
417  virtual void moveAttachedContextBack( double ) {}
419 
421 
423  virtual void stopMoveAttachedContextDown() {}
424  virtual void moveAttachedContextDown( double ) {}
426 
428 
429 
430  virtual void startYawLeft() {}
431  virtual void stopYawLeft() {}
432  virtual void rotateYawLeft( double rads ) {}
433  virtual void rotateFlashlightYawLeft( double rads ) {}
435 
437 
438 
439 
440  virtual void startYawRight() {}
441  virtual void stopYawRight() {}
442  virtual void rotateYawRight( double rads ) {}
443  virtual void rotateFlashlightYawRight( double rads ) {}
445 
447 
448 
449  virtual void startPitchUp() {}
450  virtual void stopPitchUp() {}
451  virtual void rotatePitchUp( double rads ) {}
452  virtual void rotateFlashlightPitchUp( double rads ) {}
454 
456 
457 
458  virtual void startPitchDown() {}
459  virtual void stopPitchDown() {}
460  virtual void rotatePitchDown( double rads ) {}
461  virtual void rotateFlashlightPitchDown( double rads ) {}
463 
465 
466 
467  virtual void startRollLeft() {}
468  virtual void stopRollLeft() {}
469  virtual void rollLeft( double rads ) {}
471 
473 
474 
475  virtual void startRollRight() {}
476  virtual void stopRollRight() {}
477  virtual void rollRight( double rads ) {}
479 
481 
482 
483  virtual void startLevelYawLeft() {}
484  virtual void stopLevelYawLeft() {}
485  virtual void rotateLevelYawLeft( double rads ) {}
487 
489 
490 
491 
492  virtual void startLevelYawRight() {}
493  virtual void stopLevelYawRight() {}
494  virtual void rotateLevelYawRight( double rads ) {}
496 
498 
499 
500  virtual void startLevelPitchUp() {}
501  virtual void stopLevelPitchUp() {}
502  virtual void rotateLevelPitchUp( double rads ) {}
504 
506 
507 
508  virtual void startLevelPitchDown() {}
509  virtual void stopLevelPitchDown() {}
510  virtual void rotateLevelPitchDown( double rads ) {}
512 
514 
515 
516  virtual void startLevelRollLeft() {}
517  virtual void stopLevelRollLeft() {}
518  virtual void rollLevelLeft( double rads ) {}
520 
522 
523 
524  virtual void startLevelRollRight() {}
525  virtual void stopLevelRollRight() {}
526  virtual void rollLevelRight( double rads ) {}
528 
530 
531 
532  virtual void startOrbitingLeft() {}
533  virtual void stopOrbitingLeft() {}
534  virtual void orbitLeft( double rads ) {}
536 
538 
539 
540  virtual void startOrbitingRight() {}
541  virtual void stopOrbitingRight() {}
542  virtual void orbitRight( double rads ) {}
544 
546 
547 
548  virtual void startOrbitingUp( ) {}
549  virtual void stopOrbitingUp() {}
550  virtual void orbitUp( double rads ) {}
552 
554 
555 
556  virtual void startOrbitingDown() {}
557  virtual void stopOrbitingDown() {}
558  virtual void orbitDown( double rads ) {}
560 
564  virtual void level() {}
565 
567  virtual void setLocation( double x, double y, double z ) {}
568 
571  virtual void jumpTo( double x, double y, double z ) {}
572 
575  virtual void jumpTo( DtUniqueID id ) {}
576 
577  virtual void orientTo( double x, double y, double z ) {} // = 0;
578 
580  virtual void dragTerrain( double lastX, double lastY, double lastZ,
581  double currX, double currY, double currZ ) {}
582 
583  virtual void dragTerrain2( double myStartDragX, double myStartDragY,
584  double myStartDragZ, int deltaMouseX, int deltaMouseY ) {}
585 
586  virtual void dragGravityUp( double windowUnits ) {}
587  virtual void dragGravityDown( double windowUnits ) {}
588  virtual void dragGravityLeft( double windowUnits ) {}
589  virtual void dragGravityRight( double windowUnits ) {}
590  virtual void scrollObserverForward( int wheelUnits ) {}
591  virtual void scrollObserverBack( int wheelUnits ) {}
592  virtual void scrollLevelObserverForward( int wheelUnits ) {}
593  virtual void scrollLevelObserverBack( int wheelUnits ) {}
594 
595  virtual void scrollFlashlightWider( int wheelUnits ) {}
596  virtual void scrollFlashlightNarrower( int wheelUnits ) {}
597 
598  //
599  //
601  //
602  //
603 
605 
606 
607  virtual void startLookLeft() {}
608  virtual void stopLookLeft() {}
609  virtual void lookLeft( double rads ) {}
611 
613 
614 
615  virtual void startLookRight() {}
616  virtual void stopLookRight() {}
617  virtual void lookRight( double rads ) {}
619 
621 
622 
623  virtual void startLookUp( ) {}
624  virtual void stopLookUp() {}
625  virtual void lookUp( double rads ) {}
627 
629 
630 
631  virtual void startLookDown() {}
632  virtual void stopLookDown() {}
633  virtual void lookDown( double rads ) {}
635 
637 
638 
639  virtual void startLookTiltRight() {}
640  virtual void stopLookTiltRight() {}
641  virtual void lookTiltRight( double rads ) {}
643 
645 
646 
647  virtual void startLookTiltLeft() {}
648  virtual void stopLookTiltLeft() {}
649  virtual void lookTiltLeft( double rads ) {}
651 
653  virtual void resetCamera() {}
654 
655  //
656  //
658  //
659  //
660 
662  virtual void setOrbitSpeed( double speed ) {}
663 
665  virtual void setSpeedScaledSpeed( double speed ) {}
666 
668  virtual void setLinearSpeed( double speed ) {}
669 
671  virtual void setRotationSpeed( double speed ) {}
672 
674  virtual void setMaxLinearSpeed( double maxSpeed ) {}
675 
677  virtual void setMinLinearSpeed( double minSpeed ) {}
678 
680  virtual void setLinearScaledSpeedGain( double gain ) {}
681 
685  virtual void resetOrientation() {}
686 
690  virtual void gotoTerrainCenter( DtUniqueID terrainPatch, bool retry ) {}
691 
693  virtual void resetAttachment() {}
694 
695 
697  virtual void stopAll() {}
698 
699  virtual void attachToObjects( const std::vector<DtUniqueID>& ids ) {}
700  virtual void setSecondaryAttachment( const std::vector<DtUniqueID>& ids ) {}
701  virtual void setLocationTrackAttachment( double x, double y, double z ) {}
702 
704  virtual std::vector<DtUniqueID> currentAttachments() const = 0;
705 
708  virtual void getLocationTrackAttachment( double& x, double& y, double& z )
709  const = 0;
710 
711  virtual void attachToPart( int partId) {}
712  virtual void detach() {}
713 
715  virtual void setSpeedScaling( bool trueFalse ) {}
716 
718  virtual void setConstrainToTerrain( bool trueFalse ) {}
719  virtual void setConstrainToCenter( bool trueFalse ) {}
720 
722 
723  virtual void increaseViewResolution() {}
726  virtual void decreaseViewResolution() {}
729  virtual void setViewResolution( double resolution ) {}
731 
734  virtual void suppressConstrainToTerrain( bool trueFalse ) {}
736 
737  virtual void setHideModelOnAttach( bool hide ) {}
738 
742  virtual void setAttachmentHas3DCockpit( bool cockpit ) {}
743 
744  virtual void setOrientToTargetConstraint( bool orient ) {}
745  virtual void setOrbiting( bool orient ) {}
746  virtual void setOrientCameraToTargetConstraint( bool orient ) {}
747 
749  virtual void setFlashlightEnabled(bool enabled);
750 
752  virtual void setCameraShakeRotation(double x, double y, double z, double w);
753 
755  virtual void getCameraShakeRotation(double& x, double& y, double& z, double& w);
756 
758  virtual bool flashlightOn() const;
759 
760  virtual void getLocation( double &x, double &y, double& z ) const
761  {
762  x = y = z = 0.;
763  }
764 
765  virtual void getOrientation( double& psi, double& theta, double& phi ) const
766  {
767  psi = theta = phi = 0.;
768  }
769 
771  virtual void getTopographicOrientation( double& psi, double& theta, double& phi ) const
772  {
773  psi = theta = phi = 0.;
774  }
775 
777  virtual void getLinearVelocity( double &x, double &y, double &z ) const
778  {
779  x = y = z = 0;
780  }
781 
783  virtual void getRotationalVelocity( double& x, double& y, double& z) const
784  {
785  x = y = z = 0.;
786  }
787 
788  virtual void getObserverOffsetVector( double& x, double& y, double& z ) const
789  {
790  x = y = z = 0.;
791  }
792 
795  virtual double linearSpeed()
796  {
797  return 0.;
798  }
799 
801  virtual void setAttachedLocation( double x, double y, double z ) {}
802 
804  virtual void setOrientation( double psi, double theta, double phi ) {}
805 
807  virtual void setTopographicOrientation( double psi, double theta, double phi ) {}
808 
810  virtual void setOrientation( double x, double y, double z, double w ) {}
811 
813  virtual void setAttachedOrientation( double psi, double theta, double phi ) {}
814 
815  virtual void setLocalModelScalingEnabled( bool enabled ) {}
816 
817  virtual void setLocalModelScalingAmount( float amount ) {}
818 
819  virtual void setObserverOffsetVector( double x, double y, double z ) {}
820 
821  virtual void getAttachedRotationOffset( double& x, double& y, double& z, double& w ) const
822  {
823  x = y = z = 0.;
824  w = 1.;
825  }
826 
827  virtual void getOrientation( double& x, double& y, double& z, double& w ) const
828  {
829  x = y = z = 0.;
830  w = 1.;
831  }
832 
833  virtual void setAttachedRotationOffset( double x, double y, double z,
834  double w ) {}
835 
836  virtual void getCameraUp(double& x, double& y, double& z)
837  {
838  x = y = z = 0.;
839  }
840 
841  virtual void getCameraFront(double& x, double& y, double& z)
842  {
843  x = y = z = 0.;
844  }
845 
846 
847  virtual void getCameraRight(double& x, double& y, double& z)
848  {
849  x = y = z = 0.;
850  }
851 
854  virtual bool isMoving() const { return false; }
855 
856  virtual double topographicHeading() const
857  {
858  return 0.0;
859  }
860 
862  bool isGlobalTerrain() const
863  {
864  return myTerrainIsGlobalFlag;
865  }
866 
867  // Sends the location of the observer on the master to all others; only used
868  // if different
869  virtual void synchronizeLocation( double x, double y, double z ) {}
870 
871  // Sends the orientation of the observer on the master to all others; only used
872  // if different
873  virtual void synchronizeOrientation( double x, double y, double z, double w ) {}
874 
876  virtual void setSensor(const std::string& sensorName);
877 
879  virtual DtSensor* findSensor() const;
880 
882  virtual void disableSensor();
883 
884  private:
885 
888 
890  DtObserverObject& operator=( const DtObserverObject& );
891 
892  protected:
893 
895  std::string myName;
896  bool myIs2D;
906  };
907 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)