VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
subSurfaceEntitySimpleActuator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 #pragma once
11 
13 
14 
33 {
34 
35 public:
36 
39  DtLocalObject* owner,
40  DtSimulationServices* simManager,
41  DtComponentDescriptor* desc = 0,
42  DtReaderWriterRegistry* parentRegistry = 0);
43 
49 
52  virtual bool init();
53 
56  virtual const char* type() const;
57 
58 
62  static DtSimComponent * creator(const DtString& name,
63  DtLocalObject* owner,
64  DtSimulationServices* simManager,
65  DtComponentDescriptor* desc = 0,
66  DtReaderWriterRegistry* parentRegistry = 0);
67 
68 protected:
69 
72  virtual bool createPorts();
73 
75  virtual void tick();
76 
79  virtual double updateVerticalSpeed(const double dt);
80 
89  virtual void adjustAttitude(const double newSpeed, const DtVector& position,
90  const double yawRate,
91  double &roll, double &pitch, double &altitude);
92 
107  virtual double altitudeFromDepth(double depth, double surfaceAltitude);
108  virtual double depthFromAltitude(double altitude, double surfaceAltitude)
109  {
110  return altitudeFromDepth(altitude, surfaceAltitude);
111  }
112 
113 protected:
114 
117 
120  (const DtSubSurfaceEntitySimpleActuator & orig);
121 
123  const DtSubSurfaceEntitySimpleActuator & operator=
124  (const DtSubSurfaceEntitySimpleActuator & orig);
125 
126 
127 protected:
128 
131 
135 
139 
141 
142  double myDepth;
143 
148 
150 };
151 
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
Provides a simple actuator model for surface vessels.
Definition: subSurfaceEntitySimpleActuator.h:31
virtual double updateVerticalSpeed(const double dT)
Update the vertical speed. This is primarily for derived subsurface entities; for the surface entitie...
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
Definition: readerWriterRegistry.h:39
virtual void adjustAttitude(const double newSpeed, const DtVector &position, const double yawRate, double &roll, double &pitch, double &altitudeAdj)
Adjusts the attitude of the entity for improved appearance. Makes the entity roll in turns...
virtual double depthFromAltitude(double altitude, double surfaceAltitude)
Definition: subSurfaceEntitySimpleActuator.h:108
virtual bool init()
Calls down to the base class, null checks entity(), calls createPSR(), and then caches the entity's s...
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
virtual const char * type() const
Returns a string identifies the class type of component. Type values are defined in compTypes...
double myAltitudeRate
The negative of depthRate on the input port, or 0 if the port isn't active.
Definition: subSurfaceEntitySimpleActuator.h:146
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
DtAnalogInputPort * myClampDepthPort
Final desired depth that entity is trying to change to. This prevents overshoot if dT is unexpectedly...
Definition: subSurfaceEntitySimpleActuator.h:138
double myDepth
Computed and cached within a tick, to avoid recomputation.
Definition: subSurfaceEntitySimpleActuator.h:142
Contains class declarations for DtAnalogInputPort, DtAnalogOutputPort, and DtAnalogPortData.
Definition: analogIOPort.h:25
virtual void tick()
Calculates new kinematic state.
Provides a simple, kinematics-based model for surface vessels.
Definition: surfaceEntitySimpleActuator.h:42
virtual bool createPorts()
Creates myAccelerationPort, myClampSpeedPort, myTurnRadiusPort, and myFinalHeadingPort and adds them ...
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
DtAnalogInputPort * myDepthRatePort
Desired depth change rate, in m/s. Note that increasing depth is decreasing altitude.
Definition: subSurfaceEntitySimpleActuator.h:134

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)