VR-Vantage API Documentation
DtObserverObject.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2012 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  {
47  AttachTypeSpaceFollow
48  };
49 
51  DtObserverObject( DtDe& de, DtUniqueID id, const std::string& name="" );
52 
54  virtual ~DtObserverObject();
55 
57  virtual const std::string& name() const;
58 
60  virtual bool is2D() const;
61 
63  virtual void setIs2D( bool is2D );
64 
66  virtual bool displaySky() const;
67 
69  virtual void setDisplaySky( bool hasSky );
70 
73  virtual bool isScaling() const;
74 
76  virtual void setScaling(bool scale);
77 
79  virtual double scaleFactor() const;
80 
82  virtual void setScaleFactor( double scaleFactor );
83 
85  virtual DtObserverObject::ScaleType scaleType() const;
86 
88  virtual void setScaleType( DtObserverObject::ScaleType scaleType );
89 
91  virtual int modelSet() const;
92 
94  virtual void setModelSet( int modelSet );
95 
99  virtual void clearModeSettings();
100 
103  virtual void setModeSetting( int setting, bool value );
104 
107  virtual bool modeSetting( int setting ) const;
108 
109  virtual const ModeSettingsMap& modeSettings() const;
110 
114  virtual void setNameAndRegister( const std::string& name );
115 
121  virtual void tick( double ) {}
122 
124  virtual void setTerrainIsGlobal(bool global);
125 
127  virtual double altitude() const = 0;
128 
130  virtual double viewResolution() const { return 1.; };
131 
134  virtual void setViewMagnification( double mag ) = 0;
135 
136  //
137  //
139  //
140  //
141 
143 
144 
145  virtual void startMoveObserverRight() {}
146  virtual void stopMoveObserverRight() {}
147  virtual void moveObserverRight( double ) {}
148 
150 
151 
152  virtual void startMoveObserverForward() {}
153  virtual void stopMoveObserverForward() {}
154  virtual void moveObserverForward( double ) {}
156 
158 
159 
160  virtual void startMoveObserverUp() {}
161  virtual void stopMoveObserverUp() {}
162  virtual void moveObserverUp( double ) {}
164 
166 
167 
168  virtual void startMoveObserverLeft() {}
169  virtual void stopMoveObserverLeft() {}
170  virtual void moveObserverLeft( double ) {}
172 
174 
175 
176  virtual void startMoveObserverBack() {}
177  virtual void stopMoveObserverBack() {}
178  virtual void moveObserverBack( double ) {}
180 
182 
183 
184  virtual void startMoveObserverDown() {}
185  virtual void stopMoveObserverDown() {}
186  virtual void moveObserverDown( double ) {}
188 
190 
191 
192 
193  virtual void startMoveLevelObserverRight() {}
194  virtual void stopMoveLevelObserverRight() {}
195  virtual void moveLevelObserverRight( double ) {}
197 
199 
200 
201 
204  virtual void moveLevelObserverForward( double ) {}
206 
208 
209 
210 
211  virtual void startMoveLevelObserverUp() {}
212  virtual void stopMoveLevelObserverUp() {}
213  virtual void moveLevelObserverUp( double ) {}
215 
217 
218 
219 
220  virtual void startMoveLevelObserverLeft() {}
221  virtual void stopMoveLevelObserverLeft() {}
222  virtual void moveLevelObserverLeft( double ) {}
224 
226 
227 
228 
229  virtual void startMoveLevelObserverBack() {}
230  virtual void stopMoveLevelObserverBack() {}
231  virtual void moveLevelObserverBack( double ) {}
233 
235 
236 
237  virtual void startMoveLevelObserverDown() {}
238  virtual void stopMoveLevelObserverDown() {}
239  virtual void moveLevelObserverDown( double ) {}
241 
243 
244 
245  virtual void startMoveAttachedRight() {}
246  virtual void stopMoveAttachedRight() {}
247  virtual void moveAttachedRight( double ) {}
248 
250 
251 
252  virtual void startMoveAttachedForward() {}
253  virtual void stopMoveAttachedForward() {}
254  virtual void moveAttachedForward( double ) {}
256 
258 
259 
260  virtual void startMoveAttachedUp() {}
261  virtual void stopMoveAttachedUp() {}
262  virtual void moveAttachedUp( double ) {}
264 
266 
267 
268  virtual void startMoveAttachedLeft() {}
269  virtual void stopMoveAttachedLeft() {}
270  virtual void moveAttachedLeft( double ) {}
272 
274 
275 
276  virtual void startMoveAttachedBack() {}
277  virtual void stopMoveAttachedBack() {}
278  virtual void moveAttachedBack( double ) {}
280 
282 
283 
284  virtual void startMoveAttachedDown() {}
285  virtual void stopMoveAttachedDown() {}
286  virtual void moveAttachedDown( double ) {}
288 
290 
291 
292 
293  virtual void startMoveLevelAttachedRight() {}
294  virtual void stopMoveLevelAttachedRight() {}
295  virtual void moveLevelAttachedRight( double ) {}
297 
299 
300 
301 
304  virtual void moveLevelAttachedForward( double ) {}
306 
308 
309 
310 
311  virtual void startMoveLevelAttachedUp() {}
312  virtual void stopMoveLevelAttachedUp() {}
313  virtual void moveLevelAttachedUp( double ) {}
315 
317 
318 
319 
320  virtual void startMoveLevelAttachedLeft() {}
321  virtual void stopMoveLevelAttachedLeft() {}
322  virtual void moveLevelAttachedLeft( double ) {}
324 
326 
327 
328 
329  virtual void startMoveLevelAttachedBack() {}
330  virtual void stopMoveLevelAttachedBack() {}
331  virtual void moveLevelAttachedBack( double ) {}
333 
335 
336 
337  virtual void startMoveLevelAttachedDown() {}
338  virtual void stopMoveLevelAttachedDown() {}
339  virtual void moveLevelAttachedDown( double ) {}
341 
343 
344 
347  virtual void moveAttachedContextRight( double ) {}
349 
351 
352 
355  virtual void moveAttachedContextForward( double ) {}
357 
359 
360 
361  virtual void startMoveAttachedContextUp() {}
362  virtual void stopMoveAttachedContextUp() {}
363  virtual void moveAttachedContextUp( double ) {}
365 
367 
368 
370  virtual void stopMoveAttachedContextLeft() {}
371  virtual void moveAttachedContextLeft( double ) {}
373 
375 
376 
378  virtual void stopMoveAttachedContextBack() {}
379  virtual void moveAttachedContextBack( double ) {}
381 
383 
385  virtual void stopMoveAttachedContextDown() {}
386  virtual void moveAttachedContextDown( double ) {}
388 
390 
391 
392  virtual void startYawLeft() {}
393  virtual void stopYawLeft() {}
394  virtual void rotateYawLeft( double rads ) {}
396 
398 
399 
400 
401  virtual void startYawRight() {}
402  virtual void stopYawRight() {}
403  virtual void rotateYawRight( double rads ) {}
405 
407 
408 
409  virtual void startPitchUp() {}
410  virtual void stopPitchUp() {}
411  virtual void rotatePitchUp( double rads ) {}
413 
415 
416 
417  virtual void startPitchDown() {}
418  virtual void stopPitchDown() {}
419  virtual void rotatePitchDown( double rads ) {}
421 
423 
424 
425  virtual void startRollLeft() {}
426  virtual void stopRollLeft() {}
427  virtual void rollLeft( double rads ) {}
429 
431 
432 
433  virtual void startRollRight() {}
434  virtual void stopRollRight() {}
435  virtual void rollRight( double rads ) {}
437 
439 
440 
441  virtual void startLevelYawLeft() {}
442  virtual void stopLevelYawLeft() {}
443  virtual void rotateLevelYawLeft( double rads ) {}
445 
447 
448 
449 
450  virtual void startLevelYawRight() {}
451  virtual void stopLevelYawRight() {}
452  virtual void rotateLevelYawRight( double rads ) {}
454 
456 
457 
458  virtual void startLevelPitchUp() {}
459  virtual void stopLevelPitchUp() {}
460  virtual void rotateLevelPitchUp( double rads ) {}
462 
464 
465 
466  virtual void startLevelPitchDown() {}
467  virtual void stopLevelPitchDown() {}
468  virtual void rotateLevelPitchDown( double rads ) {}
470 
472 
473 
474  virtual void startLevelRollLeft() {}
475  virtual void stopLevelRollLeft() {}
476  virtual void rollLevelLeft( double rads ) {}
478 
480 
481 
482  virtual void startLevelRollRight() {}
483  virtual void stopLevelRollRight() {}
484  virtual void rollLevelRight( double rads ) {}
486 
488 
489 
490  virtual void startOrbitingLeft() {}
491  virtual void stopOrbitingLeft() {}
492  virtual void orbitLeft( double rads ) {}
494 
496 
497 
498  virtual void startOrbitingRight() {}
499  virtual void stopOrbitingRight() {}
500  virtual void orbitRight( double rads ) {}
502 
504 
505 
506  virtual void startOrbitingUp( ) {}
507  virtual void stopOrbitingUp() {}
508  virtual void orbitUp( double rads ) {}
510 
512 
513 
514  virtual void startOrbitingDown() {}
515  virtual void stopOrbitingDown() {}
516  virtual void orbitDown( double rads ) {}
518 
522  virtual void level() {}
523 
525  virtual void setLocation( double x, double y, double z ) {}
526 
529  virtual void jumpTo( double x, double y, double z ) {}
530 
533  virtual void jumpTo( DtUniqueID id ) {}
534 
535  virtual void orientTo( double x, double y, double z ) {} // = 0;
536 
538  virtual void dragTerrain( double lastX, double lastY, double lastZ,
539  double currX, double currY, double currZ ) {}
540 
541  virtual void dragTerrain2( double myStartDragX, double myStartDragY,
542  double myStartDragZ, int deltaMouseX, int deltaMouseY ) {}
543 
544  virtual void dragGravityUp( double windowUnits ) {}
545  virtual void dragGravityDown( double windowUnits ) {}
546  virtual void dragGravityLeft( double windowUnits ) {}
547  virtual void dragGravityRight( double windowUnits ) {}
548  virtual void scrollObserverForward( int wheelUnits ) {}
549  virtual void scrollObserverBack( int wheelUnits ) {}
550  virtual void scrollLevelObserverForward( int wheelUnits ) {}
551  virtual void scrollLevelObserverBack( int wheelUnits ) {}
552 
553  //
554  //
556  //
557  //
558 
560 
561 
562  virtual void startLookLeft() {}
563  virtual void stopLookLeft() {}
564  virtual void lookLeft( double rads ) {}
566 
568 
569 
570  virtual void startLookRight() {}
571  virtual void stopLookRight() {}
572  virtual void lookRight( double rads ) {}
574 
576 
577 
578  virtual void startLookUp( ) {}
579  virtual void stopLookUp() {}
580  virtual void lookUp( double rads ) {}
582 
584 
585 
586  virtual void startLookDown() {}
587  virtual void stopLookDown() {}
588  virtual void lookDown( double rads ) {}
590 
592 
593 
594  virtual void startLookTiltRight() {}
595  virtual void stopLookTiltRight() {}
596  virtual void lookTiltRight( double rads ) {}
598 
600 
601 
602  virtual void startLookTiltLeft() {}
603  virtual void stopLookTiltLeft() {}
604  virtual void lookTiltLeft( double rads ) {}
606 
608  virtual void resetCamera() {}
609 
610  //
611  //
613  //
614  //
615 
617  virtual void setOrbitSpeed( double speed ) {}
618 
620  virtual void setSpeedScaledSpeed( double speed ) {}
621 
623  virtual void setLinearSpeed( double speed ) {}
624 
626  virtual void setRotationSpeed( double speed ) {}
627 
629  virtual void setMaxLinearSpeed( double maxSpeed ) {}
630 
632  virtual void setMinLinearSpeed( double minSpeed ) {}
633 
635  virtual void setLinearScaledSpeedGain( double gain ) {}
636 
640  virtual void resetOrientation() {}
641 
645  virtual void gotoTerrainCenter( DtUniqueID terrainPatch, bool retry ) {}
646 
648  virtual void resetAttachment() {}
649 
650 
652  virtual void stopAll() {}
653 
654  virtual void attachToObjects( const std::vector<DtUniqueID>& ids ) {}
655  virtual void setSecondaryAttachment( const std::vector<DtUniqueID>& ids ) {}
656 
657  virtual void attachToPart( int partId) {}
658  virtual void detach() {}
659 
661  virtual void setSpeedScaling( bool trueFalse ) {}
662 
664  virtual void setConstrainToTerrain( bool trueFalse ) {}
665  virtual void setConstrainToCenter( bool trueFalse ) {}
666 
668 
669  virtual void increaseViewResolution() {}
672  virtual void decreaseViewResolution() {}
675  virtual void setViewResolution( double resolution ) {}
677 
680  virtual void suppressConstrainToTerrain( bool trueFalse ) {}
682 
683  virtual void setHideModelOnAttach( bool hide ) {}
684  virtual void setOrientToTargetConstraint( bool orient ) {}
685  virtual void setOrbiting( bool orient ) {}
686  virtual void setOrientCameraToTargetConstraint( bool orient ) {}
687 
688  virtual void getLocation( double &x, double &y, double& z ) const
689  {
690  x = y = z = 0.;
691  }
692 
693  virtual void getOrientation( double& psi, double& theta, double& phi ) const
694  {
695  psi = theta = phi = 0.;
696  }
697 
699  virtual void getLinearVelocity( double &x, double &y, double &z ) const
700  {
701  x = y = z = 0;
702  }
703 
705  virtual void getRotationalVelocity( double& x, double& y, double& z) const
706  {
707  x = y = z = 0.;
708  }
709 
710  virtual void getObserverOffsetVector( double& x, double& y, double& z ) const
711  {
712  x = y = z = 0.;
713  }
714 
716  virtual void setAttachedLocation( double x, double y, double z ) {}
717 
719  virtual void setOrientation( double psi, double theta, double phi ) {}
720 
722  virtual void setOrientation( double x, double y, double z, double w ) {}
723 
725  virtual void setAttachedOrientation( double psi, double theta, double phi ) {}
726 
727  virtual void setLocalModelScalingEnabled( bool enabled ) {}
728 
729  virtual void setLocalModelScalingAmount( float amount ) {}
730 
731  virtual void setObserverOffsetVector( double x, double y, double z ) {}
732 
733  virtual void getAttachedRotationOffset( double& x, double& y, double& z, double& w ) const
734  {
735  x = y = z = 0.;
736  w = 1.;
737  }
738 
739  virtual void getOrientation( double& x, double& y, double& z, double& w ) const
740  {
741  x = y = z = 0.;
742  w = 1.;
743  }
744 
745  virtual void setAttachedRotationOffset( double x, double y, double z,
746  double w ) {}
747 
750  virtual bool isMoving() const { return false; }
751 
752  virtual double topographicHeading() const
753  {
754  return 0.0;
755  }
756 
758  bool isGlobalTerrain() const
759  {
760  return myTerrainIsGlobalFlag;
761  }
762 
763  // Sends the location of the observer on the master to all others; only used
764  // if different
765  virtual void synchronizeLocation( double x, double y, double z ) {}
766 
767  // Sends the orientation of the observer on the master to all others; only used
768  // if different
769  virtual void synchronizeOrientation( double x, double y, double z, double w ) {}
770 
772  virtual void setSensor(const std::string& sensorName);
773 
775  virtual DtSensor* findSensor() const;
776 
778  virtual void disableSensor();
779 
780  private:
781 
784 
786  DtObserverObject& operator=( const DtObserverObject& );
787 
788  protected:
789 
791  std::string myName;
792  bool myIs2D;
799  };
800 
801 }


Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)