VR-Forces 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;
147 
149 
150  // The connection to the entity display settings default LOD distance is handled
151  // separately, so it can be disconnected if setBuoyancyLODDistance() is called from the API
152  boost::signalslib::connection myBuoyancyLODDistanceChangedConnection;
153 
157 
159 
165 
166  // True if setWaterlineOriginOffset has been called (only restore on restart if this is true)
168 
169  // True if set BuoyancyLODDistance has been called
171  };
172 
177 }
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
bool myBuoyancyCullType
Definition: DtCigiWaterCraftEntity.h:164
Contains makVrv::DtCigiEntity class.
boost::signalslib::connection myBuoyancyLODDistanceChangedConnection
Definition: DtCigiWaterCraftEntity.h:152
bool myIsSinking
Definition: DtCigiWaterCraftEntity.h:160
DtCigiWakeEntity * myWakeEntity
Definition: DtCigiWaterCraftEntity.h:146
float myWaterlineOriginOffset
Definition: DtCigiWaterCraftEntity.h:156
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:161
float myBuoyancyMinimumCullDistance
Definition: DtCigiWaterCraftEntity.h:155
bool myIsBuoyant
Definition: DtCigiWaterCraftEntity.h:163
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
Definition: DtCigiWaterCraftEntity.h:144
DtSignalConnectionManager myConnections
Definition: DtCigiWaterCraftEntity.h:148
BuoyancyCullType
Definition: DtEntitySettingsRecord.h:28
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:162
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
Definition: DtCigiWaterCraftEntity.h:145
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myGlobalBuoyancyEnabled
Definition: DtCigiWaterCraftEntity.h:158
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:167
Base class to provide boost signal/slot management.
float myBuoyancyLodRange
Definition: DtCigiWaterCraftEntity.h:154
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:176
bool myBuoyancyLODDistanceOverridden
Definition: DtCigiWaterCraftEntity.h:170
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
voidpf uLong offset
Definition: ioapi.h:42
Definition: DtCigiBaseEntity.h:437
Contains the DtEntitySettingsRecord class declaration.

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)