VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 heightAboveTerrain() const = 0;
163 
165  virtual double viewResolution() const { return 1.; };
166 
172  virtual void setCurrentViewMagnification( double mag ) = 0;
173 
175  virtual double currentViewMagnification() const = 0;
176 
177  //
178  //
180  //
181  //
182 
184 
185 
186  virtual void startMoveObserverRight() {}
187  virtual void stopMoveObserverRight() {}
188  virtual void moveObserverRight( double ) {}
189 
191 
192 
193  virtual void startMoveObserverForward() {}
194  virtual void stopMoveObserverForward() {}
195  virtual void moveObserverForward( double ) {}
197 
199 
200 
201  virtual void startMoveObserverUp() {}
202  virtual void stopMoveObserverUp() {}
203  virtual void moveObserverUp( double ) {}
205 
207 
208 
209  virtual void startMoveObserverLeft() {}
210  virtual void stopMoveObserverLeft() {}
211  virtual void moveObserverLeft( double ) {}
213 
215 
216 
217  virtual void startMoveObserverBack() {}
218  virtual void stopMoveObserverBack() {}
219  virtual void moveObserverBack( double ) {}
221 
223 
224 
225  virtual void startMoveObserverDown() {}
226  virtual void stopMoveObserverDown() {}
227  virtual void moveObserverDown( double ) {}
229 
231 
232 
233 
234  virtual void startMoveLevelObserverRight() {}
235  virtual void stopMoveLevelObserverRight() {}
236  virtual void moveLevelObserverRight( double ) {}
238 
240 
241 
242 
245  virtual void moveLevelObserverForward( double ) {}
247 
249 
250 
251 
252  virtual void startMoveLevelObserverUp() {}
253  virtual void stopMoveLevelObserverUp() {}
254  virtual void moveLevelObserverUp( double ) {}
256 
258 
259 
260 
261  virtual void startMoveLevelObserverLeft() {}
262  virtual void stopMoveLevelObserverLeft() {}
263  virtual void moveLevelObserverLeft( double ) {}
265 
267 
268 
269 
270  virtual void startMoveLevelObserverBack() {}
271  virtual void stopMoveLevelObserverBack() {}
272  virtual void moveLevelObserverBack( double ) {}
274 
276 
277 
278  virtual void startMoveLevelObserverDown() {}
279  virtual void stopMoveLevelObserverDown() {}
280  virtual void moveLevelObserverDown( double ) {}
282 
284 
285 
286  virtual void startMoveAttachedRight() {}
287  virtual void stopMoveAttachedRight() {}
288  virtual void moveAttachedRight( double ) {}
289 
291 
292 
293  virtual void startMoveAttachedForward() {}
294  virtual void stopMoveAttachedForward() {}
295  virtual void moveAttachedForward( double ) {}
297 
299 
300 
301  virtual void startMoveAttachedUp() {}
302  virtual void stopMoveAttachedUp() {}
303  virtual void moveAttachedUp( double ) {}
305 
307 
308 
309  virtual void startMoveAttachedLeft() {}
310  virtual void stopMoveAttachedLeft() {}
311  virtual void moveAttachedLeft( double ) {}
313 
315 
316 
317  virtual void startMoveAttachedBack() {}
318  virtual void stopMoveAttachedBack() {}
319  virtual void moveAttachedBack( double ) {}
321 
323 
324 
325  virtual void startMoveAttachedDown() {}
326  virtual void stopMoveAttachedDown() {}
327  virtual void moveAttachedDown( double ) {}
329 
331 
332 
333 
334  virtual void startMoveLevelAttachedRight() {}
335  virtual void stopMoveLevelAttachedRight() {}
336  virtual void moveLevelAttachedRight( double ) {}
338 
340 
341 
342 
345  virtual void moveLevelAttachedForward( double ) {}
347 
349 
350 
351 
352  virtual void startMoveLevelAttachedUp() {}
353  virtual void stopMoveLevelAttachedUp() {}
354  virtual void moveLevelAttachedUp( double ) {}
356 
358 
359 
360 
361  virtual void startMoveLevelAttachedLeft() {}
362  virtual void stopMoveLevelAttachedLeft() {}
363  virtual void moveLevelAttachedLeft( double ) {}
365 
367 
368 
369 
370  virtual void startMoveLevelAttachedBack() {}
371  virtual void stopMoveLevelAttachedBack() {}
372  virtual void moveLevelAttachedBack( double ) {}
374 
376 
377 
378  virtual void startMoveLevelAttachedDown() {}
379  virtual void stopMoveLevelAttachedDown() {}
380  virtual void moveLevelAttachedDown( double ) {}
382 
384 
385 
388  virtual void moveAttachedContextRight( double ) {}
390 
392 
393 
396  virtual void moveAttachedContextForward( double ) {}
398 
400 
401 
402  virtual void startMoveAttachedContextUp() {}
403  virtual void stopMoveAttachedContextUp() {}
404  virtual void moveAttachedContextUp( double ) {}
406 
408 
409 
411  virtual void stopMoveAttachedContextLeft() {}
412  virtual void moveAttachedContextLeft( double ) {}
414 
416 
417 
419  virtual void stopMoveAttachedContextBack() {}
420  virtual void moveAttachedContextBack( double ) {}
422 
424 
426  virtual void stopMoveAttachedContextDown() {}
427  virtual void moveAttachedContextDown( double ) {}
429 
431 
432 
433  virtual void startYawLeft() {}
434  virtual void stopYawLeft() {}
435  virtual void rotateYawLeft( double rads ) {}
436  virtual void rotateFlashlightYawLeft( double rads ) {}
438 
440 
441 
442 
443  virtual void startYawRight() {}
444  virtual void stopYawRight() {}
445  virtual void rotateYawRight( double rads ) {}
446  virtual void rotateFlashlightYawRight( double rads ) {}
448 
450 
451 
452  virtual void startPitchUp() {}
453  virtual void stopPitchUp() {}
454  virtual void rotatePitchUp( double rads ) {}
455  virtual void rotateFlashlightPitchUp( double rads ) {}
457 
459 
460 
461  virtual void startPitchDown() {}
462  virtual void stopPitchDown() {}
463  virtual void rotatePitchDown( double rads ) {}
464  virtual void rotateFlashlightPitchDown( double rads ) {}
466 
468 
469 
470  virtual void startRollLeft() {}
471  virtual void stopRollLeft() {}
472  virtual void rollLeft( double rads ) {}
474 
476 
477 
478  virtual void startRollRight() {}
479  virtual void stopRollRight() {}
480  virtual void rollRight( double rads ) {}
482 
484 
485 
486  virtual void startLevelYawLeft() {}
487  virtual void stopLevelYawLeft() {}
488  virtual void rotateLevelYawLeft( double rads ) {}
490 
492 
493 
494 
495  virtual void startLevelYawRight() {}
496  virtual void stopLevelYawRight() {}
497  virtual void rotateLevelYawRight( double rads ) {}
499 
501 
502 
503  virtual void startLevelPitchUp() {}
504  virtual void stopLevelPitchUp() {}
505  virtual void rotateLevelPitchUp( double rads ) {}
507 
509 
510 
511  virtual void startLevelPitchDown() {}
512  virtual void stopLevelPitchDown() {}
513  virtual void rotateLevelPitchDown( double rads ) {}
515 
517 
518 
519  virtual void startLevelRollLeft() {}
520  virtual void stopLevelRollLeft() {}
521  virtual void rollLevelLeft( double rads ) {}
523 
525 
526 
527  virtual void startLevelRollRight() {}
528  virtual void stopLevelRollRight() {}
529  virtual void rollLevelRight( double rads ) {}
531 
533 
534 
535  virtual void startOrbitingLeft() {}
536  virtual void stopOrbitingLeft() {}
537  virtual void orbitLeft( double rads ) {}
539 
541 
542 
543  virtual void startOrbitingRight() {}
544  virtual void stopOrbitingRight() {}
545  virtual void orbitRight( double rads ) {}
547 
549 
550 
551  virtual void startOrbitingUp( ) {}
552  virtual void stopOrbitingUp() {}
553  virtual void orbitUp( double rads ) {}
555 
557 
558 
559  virtual void startOrbitingDown() {}
560  virtual void stopOrbitingDown() {}
561  virtual void orbitDown( double rads ) {}
563 
567  virtual void level() {}
568 
570  virtual void setLocation( double x, double y, double z ) {}
571 
574  virtual void jumpTo( double x, double y, double z ) {}
575 
578  virtual void jumpTo( DtUniqueID id ) {}
579 
580  virtual void orientTo( double x, double y, double z ) {} // = 0;
581 
583  virtual void dragTerrain( double lastX, double lastY, double lastZ,
584  double currX, double currY, double currZ ) {}
585 
586  virtual void dragTerrain2( double myStartDragX, double myStartDragY,
587  double myStartDragZ, int deltaMouseX, int deltaMouseY ) {}
588 
589  virtual void dragGravityUp( double windowUnits ) {}
590  virtual void dragGravityDown( double windowUnits ) {}
591  virtual void dragGravityLeft( double windowUnits ) {}
592  virtual void dragGravityRight( double windowUnits ) {}
593  virtual void scrollObserverForward( int wheelUnits ) {}
594  virtual void scrollObserverBack( int wheelUnits ) {}
595  virtual void scrollLevelObserverForward( int wheelUnits ) {}
596  virtual void scrollLevelObserverBack( int wheelUnits ) {}
597 
598  virtual void scrollFlashlightWider( int wheelUnits ) {}
599  virtual void scrollFlashlightNarrower( int wheelUnits ) {}
600 
601  //
602  //
604  //
605  //
606 
608 
609 
610  virtual void startLookLeft() {}
611  virtual void stopLookLeft() {}
612  virtual void lookLeft( double rads ) {}
614 
616 
617 
618  virtual void startLookRight() {}
619  virtual void stopLookRight() {}
620  virtual void lookRight( double rads ) {}
622 
624 
625 
626  virtual void startLookUp( ) {}
627  virtual void stopLookUp() {}
628  virtual void lookUp( double rads ) {}
630 
632 
633 
634  virtual void startLookDown() {}
635  virtual void stopLookDown() {}
636  virtual void lookDown( double rads ) {}
638 
640 
641 
642  virtual void startLookTiltRight() {}
643  virtual void stopLookTiltRight() {}
644  virtual void lookTiltRight( double rads ) {}
646 
648 
649 
650  virtual void startLookTiltLeft() {}
651  virtual void stopLookTiltLeft() {}
652  virtual void lookTiltLeft( double rads ) {}
654 
656  virtual void resetCamera() {}
657 
658  //
659  //
661  //
662  //
663 
665  virtual void setOrbitSpeed( double speed ) {}
666 
668  virtual void setSpeedScaledSpeed( double speed ) {}
669 
671  virtual void setLinearSpeed( double speed ) {}
672 
674  virtual void setRotationSpeed( double speed ) {}
675 
677  virtual void setMaxLinearSpeed( double maxSpeed ) {}
678 
680  virtual void setMinLinearSpeed( double minSpeed ) {}
681 
683  virtual void setLinearScaledSpeedGain( double gain ) {}
684 
688  virtual void resetOrientation() {}
689 
693  virtual void gotoTerrainCenter( DtUniqueID terrainPatch, bool retry ) {}
694 
696  virtual void resetAttachment() {}
697 
698 
700  virtual void stopAll() {}
701 
702  virtual void attachToObjects( const std::vector<DtUniqueID>& ids ) {}
703  virtual void setSecondaryAttachment( const std::vector<DtUniqueID>& ids ) {}
704  virtual void setLocationTrackAttachment( double x, double y, double z ) {}
705 
707  virtual std::vector<DtUniqueID> currentAttachments() const = 0;
708 
711  virtual void getLocationTrackAttachment( double& x, double& y, double& z )
712  const = 0;
713 
714  virtual void attachToPart( int partId) {}
715  virtual void detach() {}
716 
718  virtual void setSpeedScaling( bool trueFalse ) {}
719 
721  virtual void setConstrainToTerrain( bool trueFalse ) {}
722  virtual void setConstrainToCenter( bool trueFalse ) {}
723 
725 
726  virtual void increaseViewResolution() {}
729  virtual void decreaseViewResolution() {}
732  virtual void setViewResolution( double resolution ) {}
734 
737  virtual void suppressConstrainToTerrain( bool trueFalse ) {}
739 
740  virtual void setHideModelOnAttach( bool hide ) {}
741 
745  virtual void setAttachmentHas3DCockpit( bool cockpit ) {}
746 
747  virtual void setOrientToTargetConstraint( bool orient ) {}
748  virtual void setOrbiting( bool orient ) {}
749  virtual void setOrientCameraToTargetConstraint( bool orient ) {}
750 
752  virtual void setFlashlightEnabled(bool enabled);
753 
755  virtual void setCameraShakeRotation(double x, double y, double z, double w);
756 
758  virtual void getCameraShakeRotation(double& x, double& y, double& z, double& w);
759 
761  virtual bool flashlightOn() const;
762 
763  virtual void getLocation( double &x, double &y, double& z ) const
764  {
765  x = y = z = 0.;
766  }
767 
768  virtual void getOrientation( double& psi, double& theta, double& phi ) const
769  {
770  psi = theta = phi = 0.;
771  }
772 
774  virtual void getTopographicOrientation( double& psi, double& theta, double& phi ) const
775  {
776  psi = theta = phi = 0.;
777  }
778 
780  virtual void getLinearVelocity( double &x, double &y, double &z ) const
781  {
782  x = y = z = 0;
783  }
784 
786  virtual void getRotationalVelocity( double& x, double& y, double& z) const
787  {
788  x = y = z = 0.;
789  }
790 
791  virtual void getObserverOffsetVector( double& x, double& y, double& z ) const
792  {
793  x = y = z = 0.;
794  }
795 
798  virtual double linearSpeed()
799  {
800  return 0.;
801  }
802 
804  virtual void setAttachedLocation( double x, double y, double z ) {}
805 
807  virtual void setOrientation( double psi, double theta, double phi ) {}
808 
810  virtual void setTopographicOrientation( double psi, double theta, double phi ) {}
811 
813  virtual void setOrientation( double x, double y, double z, double w ) {}
814 
816  virtual void setAttachedOrientation( double psi, double theta, double phi ) {}
817 
818  virtual void setLocalModelScalingEnabled( bool enabled ) {}
819 
820  virtual void setLocalModelScalingAmount( float amount ) {}
821 
822  virtual void setObserverOffsetVector( double x, double y, double z ) {}
823 
824  virtual void getAttachedRotationOffset( double& x, double& y, double& z, double& w ) const
825  {
826  x = y = z = 0.;
827  w = 1.;
828  }
829 
830  virtual void getOrientation( double& x, double& y, double& z, double& w ) const
831  {
832  x = y = z = 0.;
833  w = 1.;
834  }
835 
836  virtual void setAttachedRotationOffset( double x, double y, double z,
837  double w ) {}
838 
841  virtual void getObserverPlatformFront(double& x, double& y, double& z) const
842  {
843  x = y = z = 0.;
844  }
845 
848  virtual void getObserverPlatformUp(double& x, double& y, double& z) const
849  {
850  x = y = z = 0.;
851  }
852 
855  virtual void getObserverPlatformRight(double& x, double& y, double& z) const
856  {
857  x = y = z = 0.;
858  }
859 
862  virtual void getObserverFront(double& x, double& y, double& z) const
863  {
864  x = y = z = 0.;
865  }
866 
868  virtual void getObserverUp(double& x, double& y, double& z) const
869  {
870  x = y = z = 0.;
871  }
872 
874  virtual void getObserverRight(double& x, double& y, double& z) const
875  {
876  x = y = z = 0.;
877  }
878 
880  virtual void getCameraUp(double& x, double& y, double& z)
881  {
882  x = y = z = 0.;
883  }
884 
886  virtual void getCameraFront(double& x, double& y, double& z)
887  {
888  x = y = z = 0.;
889  }
890 
891 
893  virtual void getCameraRight(double& x, double& y, double& z)
894  {
895  x = y = z = 0.;
896  }
897 
900  virtual bool isMoving() const { return false; }
901 
902  virtual double topographicHeading() const
903  {
904  return 0.0;
905  }
906 
908  bool isGlobalTerrain() const
909  {
910  return myTerrainIsGlobalFlag;
911  }
912 
913  // Sends the location of the observer on the master to all others; only used
914  // if different
915  virtual void synchronizeLocation( double x, double y, double z ) {}
916 
917  // Sends the orientation of the observer on the master to all others; only used
918  // if different
919  virtual void synchronizeOrientation( double x, double y, double z, double w ) {}
920 
922  virtual void setSensor(const std::string& sensorName);
923 
925  virtual DtSensor* findSensor() const;
926 
928  virtual void disableSensor();
929 
930  private:
931 
934 
936  DtObserverObject& operator=( const DtObserverObject& );
937 
938  protected:
939 
941  std::string myName;
942  bool myIs2D;
953  };
954 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)