VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTritonWaterClampingUpdater.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvTriton/vrvTriton.h>
12 
14 #include <matrix/vlVector.h>
15 #include <matrix/vlTaitBryan.h>
17 
18 namespace makVrv
19 {
20  class DtRk4MotionModel;
21  class DtTritonManager;
22  class DtObserverObject;
23 
31  {
32 
33  public:
34 
37 
40 
42  virtual bool clampToWater(DtTime tNow);
43 
45  virtual void setPaused(bool isPaused);
46 
48  virtual void setLOD(float lodDistance);
49 
51  virtual void setWaterlineOriginOffset(float offset);
52 
54  // changes or to 'restore' a sinking ship.
55  virtual void resetMotionModel( double seaLevel );
56 
57  protected:
59  virtual double altitudeAt(const DtVector& pos);
60 
62  virtual void addAltitude(DtVector& pos, float altitudeToAdd );
63 
65  virtual DtVector moveToAltitude(const DtVector& pos, double alt);
66 
71  virtual DtTaitBryan computeMotionOrientation();
72 
74  virtual bool isFullyImmersed();
75 
76  virtual void adjustSinkingSpeedScale( const DtVector& inputPosition,
77  const DtVector& currentPosition );
78 
81  virtual void smoothMotionAndSeaLevel(double percent,
82  DtVector& outputPos, DtTaitBryan &outputOri);
83 
84  //handle sea level change signals
85  virtual void slot_oceanLayerSeaLevelChanged(double sealevel);
86 
87  //helper method to set the water line alitude based on the offset and sealevel
88  virtual void updateWaterLineAltitude(double sealevel);
89 
90  //Initialize the extents of the motion model based on the scene object
91  virtual bool initializeExtents(double sealevel);
92 
93  // Using the cull type, determines if the entity should suppress its buoyancy
94  // calculation because it is out of view of any observer
95  virtual bool checkCull( DtObserverObject* const observer, const DtVector& eyeToShip ) const;
96 
97  virtual void slot_coordinateSystemChanged();
98 
99  protected:
100 
101  static const double theMotionTimeout;
102  static const double theSmoothTime;
103  static const double theFullyLodScaler;
104 
113  DtTaitBryan myLastMotionOri;
125 
126  };
127 }
DtVector mySeaLevelPosition
Definition: DtTritonWaterClampingUpdater.h:118
DtRk4MotionModel * myMotionModel
Definition: DtTritonWaterClampingUpdater.h:105
bool myCoordinateSystemChanged
Definition: DtTritonWaterClampingUpdater.h:124
Implementation of a buoyancy model using RK4 integration.
Definition: DtRk4MotionModel.h:31
float myWaterlineAltitude
Definition: DtTritonWaterClampingUpdater.h:116
bool myLodedOut
Definition: DtTritonWaterClampingUpdater.h:122
DtTime myLastTickTime
Definition: DtTritonWaterClampingUpdater.h:106
bool myIsPaused
Definition: DtTritonWaterClampingUpdater.h:108
Contains DLL export macros.
bool mySmallObject
Definition: DtTritonWaterClampingUpdater.h:110
DtVector myLastOutputPos
Definition: DtTritonWaterClampingUpdater.h:114
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
bool myExtentsSet
Definition: DtTritonWaterClampingUpdater.h:107
float mySeaLevelClampDistance
Definition: DtTritonWaterClampingUpdater.h:121
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:29
DtWaterClampingUpdater defines the interface for scene object updaters that clamp scene objects to dy...
Definition: DtWaterClampingUpdater.h:30
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
Contains makVrv::DtWaterClampingUpdater class.
DtTaitBryan myLastMotionOri
Definition: DtTritonWaterClampingUpdater.h:113
bool mySeaLevelPositionDirty
Definition: DtTritonWaterClampingUpdater.h:119
DtVector myLastMotionPos
Definition: DtTritonWaterClampingUpdater.h:112
double myLastSinkingDiff
Definition: DtTritonWaterClampingUpdater.h:109
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
DtSignalConnectionManager myConnections
Definition: DtTritonWaterClampingUpdater.h:123
DtTritonWaterClampingUpdater is a Triton-using re-implementation of the DtWaterClampingUpdater.
Definition: DtTritonWaterClampingUpdater.h:29
DtVector myLastAltitudeAdjustedPos
Definition: DtTritonWaterClampingUpdater.h:115
DtTritonManager & myTritonManager
Definition: DtTritonWaterClampingUpdater.h:111
static const double theMotionTimeout
Definition: DtTritonWaterClampingUpdater.h:101
Base class to provide boost signal/slot management.
Definition: DtTritonManager.h:48
DtVector myLastInputPosition
Definition: DtTritonWaterClampingUpdater.h:117
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
voidpf uLong offset
Definition: ioapi.h:42
DtTime myLastLODTickTime
Definition: DtTritonWaterClampingUpdater.h:120
static const double theSmoothTime
Definition: DtTritonWaterClampingUpdater.h:102
static const double theFullyLodScaler
Definition: DtTritonWaterClampingUpdater.h:103

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)