VR-Exchange 2.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
emitterBeamData.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <portal/dllExport.h>
13 #include <portal/addAttribute.h>
14 
15 #include <vlutil/vlMachineTypes.h>
16 #include <vlutil/vlString.h>
17 
18 #include <ostream>
19 #include <vector>
20 #include <list>
21 
22 //#include <portal/dllExport.h>
23 //#include <portal/addAttribute.h>
24 //#include <iosfwd>
25 
26 namespace MAKVrExchange
27 {
28 
37  {
38  public:
39 
44  typedef enum
45  {
46  RegularBeam = -1,
47  RadarBeam = 1,
48  TrackBeam = 1,
49  JamBeam = 0
50  } BeamType;
51 
52  public:
53 
55  DtEmitterBeamData( const BeamType beamType = RegularBeam );
56 
58  DtEmitterBeamData( const DtEmitterBeamData& original );
59 
61  virtual ~DtEmitterBeamData();
62 
64  virtual DtEmitterBeamData& operator = ( const DtEmitterBeamData& original );
65 
68 
69  virtual bool operator != ( const DtEmitterBeamData& rightOperand ) const;
70  virtual bool operator == ( const DtEmitterBeamData& rightOperand ) const;
71 
73 
75  virtual std::ostream& printDataToStream( std::ostream& stream ) const;
76 
81 
84  DtDEC_ATTRIBUTE( DtString, Identifier, identifier );
85 
86  DtDEC_ATTRIBUTE( DtU32, BeamType, beamType ); //required!
87 
88  DtDEC_ATTRIBUTE( DtU16, BeamParameterIndex, beamParameterIndex );
89 
90  /* The next 4 attributes constitute the Scan Volume */
91 
94  DtDEC_ATTRIBUTE( DtFloat32, BeamAzimuthCenter, beamAzimuthCenter );
95 
98  DtDEC_ATTRIBUTE( DtFloat32, BeamAzimuthSweep, beamAzimuthSweep );
99 
102  DtDEC_ATTRIBUTE( DtFloat32, BeamElevationCenter, beamElevationCenter );
103 
106  DtDEC_ATTRIBUTE( DtFloat32, BeamElevationSweep, beamElevationSweep );
107 
109  DtDEC_ATTRIBUTE( DtU32, BeamFunctionCode, beamFunctionCode );
110 
113  DtDEC_ATTRIBUTE( DtU8, BeamIdentifier, beamIdentifier );
114 
116  DtDEC_ATTRIBUTE( DtFloat32, EffectiveRadiatedPower, effectiveRadiatedPower );
117 
119  DtDEC_ATTRIBUTE( DtFloat32, EmissionFrequency, emissionFrequency );
120 
123  DtDEC_ATTRIBUTE( DtString, EmitterSystemIdentifier, emitterSystemIdentifier );
124 
130  DtDEC_ATTRIBUTE( DtString, EventIdentifier, eventIdentifier );
131 
133  DtDEC_ATTRIBUTE( DtFloat32, FrequencyRange, frequencyRange );
134 
136  DtDEC_ATTRIBUTE( DtFloat32, PulseRepetitionFrequency, pulseRepetitionFrequency );
137 
139  DtDEC_ATTRIBUTE( DtFloat32, PulseWidth, pulseWidth );
140 
142  DtDEC_ATTRIBUTE( DtFloat32, SweepSynch, sweepSynch );
143 
144  /* The following 2 attributes are for Radar Beam Objects only. Should only be
145  set if myBeamType = DtRadarBeam */
146 
149  DtDEC_ATTRIBUTE( bool, HighDensityTrack, highDensityTrack );
150 
153  DtDEC_ATTRIBUTE( std::vector<DtString>, TrackObjectIdentifiers, trackObjectIdentifiers );
154 
155  /* The following 3 attributes are for Jammer Beam Objects only. Should only be
156  set if myBeamType = DtJamBeam */
157 
160  DtDEC_ATTRIBUTE_OVERLOAD( bool, HighDensityJam, highDensityJam, HighDensityTrack );
161 
163  DtDEC_ATTRIBUTE( DtU32, JammingModeSequence, jammingModeSequence );
164 
167  DtDEC_ATTRIBUTE_OVERLOAD( std::vector<DtString>, JammedObjectIdentifiers,
168  jammedObjectIdentifiers, TrackObjectIdentifiers );
169 
171 
172  };
173 
174 
175  typedef std::list<DtEmitterBeamData> DtEmitterBeamList;
176 
177  DT_DLL_LIBPORTAL std::ostream& operator << ( std::ostream& stream, const DtEmitterBeamData& data );
178  DT_DLL_LIBPORTAL std::ostream& operator << ( std::ostream& stream, const DtEmitterBeamList& container );
179 
180 }
181 
182 void DtPrintAttribute( std::ostream& stream, const char* label,
184 
#define DT_DLL_LIBPORTAL
Definition: include/portal/dllExport.h:20
#define DtDEC_ATTRIBUTE_OVERLOAD(Type, Name, name, Attribute)
A Macro to define an overload accessor and mutator for an existing attribute.
Definition: addAttribute.h:92
#define DtDEC_ATTRIBUTE(T, N, n)
A Macro to define an attribute; as well as make an accessor and mutator for that attribute.
Definition: addAttribute.h:49
void DtPrintAttribute(std::ostream &stream, const char *label, MAKVrExchange::DtEmitterBeamData::BeamType value)
DT_DLL_LIBPORTAL const char * DtEnumString(MAKVrExchange::DtEmitterBeamData::BeamType value)
BeamType
Indicates the type of data contained within DtEmitterBeamData DtEmitterBeamData contains the attribut...
Definition: emitterBeamData.h:44
DT_DLL_LIBPORTAL std::ostream & operator<<(std::ostream &stream, const DtActiveSonarBeamData &data)
std::list< DtEmitterBeamData > DtEmitterBeamList
Definition: emitterBeamData.h:175
Contains the DtDEC_ATTRIBUTE macros.
Represents Emitter Beam Objects.
Definition: emitterBeamData.h:36

Document ID: Generated on Tue Aug 16 16:15:26 EDT 2022 from SVN revision 245901
Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)