13 #include <vlpi/disEnums.h>
14 #include <vlpi/NetStructs.h>
16 #include <vl/undwaAcousticSR.h>
19 class DtActiveSonarPublisher;
20 class DtUnderwaterAcousticsPublisher;
21 class DtPropulsionNoisePublisher;
22 class DtActiveSonarStateRepository;
23 class DtActiveSonarBeamRepository;
43 virtual void setUsePropulsionNoisePublisher(
bool);
44 virtual void setUseActiveSonarPublisher(
bool);
50 virtual void addActiveSonar(DtU8
id);
53 virtual void removeActiveSonar(DtU8
id);
56 virtual DtActiveSonarStateRepository* activeSonarSR(DtU8);
59 virtual void setSystemName(DtU8, DtUnderwaterAcousticSystemName nameEnum);
62 virtual DtUnderwaterAcousticSystemName systemName(DtU8);
65 virtual void setSystemFunction(DtU8, DtUnderwaterAcousticFunction);
68 virtual DtUnderwaterAcousticFunction systemFunction(DtU8);
71 virtual void setMountLocation(DtU8,
const DtVector &location);
72 virtual DtVector mountLocation(DtU8);
75 virtual DtActiveSonarBeamRepository* addBeam(DtU8 systemId, DtU8
id);
78 virtual void removeBeam(DtU8 systemId, DtU8
id);
81 virtual void removeAllBeams(DtU8 systemId);
84 virtual DtActiveSonarBeamRepository* beam(DtU8 systemId, DtU8
id);
87 virtual int numBeams(DtU8);
90 virtual DtList* beamList(DtU8 systemId);
96 virtual void setShaftData(
const std::vector<DtUnderwaterAcousticShaftSpeed>&);
97 virtual std::vector<DtUnderwaterAcousticShaftSpeed> shaftData();
103 std::map<DtU8, DtActiveSonarPublisher*>& activeSonars()
105 return myActiveSonars;
108 DtUnderwaterAcousticsPublisher* underwaterAcoustics()
110 return myUnderwaterAcoustics;
113 DtPropulsionNoisePublisher* propulsionNoise()
115 return myPropulsionNoise;
120 virtual DtUnderwaterAcousticsPublisher* getOrCreateAndInitUnifiedPublisher();
123 virtual DtPropulsionNoisePublisher* getOrCreateAndInitPropulsionNoisePublisher();
126 virtual DtActiveSonarPublisher* createAndInitActiveSonarPublisher(DtU8
id);
130 virtual bool publishersCanBeCreated();
133 virtual bool unified()
const;