VR-Forces 4.2 Class Documentation
vrfUnderwaterAcoustics.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
13 #include <vlpi/disEnums.h>
14 #include <vlpi/NetStructs.h>
15 #include <map>
16 #include <vl/undwaAcousticSR.h>
17 
18 class DtVrfObject;
19 class DtActiveSonarPublisher;
20 class DtUnderwaterAcousticsPublisher;
21 class DtPropulsionNoisePublisher;
22 class DtActiveSonarStateRepository;
23 class DtActiveSonarBeamRepository;
24 class DtList;
25 
27 {
28 public:
31 
33  virtual ~DtVrfUnderwaterAcoustics();
34 
36  virtual void tick();
37 
43  virtual void setUsePropulsionNoisePublisher(bool);
44  virtual void setUseActiveSonarPublisher(bool);
46 
50  virtual void addActiveSonar(DtU8 id);
51 
53  virtual void removeActiveSonar(DtU8 id);
54 
56  virtual DtActiveSonarStateRepository* activeSonarSR(DtU8);
57 
59  virtual void setSystemName(DtU8, DtUnderwaterAcousticSystemName nameEnum);
60 
62  virtual DtUnderwaterAcousticSystemName systemName(DtU8);
63 
65  virtual void setSystemFunction(DtU8, DtUnderwaterAcousticFunction);
66 
68  virtual DtUnderwaterAcousticFunction systemFunction(DtU8);
69 
71  virtual void setMountLocation(DtU8, const DtVector &location);
72  virtual DtVector mountLocation(DtU8);
73 
75  virtual DtActiveSonarBeamRepository* addBeam(DtU8 systemId, DtU8 id);
76 
78  virtual void removeBeam(DtU8 systemId, DtU8 id);
79 
81  virtual void removeAllBeams(DtU8 systemId);
82 
84  virtual DtActiveSonarBeamRepository* beam(DtU8 systemId, DtU8 id);
85 
87  virtual int numBeams(DtU8);
88 
90  virtual DtList* beamList(DtU8 systemId);
91 
93 
96  virtual void setShaftData(const std::vector<DtUnderwaterAcousticShaftSpeed>&);
97  virtual std::vector<DtUnderwaterAcousticShaftSpeed> shaftData();
99 
103  std::map<DtU8, DtActiveSonarPublisher*>& activeSonars()
104  {
105  return myActiveSonars;
106  }
107 
108  DtUnderwaterAcousticsPublisher* underwaterAcoustics()
109  {
110  return myUnderwaterAcoustics;
111  }
112 
113  DtPropulsionNoisePublisher* propulsionNoise()
114  {
115  return myPropulsionNoise;
116  }
117 
118 protected:
120  virtual DtUnderwaterAcousticsPublisher* getOrCreateAndInitUnifiedPublisher();
121 
123  virtual DtPropulsionNoisePublisher* getOrCreateAndInitPropulsionNoisePublisher();
124 
126  virtual DtActiveSonarPublisher* createAndInitActiveSonarPublisher(DtU8 id);
127 
130  virtual bool publishersCanBeCreated();
131 
133  virtual bool unified() const;
134 
135 protected:
137 
139  std::map<DtU8, DtActiveSonarPublisher*> myActiveSonars;
140 
142  DtUnderwaterAcousticsPublisher* myUnderwaterAcoustics;
143 
145  DtPropulsionNoisePublisher* myPropulsionNoise;
146 
149  bool myWarned;
150  bool myChecked;
151 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)