VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiWaterCraftEntity.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2017 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 
14 #include <vrvCigi/DtCigiEntity.h>
15 
17 #include <vrvUtil/signalslib.h>
18 
19 #include <boost/signals/connection.hpp>
20 
21 
23 
24 #include <matrix/geodeticCoord.h>
25 #include <matrix/vlTaitBryan.h>
26 
27 namespace makVrv
28 {
29  class DtSurfaceClampingUpdaterAgent;
30  class DtWaterClampingUpdaterAgent;
31  class DtCigiWakeEntity;
32 
37  {
38  public:
41  DtAgentManagerInterface& sceneInterface, int entityId, int entityType);
42 
44  virtual ~DtCigiWatercraftEntity();
45 
48  virtual void init();
49 
52  virtual void uninit();
53 
56  virtual void restart();
57 
61  virtual void setPosition(const DtGeodeticCoord& pos, bool force=false);
62 
66  virtual void setOrientation(const DtTaitBryan& orientation, bool force=false);
67 
68  // Override to determine moving state when attached to a wake
69  virtual void setLinearRate(const DtVector& rate, bool useWorldCoordinates, bool force=false);
70 
72  virtual void setWakeEntity( DtCigiWakeEntity* wakeEntity );
73 
75  virtual void startEmbarked();
76 
78  virtual void endEmbarked();
79 
81  virtual void startSinking();
82 
84  virtual void stopSinking();
85 
87  virtual bool isSinking() const;
88 
91  virtual void setWaterlineOriginOffset( float offset );
92 
94  virtual void setIsAmphibious( bool isAmphibious );
100  virtual bool isAmphibious() const;
102 
103  virtual void setBuoyancyEnabled( bool enable );
104 
111  virtual void setBuoyancyLODDistance( double distance );
112 
113  protected:
114 
116  virtual void startDeadReckoning();
117 
119  virtual void endDeadReckoning();
120 
122  virtual void startBuoyancy();
123 
125  virtual void endBuoyancy();
126 
127  // Called when the entity display settings default LOD changes and we are
128  // using the default. Unlike setBuoyancyLODDistance, this does NOT disconnect
129  // us from that signal
130  virtual void slot_buoyancyDefaultLODDistanceChanged( float distance );
131 
135  virtual void slot_buoyancyMinimumCullDistanceChanged( float distance );
136 
140  virtual void slot_buoyancyCullTypeChanged(
142 
143  protected:
144  DtSurfaceClampingUpdaterAgent* mySurfaceClampingUpdaterAgent;
145  DtWaterClampingUpdaterAgent* myWaterClampingUpdaterAgent;
150 
151  // The connection to the entity display settings default LOD distance is handled
152  // separately, so it can be disconnected if setBuoyancyLODDistance() is called from the API
153  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
154 
161 
162  // True if setWaterlineOriginOffset has been called (only restore on restart if this is true)
164 
165  // True if set BuoyancyLODDistance has been called
167  };
168 
173 }
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
bool myBuoyancyCullType
Definition: DtCigiWaterCraftEntity.h:157
Contains makVrv::DtCigiEntity class.
boost::signalslib::connection myBuoyancyLODDistanceChangedConnection
Definition: DtCigiWaterCraftEntity.h:153
bool myIsSinking
Definition: DtCigiWaterCraftEntity.h:147
DtCigiWakeEntity * myWakeEntity
Definition: DtCigiWaterCraftEntity.h:146
float myWaterlineOriginOffset
Definition: DtCigiWaterCraftEntity.h:160
Contains DLL export macros.
A DtCigiWatercraftEntity is a CIGI entity that manages buoyancy and the the parenting of wake entitie...
Definition: DtCigiWaterCraftEntity.h:36
A DtCigiWakeEntity is a CIGI entity that loads an wake model.
Definition: DtCigiWakeEntity.h:33
bool myIsMoving
Definition: DtCigiWaterCraftEntity.h:148
float myBuoyancyMinimumCullDistance
Definition: DtCigiWaterCraftEntity.h:159
bool myIsBuoyant
Definition: DtCigiWaterCraftEntity.h:156
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtCigiWaterCraftEntity.h:144
DtSignalConnectionManager myConnections
Definition: DtCigiWaterCraftEntity.h:149
BuoyancyCullType
Definition: DtEntitySettingsRecord.h:64
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
bool myIsAmphibious
Definition: DtCigiWaterCraftEntity.h:155
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtCigiWaterCraftEntity.h:145
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:57
bool myWaterlineOriginOverridden
Definition: DtCigiWaterCraftEntity.h:163
Base class to provide boost signal/slot management.
float myBuoyancyLodRange
Definition: DtCigiWaterCraftEntity.h:158
A DtCigiEntity is a base CIGI entity that loads an articulated model.
Definition: DtCigiEntity.h:32
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
DtCigiObjectCreatorTemplate< DtCigiWatercraftEntity > DtCigiWatercraftEntityCreator
Creator that will be registered with the CIGI object factory to create this class.
Definition: DtCigiWaterCraftEntity.h:172
bool myBuoyancyLODDistanceOverridden
Definition: DtCigiWaterCraftEntity.h:166
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
voidpf uLong offset
Definition: ioapi.h:42
Definition: DtCigiBaseEntity.h:434
Contains the DtEntitySettingsRecord class declaration.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)