VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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/underwaterAcousticsStateRepository.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 };
std::map< DtU8, DtActiveSonarPublisher * > & activeSonars()
{@ Accessors.
Definition: vrfUnderwaterAcoustics.h:103
bool myChecked
Definition: vrfUnderwaterAcoustics.h:150
Definition: vrfUnderwaterAcoustics.h:26
std::map< DtU8, DtActiveSonarPublisher * > myActiveSonars
If only using sonar these are the list of sonar publishers by system id.
Definition: vrfUnderwaterAcoustics.h:139
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtUnderwaterAcousticsPublisher * underwaterAcoustics()
Definition: vrfUnderwaterAcoustics.h:108
DtUnderwaterAcousticsPublisher * myUnderwaterAcoustics
If publishing both sonar and propulsion noise, use this publisher.
Definition: vrfUnderwaterAcoustics.h:142
DtPropulsionNoisePublisher * propulsionNoise()
Definition: vrfUnderwaterAcoustics.h:113
bool myWarned
Definition: vrfUnderwaterAcoustics.h:149
DtVrfObject * myOwner
Definition: vrfUnderwaterAcoustics.h:136
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtPropulsionNoisePublisher * myPropulsionNoise
If only publishing propulsion noise.
Definition: vrfUnderwaterAcoustics.h:145
bool myUseActiveSonarPublisher
Definition: vrfUnderwaterAcoustics.h:148
bool myUsePropulsionNoisePublisher
Definition: vrfUnderwaterAcoustics.h:147

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)