16 #include <boost/unordered_map.hpp>
18 #include <osg/Matrixd>
35 class DtCoordinateConverter;
37 class DtTerrainPatchObject;
38 class DtAgentUpdateResolverInterface;
50 TerrainResultNoData = 0,
62 virtual void tick(
double simTime );
65 virtual void tickAttachment();
69 virtual void setModelSet(
int modelSet );
72 virtual double altitude()
const;
74 virtual void setNameAndRegister(
const std::string& name );
81 virtual void setCameraPositionAndOrientation(
const osg::Vec3d& position,
82 const osg::Quat& rotation );
84 virtual void getCameraPositionAndOrientation( osg::Vec3d& position,
85 osg::Quat& rotation )
const;
89 static void matrixdToTaitBryan(
const osg::Matrixd& mat, DtTaitBryan& tb,
bool isWorld2D =
false );
90 static double clampUnity(
double x );
100 virtual void startMoveObserverRight();
103 virtual void stopMoveObserverRight();
104 virtual void moveObserverRight(
double meters );
107 virtual void startMoveObserverForward();
110 virtual void stopMoveObserverForward();
111 virtual void moveObserverForward(
double meters );
115 virtual void startMoveObserverUp();
118 virtual void stopMoveObserverUp();
119 virtual void moveObserverUp(
double meters );
123 virtual void startMoveObserverLeft();
126 virtual void stopMoveObserverLeft();
127 virtual void moveObserverLeft(
double meters );
131 virtual void startMoveObserverBack();
134 virtual void stopMoveObserverBack();
135 virtual void moveObserverBack(
double meters );
139 virtual void startMoveObserverDown();
142 virtual void stopMoveObserverDown();
143 virtual void moveObserverDown(
double meters );
147 virtual void startMoveLevelObserverRight();
151 virtual void stopMoveLevelObserverRight();
152 virtual void moveLevelObserverRight(
double meters );
156 virtual void startMoveLevelObserverForward();
160 virtual void stopMoveLevelObserverForward();
161 virtual void moveLevelObserverForward(
double meters );
165 virtual void startMoveLevelObserverUp();
169 virtual void stopMoveLevelObserverUp();
170 virtual void moveLevelObserverUp(
double meters );
174 virtual void startMoveLevelObserverLeft();
178 virtual void stopMoveLevelObserverLeft();
179 virtual void moveLevelObserverLeft(
double meters );
183 virtual void startMoveLevelObserverBack();
187 virtual void stopMoveLevelObserverBack();
188 virtual void moveLevelObserverBack(
double meters );
192 virtual void startMoveLevelObserverDown();
195 virtual void stopMoveLevelObserverDown();
196 virtual void moveLevelObserverDown(
double meters );
200 virtual void startMoveAttachedRight();
203 virtual void stopMoveAttachedRight();
204 virtual void moveAttachedRight(
double meters );
207 virtual void startMoveAttachedForward();
210 virtual void stopMoveAttachedForward();
211 virtual void moveAttachedForward(
double meters );
215 virtual void startMoveAttachedUp();
218 virtual void stopMoveAttachedUp();
219 virtual void moveAttachedUp(
double meters );
223 virtual void startMoveAttachedLeft();
226 virtual void stopMoveAttachedLeft();
227 virtual void moveAttachedLeft(
double meters );
231 virtual void startMoveAttachedBack();
234 virtual void stopMoveAttachedBack();
235 virtual void moveAttachedBack(
double meters );
239 virtual void startMoveAttachedDown();
242 virtual void stopMoveAttachedDown();
243 virtual void moveAttachedDown(
double meters );
247 virtual void startMoveLevelAttachedRight();
251 virtual void stopMoveLevelAttachedRight();
252 virtual void moveLevelAttachedRight(
double meters );
256 virtual void startMoveLevelAttachedForward();
260 virtual void stopMoveLevelAttachedForward();
261 virtual void moveLevelAttachedForward(
double meters );
265 virtual void startMoveLevelAttachedUp();
269 virtual void stopMoveLevelAttachedUp();
270 virtual void moveLevelAttachedUp(
double meters );
274 virtual void startMoveLevelAttachedLeft();
278 virtual void stopMoveLevelAttachedLeft();
279 virtual void moveLevelAttachedLeft(
double meters );
283 virtual void startMoveLevelAttachedBack();
287 virtual void stopMoveLevelAttachedBack();
288 virtual void moveLevelAttachedBack(
double meters );
292 virtual void startMoveLevelAttachedDown();
295 virtual void stopMoveLevelAttachedDown();
296 virtual void moveLevelAttachedDown(
double meters );
300 virtual void startMoveAttachedContextRight();
303 virtual void stopMoveAttachedContextRight();
304 virtual void moveAttachedContextRight(
double meters );
308 virtual void startMoveAttachedContextForward();
311 virtual void stopMoveAttachedContextForward();
312 virtual void moveAttachedContextForward(
double meters );
316 virtual void startMoveAttachedContextUp();
319 virtual void stopMoveAttachedContextUp();
320 virtual void moveAttachedContextUp(
double meters );
324 virtual void startMoveAttachedContextLeft();
327 virtual void stopMoveAttachedContextLeft();
328 virtual void moveAttachedContextLeft(
double meters );
332 virtual void startMoveAttachedContextBack();
335 virtual void stopMoveAttachedContextBack();
336 virtual void moveAttachedContextBack(
double meters );
340 virtual void startMoveAttachedContextDown();
342 virtual void stopMoveAttachedContextDown();
343 virtual void moveAttachedContextDown(
double meters );
347 virtual void startYawLeft();
350 virtual void stopYawLeft();
351 virtual void rotateYawLeft(
double rads);
355 virtual void startYawRight();
359 virtual void stopYawRight();
360 virtual void rotateYawRight(
double rads);
364 virtual void startPitchUp();
367 virtual void stopPitchUp();
368 virtual void rotatePitchUp(
double rads );
369 virtual void rotateFlashlightPitchUp(
double rads );
373 virtual void startPitchDown();
376 virtual void stopPitchDown();
377 virtual void rotatePitchDown(
double rads );
378 virtual void rotateFlashlightPitchDown(
double rads );
382 virtual void startRollLeft();
385 virtual void stopRollLeft();
386 virtual void rollLeft(
double rads);
390 virtual void startRollRight();
393 virtual void stopRollRight();
394 virtual void rollRight(
double rads);
398 virtual void startLevelYawLeft();
401 virtual void stopLevelYawLeft();
405 virtual void startLevelYawRight();
409 virtual void stopLevelYawRight();
413 virtual void startLevelPitchUp();
416 virtual void stopLevelPitchUp();
417 virtual void rotateLevelPitchUp(
double rads);
421 virtual void startLevelPitchDown();
424 virtual void stopLevelPitchDown();
425 virtual void rotateLevelPitchDown(
double rads);
429 virtual void startLevelRollLeft();
432 virtual void stopLevelRollLeft();
433 virtual void rollLevelLeft(
double rads);
437 virtual void startLevelRollRight();
440 virtual void stopLevelRollRight();
441 virtual void rollLevelRight(
double rads);
444 virtual void rotateLevelYawLeft(
double rads );
445 virtual void rotateLevelYawRight(
double rads );
446 virtual void rotateFlashlightYawLeft(
double rads );
447 virtual void rotateFlashlightYawRight(
double rads );
449 virtual void startLookLeft();
450 virtual void stopLookLeft();
451 virtual void lookLeft(
double rads );
453 virtual void startLookRight();
454 virtual void stopLookRight();
455 virtual void lookRight(
double rads );
457 virtual void startLookUp();
458 virtual void stopLookUp();
459 virtual void lookUp(
double rads );
461 virtual void startLookDown();
462 virtual void stopLookDown();
463 virtual void lookDown(
double rads );
465 virtual void startLookTiltRight();
466 virtual void stopLookTiltRight();
467 virtual void lookTiltRight(
double rads );
469 virtual void startLookTiltLeft();
470 virtual void stopLookTiltLeft();
471 virtual void lookTiltLeft(
double rads );
474 virtual void startOrbitingLeft();
477 virtual void stopOrbitingLeft();
478 virtual void orbitLeft(
double rads );
482 virtual void startOrbitingRight();
485 virtual void stopOrbitingRight();
486 virtual void orbitRight(
double rads );
490 virtual void startOrbitingUp();
493 virtual void stopOrbitingUp();
494 virtual void orbitUp(
double rads );
498 virtual void startOrbitingDown();
501 virtual void stopOrbitingDown();
502 virtual void orbitDown(
double rads );
506 virtual void setLocation(
double x,
double y,
double z);
511 virtual void setAttachedLocation(
double x,
double y,
double z );
514 virtual void setOrientation(
double psi,
double theta,
double phi );
517 virtual void setTopographicOrientation(
double psi,
double theta,
double phi );
520 virtual void setOrientation(
double x,
double y,
double z,
double w);
523 virtual void setAttachedOrientation(
double psi,
double theta,
double phi );
526 virtual void setAttachedOrientation(
double x,
double y,
double z,
531 void setLocalModelScalingEnabled(
bool enabled );
535 void setLocalModelScalingAmount(
float amount );
539 virtual void jumpTo(
double x,
double y,
double z );
544 virtual void orientTo(
double x,
double y,
double z );
547 virtual void dragTerrain(
double lastX,
double lastY,
double lastZ,
548 double currX,
double currY,
double currZ );
550 virtual void dragTerrain2(
double myStartDragX,
double myStartDragY,
551 double myStartDragZ,
int deltaMouseX,
int deltaMouseY );
553 virtual void dragGravityUp(
double windowUnits );
554 virtual void dragGravityDown(
double windowUnits );
555 virtual void dragGravityLeft(
double windowUnits );
556 virtual void dragGravityRight(
double windowUnits );
557 virtual void scrollObserverForward(
int wheelUnits );
558 virtual void scrollObserverBack(
int wheelUnits );
559 virtual void scrollLevelObserverForward(
int wheelUnits );
560 virtual void scrollLevelObserverBack(
int wheelUnits );
562 virtual void scrollFlashlightWider(
int wheelUnits );
563 virtual void scrollFlashlightNarrower(
int wheelUnits );
566 virtual float flashlightAngle();
570 virtual void startIncreasingViewResolution();
571 virtual void stopIncreasingViewResolution();
572 virtual void increaseViewResolution();
574 virtual void startDecreasingViewResolution();
575 virtual void stopDecreasingViewResolution();
576 virtual void decreaseViewResolution();
579 virtual void setViewResolution(
double resolution);
582 virtual double viewResolution()
const;
589 virtual void setCurrentViewMagnification(
double mag );
592 virtual double currentViewMagnification()
const;
601 virtual void setOrbitSpeed(
double speed );
604 virtual void setLinearSpeed(
double speed );
607 virtual void setRotationSpeed(
double speed );
610 virtual void setMinLinearSpeed(
double minSpeed );
613 virtual void setMaxLinearSpeed(
double maxSpeed );
616 virtual void setLinearScaledSpeedGain(
double gain );
623 virtual void gotoTerrainCenter(
DtUniqueID terrainPatch,
bool retry );
626 virtual void resetAttachment();
628 virtual void resetOrientation();
631 virtual void resetCamera();
632 virtual void level();
634 virtual void stopAll();
636 virtual void attachToObjects(
const std::vector<DtUniqueID>& elementIds );
637 virtual void setSecondaryAttachment(
const std::vector<DtUniqueID>& elementIds );
638 virtual void setLocationTrackAttachment(
const osg::Vec3d& location );
639 virtual void setLocationTrackAttachment(
double x,
double y,
double z );
641 virtual void attachToPart(
int partId);
642 virtual void detach();
644 virtual void setHideModelOnAttach(
bool hide );
649 virtual void setAttachmentHas3DCockpit(
bool cockpit );
651 virtual void scaleCurrentAttachments(
bool scaled );
652 virtual void setOrientToTargetConstraint(
bool orient );
653 virtual void setOrbiting(
bool orbit );
654 virtual void setOrientCameraToTargetConstraint(
bool orient );
656 virtual void setConstrainToTerrain(
bool trueFalse );
657 virtual void setConstrainToCenter(
bool trueFalse );
661 virtual void suppressConstrainToTerrain(
bool trueFalse );
663 virtual void setSpeedScaling(
bool trueFalse );
666 virtual void setSpeedScaledSpeed(
double speed );
669 virtual void getLocation(
double &x,
double &y,
double& z)
const;
671 virtual void getObserverPosition(
double &x,
double &y,
double& z)
const;
672 virtual void getEffectiveLocation(
double &x,
double &y,
double& z)
const;
676 virtual void getObserverCameraPosition(
double& x,
double& y,
double& z)
const;
679 virtual void getOrientation(
double& psi,
double& theta,
double& phi )
const;
683 virtual void getObserverCameraOrientation(
double& psi,
double& theta,
double& phi,
bool includeShake)
const;
686 virtual void getTopographicOrientation(
double& psi,
double& theta,
double& phi )
const;
688 virtual void getOrientation(
double& x,
double& y,
double& z,
double& w )
const;
690 virtual void getFlashlightOrientation(
double& x,
double& y,
double& z,
double& w )
const;
694 virtual void getObserverPlatformFront(
double& x,
double& y,
double& z)
const;
698 virtual void getObserverPlatformUp(
double& x,
double& y,
double& z)
const;
702 virtual void getObserverPlatformRight(
double& x,
double& y,
double& z)
const;
706 virtual void getObserverCameraFront(
double& x,
double& y,
double& z,
bool includeShake)
const;
709 virtual void getObserverCameraUp(
double& x,
double& y,
double& z,
bool includeShake)
const;
712 virtual void getObserverCameraRight(
double& x,
double& y,
double& z,
bool includeShake)
const;
714 virtual void getCameraUp(
double& x,
double& y,
double& z);
716 virtual void getCameraFront(
double& x,
double& y,
double& z);
718 virtual void getCameraRight(
double& x,
double& y,
double& z);
721 virtual void setCameraShakeRotation(
double x,
double y,
double z,
double w);
724 virtual void getCameraShakeRotation(
double& x,
double& y,
double& z,
double& w);;
733 virtual double heightAboveTerrainFromCurrentZoom(
double magnification = 1.)
const;
738 virtual double altitudeFromCurrentZoom(
double magnification=1.)
const;
742 virtual double zoomFromHeightAboveTerrain(
double hat,
double magnification=1)
const;
746 virtual double zoomFromAltitude(
double altitude,
double magnification=1.)
const;
752 virtual double zoomFromCurrentAltitude()
const;
756 virtual double topographicHeading()
const;
759 virtual void getLinearVelocity(
double &x,
double &y,
double &z)
const;
762 virtual void getRotationalVelocity(
double& x,
double& y,
double& z)
const;
767 virtual void setModeSetting(
int setting,
bool value );
770 virtual std::vector<DtUniqueID> currentAttachments()
const;
775 virtual const osg::Vec3d& locationTrackAttachmentVec3d()
const;
776 virtual void getLocationTrackAttachment(
double& x,
double& y,
double& z )
const;
790 virtual bool attachedObjectHidden()
const;
795 virtual bool attachmentHas3DCockpit()
const;
799 virtual osg::Vec3d attachedOffsetVector()
const;
805 virtual double attachedNearClipOffset()
const;
808 virtual double heightAboveTerrain()
const;
811 virtual double heightOfTerrain()
const;
823 virtual bool shouldOrientToGlobeCenter();
826 virtual void adjustToGlobeCurvature();
829 virtual bool shouldRotateGlobe();
831 virtual void calcObserverWorldVectors();
832 virtual const osg::Vec3d& observerWorldUp()
const;
833 virtual const osg::Vec3d& observerWorldNorth()
const;
834 virtual const osg::Vec3d& observerWorldEast()
const;
836 virtual const osg::Vec3d& attachedWorldUp()
const;
838 virtual osg::Vec3d& observerUp();
839 virtual osg::Vec3d& observerFront();
840 virtual osg::Vec3d& observerRight();
841 virtual void observerBasis(osg::Vec3d& up, osg::Vec3d& front, osg::Vec3d& right);
843 virtual osg::Vec3d& attachedUp();
844 virtual osg::Vec3d& attachedFront();
845 virtual osg::Vec3d& attachedRight();
847 virtual osg::Vec3d& attachedOffsetUp();
848 virtual osg::Vec3d& attachedOffsetFront();
849 virtual osg::Vec3d& attachedOffsetRight();
852 virtual osg::Vec3d& levelAttachedUp();
853 virtual osg::Vec3d& levelAttachedFront();
854 virtual osg::Vec3d& levelAttachedRight();
857 virtual osg::Vec3d& levelObserverMimicUp();
858 virtual osg::Vec3d& levelObserverMimicFront();
859 virtual osg::Vec3d& levelObserverMimicRight();
861 virtual osg::Vec3d& cameraUp();
862 virtual osg::Vec3d& cameraFront();
863 virtual osg::Vec3d& cameraRight();
865 virtual osg::Vec3d& levelObserverUp();
866 virtual osg::Vec3d& levelObserverFront();
867 virtual osg::Vec3d& levelObserverRight();
869 virtual void advanceOrbitLeft(
double rads );
870 virtual void advanceOrbitRight(
double rads );
871 virtual void advanceOrbitUp(
double rads );
872 virtual void advanceOrbitDown(
double rads );
874 virtual void makeLevelObserverMatrix();
877 virtual void calculateLevelAttachedRotation();
880 virtual void makeLevelObserverMimicMatrix();
885 virtual osg::Vec3d calcWorldPositionChange();
887 virtual osg::Vec3d calcMimicPositionChange();
889 virtual osg::Vec3d calcAttachedPosition(
const osg::Quat& attInverse,
const osg::Vec3d& attachedAdvance);
890 virtual osg::Vec3d calcAttachedAdvance(
const osg::Quat& tetherTrackInverse);
892 virtual osg::Vec3d calcFollowPositionChange();
893 virtual osg::Vec3d calcSpaceFollowPositionChange();
894 virtual osg::Vec3d calcTetherPositionChange();
895 virtual osg::Vec3d calcTetherTrackPositionChange();
897 virtual osg::Vec3d calcTrackPositionChange();
898 virtual osg::Quat calcTetherTrackRotation();
900 virtual osg::Quat calcFlashlightOrientationChange();
901 virtual osg::Quat calcWorldOrientationChange();
902 virtual osg::Quat calcTetherOrientationChange();
903 virtual osg::Quat calcMimicOrientationChange();
904 virtual osg::Quat calcFollowOrientationChange();
906 virtual void setCurrentAttachmentsVisibility(
bool visible );
917 virtual void orientTo(
const osg::Vec3d& target );
920 virtual void orientCameraTo(
const osg::Vec3d& target );
922 virtual TerrainResult getTerrainCenter(
const DtUniqueID& patchID, osg::Vec3d& center );
927 virtual void initializeAttachment();
929 virtual const osg::Vec3d& scalingIntersection()
const;
930 virtual void getViewIntersection();
933 virtual double linearSpeed();
936 virtual double speedScalingGain()
const;
938 virtual void calcTerrainConstraint(
const osg::Vec3d& prev );
945 virtual bool updateAttachPositionAndOrientation();
947 virtual bool getSecondaryAttachPosition( osg::Vec3d& position );
949 virtual void getObserverOffsetVector(
double& x,
double& y,
double& z )
const;
950 virtual void setObserverOffsetVector(
double x,
double y,
double z );
955 virtual void getCameraFromParentOffsetVector(
double& x,
double& y,
double& z )
const;
956 virtual void getCameraFromParentRotationOffset(
double& x,
double& y,
double& z,
double& w )
const;
959 virtual void getAttachedRotationOffset(
double& x,
double& y,
double& z,
double& w )
const;
960 virtual void setAttachedRotationOffset(
double x,
double y,
double z,
964 osg::Vec3& bvolExtents, osg::Vec3d& bvolCenter );
967 osg::Vec3& bvolExtents, osg::Vec3d& bvolCenter );
969 virtual void setLocation(
const osg::Vec3d& location,
bool suppress=
true );
971 virtual bool isMoving()
const;
972 virtual bool isRotating()
const;
974 virtual double computeNearClipDistance(
DtSceneObject* sceneObject );
975 virtual float computeLocalModelScalingAmount(
DtSceneObject* sceneObject );
977 virtual void calcScaledSpeed();
978 virtual bool getTerrainOrPropIntersection(
const osg::Vec3d& startPos,
979 const osg::Vec3d& endPos, osg::Vec3d& result )
const;
988 virtual void getPositionAndOrientation(
DtSceneObject& sceneObject, osg::Vec3d& position,
989 osg::Vec3d& orientToPosition, osg::Quat& orientation );
991 virtual void getPositionAndOrientation(
DtTerrainPatchObject& patchObject, osg::Vec3d& position,
992 osg::Vec3d& orientToPosition, osg::Quat& orientation );
994 virtual void getPositionAndOrientation(
DtOsgObserverObject& observerObject, osg::Vec3d& position,
995 osg::Vec3d& orientToPosition, osg::Quat& orientation );
998 virtual void getPositionFromSceneObject(
DtSceneObject& sceneObject, osg::Vec3d& position )
const;
1001 virtual void getPositionFromObserverObject(
DtOsgObserverObject& observerObject, osg::Vec3d& position )
const;
1005 virtual bool getPartPositionOriFromSceneObject(
DtSceneObject& sceneObject,
1006 int partId, osg::Vec3d& position, osg::Quat& ori )
const;
1010 virtual void force2D();
1013 virtual void dimensionChanged(
bool is2D );
1014 virtual void setIs2D(
bool is2D );
1017 virtual double calculate3DAltitude()
const;
1020 virtual void calculateAltitude();
1024 virtual void synchronizeLocation(
double x,
double y,
double z );
1028 virtual void synchronizeOrientation(
double x,
double y,
double z,
double w );
1045 virtual void calcHeightAboveTerrain(
bool force=
false);
1048 std::list<DtChannel*> findChannels();
1051 std::list<const DtChannel*> findChannels()
const;
1062 double frustumPixelHeight()
const;
1194 if(moving(Right)) myAdvance[0] += linearDistance;
1195 if(moving(Left)) myAdvance[0] -= linearDistance;
1196 if(moving(Forward)) myAdvance[1] += linearDistance;
1197 if(moving(Backward)) myAdvance[1] -= linearDistance;
1198 if(moving(Up)) myAdvance[2] += linearDistance;
1199 if(moving(Down)) myAdvance[2] -= linearDistance;
1211 myAdvance.set(0.0,0.0,0.0);
1212 myEuler.set(0.0,0.0,0.0);
1217 myAdvance.set(0.0,0.0,0.0);
1222 return myState == Stopped;
1227 return myState != Stopped;
1232 return (myState & d) != 0;
1237 myState = moving ? myState | d : myState & ~d;
1252 if(rotating(YawRight)) myEuler[0] -=
angle;
1253 if(rotating(YawLeft)) myEuler[0] +=
angle;
1254 if(rotating(PitchUp)) myEuler[1] +=
angle;
1255 if(rotating(PitchDown)) myEuler[1] -=
angle;
1256 if(rotating(RollRight)) myEuler[2] +=
angle;
1257 if(rotating(RollLeft)) myEuler[2] -=
angle;
1272 myEuler.set(0.0,0.0,0.0);
1277 return myState != Stopped;
1282 return (myState & d) != 0;
1287 myState = rotating ? myState | d : myState & ~d;
osg::Quat myCameraRotation
This is the camera (wrt the observer) as a quaternion.
Definition: DtOsgObserverObject.h:1353
osg::Vec3d myDragMove
Change in world position due to drag.
Definition: DtOsgObserverObject.h:1122
osg::Vec3d myMutableDownIntersect
Definition: DtOsgObserverObject.h:1424
Definition: DtOsgObserverObject.h:51
bool myHaveViewIntersect
Definition: DtOsgObserverObject.h:1420
void setRotating(Angle d, bool rotating)
Definition: DtOsgObserverObject.h:1285
ElementVisibilityMap myPendingVisibilityState
Definition: DtOsgObserverObject.h:1447
bool myAttachmentHas3DCockpit
Definition: DtOsgObserverObject.h:1394
osg::Vec3d myLevelObserverMimicUp
Definition: DtOsgObserverObject.h:1379
osg::Vec3d myAttachedWorldEast
Definition: DtOsgObserverObject.h:1361
int myOrientToTargetConstraint
This is an int rather than a bool because we increment/decrement it, much like a reference pointer...
Definition: DtOsgObserverObject.h:1410
osg::Vec3d myObserverUp
Definition: DtOsgObserverObject.h:1363
double myHeightOfTerrain
Definition: DtOsgObserverObject.h:1456
std::vector< DtUniqueID > myCurrentAttachments
Definition: DtOsgObserverObject.h:1083
double myStartGotoTerrainCenterTime
Definition: DtOsgObserverObject.h:1452
osg::Quat my2DTo3DCachedRotation
Definition: DtOsgObserverObject.h:1159
osg::Quat myLevelAttachedRotation
Definition: DtOsgObserverObject.h:1153
osg::Vec3d myAttachedOffsetUp
Definition: DtOsgObserverObject.h:1383
osg::Vec3d myAttachedOffsetRight
Definition: DtOsgObserverObject.h:1385
osg::Vec3d myOrbitAdvance
Definition: DtOsgObserverObject.h:1126
DtCoordinateConverter is the base class for 'local (cig) to geocentric' converters.
Definition: DtCoordinateConverter.h:25
osg::Vec3d myCameraRight
Definition: DtOsgObserverObject.h:1389
osg::Vec3d myCameraUp
Definition: DtOsgObserverObject.h:1387
double myHeightAboveTerrain
Definition: DtOsgObserverObject.h:1455
double myMaxLinearSpeed
Need just these, for terrain scaling.
Definition: DtOsgObserverObject.h:1323
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
double myLinearSpeed
Definition: DtOsgObserverObject.h:1319
This form is used for doing level ('flying carpet') style movements.
Definition: DtOsgObserverObject.h:1171
osg::Vec3d myLevelAttachedFront
Definition: DtOsgObserverObject.h:1376
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
bool myOrbitingLeft
Definition: DtOsgObserverObject.h:1313
osg::Vec3d myObserverPosition
Change in observer position this frame.
Definition: DtOsgObserverObject.h:1112
MotionState myFlashlightRotatingState
Definition: DtOsgObserverObject.h:1311
osg::Vec3d myLocationAttachPoint
Definition: DtOsgObserverObject.h:1470
osg::Vec3d my2DTo3DCachedObserverOffsetVector
Definition: DtOsgObserverObject.h:1158
osg::Vec3d myLevelAttachedPosition
Definition: DtOsgObserverObject.h:1119
double mySceneCenterOffsetX
Definition: DtOsgObserverObject.h:1328
void level()
Definition: DtOsgObserverObject.h:1270
bool mySpeedScaling
Definition: DtOsgObserverObject.h:1395
bool myViewResolutionDecreasingState
Definition: DtOsgObserverObject.h:1439
osg::Vec3d myLevelObserverFront
Definition: DtOsgObserverObject.h:1368
double myViewResolution
Definition: DtOsgObserverObject.h:1440
bool myLookingUp
Definition: DtOsgObserverObject.h:1337
osg::Vec3d myAttachedOffsetFront
Definition: DtOsgObserverObject.h:1384
osg::Matrixd myLevelObserverRotationMatrix
Definition: DtOsgObserverObject.h:1156
bool myOrbitingUp
Definition: DtOsgObserverObject.h:1315
static const double theCenterConstrainHeight
Definition: DtOsgObserverObject.h:1072
void applyMovement(double linearDistance)
Update the advance based upon the movement.
Definition: DtOsgObserverObject.h:1192
TerrainResult
Definition: DtOsgObserverObject.h:48
bool myOrbitingDown
Definition: DtOsgObserverObject.h:1316
bool myInternalSuppressConstrainToTerrain
suppress when jumping...
Definition: DtOsgObserverObject.h:1401
osg::Vec3d myObserverWorldUp
Definition: DtOsgObserverObject.h:1355
bool rotating(Angle d) const
Definition: DtOsgObserverObject.h:1280
osg::Vec3d myAttachedWorldNorth
Definition: DtOsgObserverObject.h:1360
osg::Vec3d myLevelObserverRight
Definition: DtOsgObserverObject.h:1369
bool myHaveTerrainPivot
Definition: DtOsgObserverObject.h:1418
const osg::Vec3d & advance() const
Get the current movement advance.
Definition: DtOsgObserverObject.h:1203
osg::Vec3d myAttachedFront
Definition: DtOsgObserverObject.h:1372
osg::Vec3d myLevelAttachedUp
Definition: DtOsgObserverObject.h:1375
osg::Quat myAttachedRotationOffset
My Attached rotation offset.
Definition: DtOsgObserverObject.h:1135
osg::Quat myPreviousAttachedObserverRotation
This is here so we can be in tether attach mode, detach, then attach to another entity and have a rea...
Definition: DtOsgObserverObject.h:1150
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
double mySpeedScaleHeightEquivalent
Definition: DtOsgObserverObject.h:1461
MotionState myAbsoluteLevelRotatingState
Definition: DtOsgObserverObject.h:1309
unsigned char myState
Definition: DtOsgObserverObject.h:1298
bool myLookingTiltLeft
Definition: DtOsgObserverObject.h:1340
double myLinearScaledSpeedGain
Definition: DtOsgObserverObject.h:1325
osg::Vec3d myObserverPositionVector
— Observer
Definition: DtOsgObserverObject.h:1094
bool myLookingLeft
Definition: DtOsgObserverObject.h:1336
osg::Vec3d myPreviousOffsetVector
Definition: DtOsgObserverObject.h:1433
bool myGotoTerrainCenterPending
Definition: DtOsgObserverObject.h:1450
A DtTerrainPatchObject contains the methods for loading a file as a terrain.
Definition: DtTerrainPatchObject.h:37
static const double theHeightAboveTerrainUpdatePeriod
Definition: DtOsgObserverObject.h:1067
bool myOrientToOnReset
Definition: DtOsgObserverObject.h:1412
bool myViewResolutionIncreasingState
note, this is only calculated if myConstrainToCenter is true
Definition: DtOsgObserverObject.h:1438
osg::Vec3d myObserverWorldEast
Definition: DtOsgObserverObject.h:1357
double mySceneCenterOffsetZ
Definition: DtOsgObserverObject.h:1330
MotionState myRotatingState
Definition: DtOsgObserverObject.h:1306
const osg::Vec3d & euler() const
Definition: DtOsgObserverObject.h:1260
osg::Matrixd myLevelObserverMimicRotationMatrix
Definition: DtOsgObserverObject.h:1155
double myAltitude
Definition: DtOsgObserverObject.h:1435
osg::Quat myAttachedRotation
Definition: DtOsgObserverObject.h:1152
osg::Vec3d myLevelObserverMimicFront
Definition: DtOsgObserverObject.h:1380
osg::Vec3d mySavedObserverOffsetVector
Used for switching between track mode and other attached modes.
Definition: DtOsgObserverObject.h:1109
osg::Vec3d myMasterPositionVector
Definition: DtOsgObserverObject.h:1096
bool myExternalSuppressConstrainToTerrain
suppress when told to
Definition: DtOsgObserverObject.h:1404
float myFlashlightAngle
Definition: DtOsgObserverObject.h:1466
bool myHideModelOnAttach
Definition: DtOsgObserverObject.h:1393
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
bool myMovedSinceLastHAT
Definition: DtOsgObserverObject.h:1465
bool myLocalModelScalingEnabled
Definition: DtOsgObserverObject.h:1102
bool moving() const
Definition: DtOsgObserverObject.h:1225
Contains makVrv::DtObserverObject class.
bool myChanged
Definition: DtOsgObserverObject.h:1087
void applyRotation(double angle)
Definition: DtOsgObserverObject.h:1250
int myPartAttachment
Definition: DtOsgObserverObject.h:1085
osg::Quat myFinalCameraRotation
This is the combined camera/observer orientation; this is what the DtOsgChannel uses to orient itself...
Definition: DtOsgObserverObject.h:1344
Direction
Definition: DtOsgObserverObject.h:1175
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:29
MotionState myAttachedObserverState
Definition: DtOsgObserverObject.h:1303
static const double theMaxTerrainRetryTime
Definition: DtOsgObserverObject.h:1069
MotionState myRotatingLevelState
Definition: DtOsgObserverObject.h:1307
osg::Quat myMasterRotation
Definition: DtOsgObserverObject.h:1139
osg::Vec3d myLastSpeedPositionVector
Definition: DtOsgObserverObject.h:1095
boost::unordered_map< DtElementID, bool > ElementVisibilityMap
Definition: DtOsgObserverObject.h:1446
osg::Vec3d myLevelObserverUp
Definition: DtOsgObserverObject.h:1367
DtUniqueID myPendingTerrainPatchId
Definition: DtOsgObserverObject.h:1453
bool rotating() const
Definition: DtOsgObserverObject.h:1275
DtObserverObject::AttachType my3DAttachType
Definition: DtOsgObserverObject.h:1391
double myHeightAboveTerrainTimer
Definition: DtOsgObserverObject.h:1396
double mySceneCenterOffsetY
Definition: DtOsgObserverObject.h:1329
osg::Vec3d myFinalCameraPositionVector
This is the combined camera/observer orientation; this is what the DtOsgChannel uses to orient itself...
Definition: DtOsgObserverObject.h:1348
bool myConstrainToCenter
This variable is true when the bounding radius is too big The reset view will be from far away trying...
Definition: DtOsgObserverObject.h:1166
double myCurvatureAdjustment
Definition: DtOsgObserverObject.h:1464
double myNextGotoTerrainCenterTime
Definition: DtOsgObserverObject.h:1451
static const double theMinViewResolution
Definition: DtOsgObserverObject.h:1075
Angle
Definition: DtOsgObserverObject.h:1240
MotionState myAbsoluteRotatingState
Definition: DtOsgObserverObject.h:1308
osg::Vec3d myObserverRotationalVelocityVector
Definition: DtOsgObserverObject.h:1100
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
osg::Vec3d myPreviousTerrainCenter
Definition: DtOsgObserverObject.h:1454
bool myMutableHaveDownIntersect
Definition: DtOsgObserverObject.h:1423
bool myForceOrientReset
Definition: DtOsgObserverObject.h:1416
void stop()
Definition: DtOsgObserverObject.h:1208
bool myOrientCameraToTargetConstraint
Definition: DtOsgObserverObject.h:1411
osg::Vec3d myObserverFront
Definition: DtOsgObserverObject.h:1364
osg::Vec3d myObserverWorldNorth
Definition: DtOsgObserverObject.h:1356
MotionState myLevelObserverState
Definition: DtOsgObserverObject.h:1302
bool myLookingTiltRight
Definition: DtOsgObserverObject.h:1339
osg::Vec3d myObserverOffsetVector
Current offset from an attachment, when attached.
Definition: DtOsgObserverObject.h:1106
double myLastTickTime
Definition: DtOsgObserverObject.h:1088
osg::Vec3d myPreviousPositionVector
for backing out if we hit a constraint
Definition: DtOsgObserverObject.h:1432
void clearAdvance()
Definition: DtOsgObserverObject.h:1215
bool moving(Direction d) const
Definition: DtOsgObserverObject.h:1230
osg::Vec3d myEuler
Definition: DtOsgObserverObject.h:1296
osg::Quat myCameraShakeRot
Definition: DtOsgObserverObject.h:1468
osg::Quat myFlashlightRotation
Flashlight orientation offset as a quaternion.
Definition: DtOsgObserverObject.h:1142
osg::Vec3d myViewIntersect
Definition: DtOsgObserverObject.h:1421
osg::Vec3d myLevelObserverMimicRight
Definition: DtOsgObserverObject.h:1381
bool mySyncPending
Definition: DtOsgObserverObject.h:1097
osg::Vec3d myAdvance
This, when scaled, will provide the direction that the observer should move in as the result of tick-...
Definition: DtOsgObserverObject.h:1295
bool myLookingRight
-— Camera
Definition: DtOsgObserverObject.h:1335
osg::Vec3d myAttachedUp
Definition: DtOsgObserverObject.h:1371
DT_DLL_vrfutil double mag(double x[3])
osg::Vec3d myCameraOffset
This is the camera offset wrt to observer.
Definition: DtOsgObserverObject.h:1351
osg::Quat mySavedObserverRotation
This is used for switching between track mode and other attach modes.
Definition: DtOsgObserverObject.h:1145
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:41
osg::Vec3d myLevelAttachedRight
Definition: DtOsgObserverObject.h:1377
double myRotationSpeed
Definition: DtOsgObserverObject.h:1320
double myLastAttachedBvolDiameter
Definition: DtOsgObserverObject.h:1428
bool mySyncSuppressed
Definition: DtOsgObserverObject.h:1098
void setMoving(Direction d, bool moving)
Definition: DtOsgObserverObject.h:1235
double myMinLinearSpeed
Definition: DtOsgObserverObject.h:1324
osg::Quat myObserverRotation
This is our ENU observer orientation as a quaternion.
Definition: DtOsgObserverObject.h:1138
Contains DLL export macros.
double myLastAttachBvolOffset
Definition: DtOsgObserverObject.h:1429
MotionState myObserverState
Definition: DtOsgObserverObject.h:1301
osg::Vec3d myObserverLinearVelocityVector
Definition: DtOsgObserverObject.h:1099
float myLocalModelScalingAmount
Definition: DtOsgObserverObject.h:1103
osg::Vec3d myAttachedWorldUp
Definition: DtOsgObserverObject.h:1359
bool stopped()
Definition: DtOsgObserverObject.h:1220
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::vector< DtUniqueID > mySecondaryAttachments
Definition: DtOsgObserverObject.h:1084
osg::Vec3d myAttachPosition
Definition: DtOsgObserverObject.h:1426
osg::Vec3d myOrientToPosition
Definition: DtOsgObserverObject.h:1124
bool myOrbitingRight
Definition: DtOsgObserverObject.h:1314
double myLastViewMagnification
Definition: DtOsgObserverObject.h:1444
osg::Vec3d myAttachedPosition
Definition: DtOsgObserverObject.h:1117
double myOrbitSpeed
Definition: DtOsgObserverObject.h:1318
static const double theMaxViewResolution
Definition: DtOsgObserverObject.h:1078
MotionState myLevelAttachedObserverState
Definition: DtOsgObserverObject.h:1304
bool myConstrainToTerrain
Definition: DtOsgObserverObject.h:1398
double myCurrentViewMagnification
Only used in 3D.
Definition: DtOsgObserverObject.h:1443
osg::Vec3d myObserverRight
Definition: DtOsgObserverObject.h:1365
bool myOrbiting
Definition: DtOsgObserverObject.h:1413
osg::Vec3d myCameraFront
Definition: DtOsgObserverObject.h:1388
bool myLookingDown
Definition: DtOsgObserverObject.h:1338
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtOsgObserverObject.h:43
osg::Vec3d myLevelObserverPosition
Gravity change in observer position this frame.
Definition: DtOsgObserverObject.h:1115
double myCurrentObserverDistance
largest of the distances currently in play in a given frame.
Definition: DtOsgObserverObject.h:1132
double mySpeedScaleSpeed
Definition: DtOsgObserverObject.h:1326
static const double theObserverBoundingSphere
Definition: DtOsgObserverObject.h:1066
osg::Vec3d myAttachedRight
Definition: DtOsgObserverObject.h:1373
osg::Vec3d & euler()
Definition: DtOsgObserverObject.h:1265
AttachType
Definition: DtObserverObject.h:36
MotionState()
Definition: DtOsgObserverObject.h:1186