open-dis-cpp
AngleDeception.h
1 #pragma once
2 
3 #include <dis7/utils/DataStream.h>
4 #include <dis7/opendis7_export.h>
5 
6 
7 namespace DIS
8 {
9 // The Angle Deception attribute record may be used to communicate discrete values that are associated with angle deception jamming that cannot be referenced to an emitter mode. The values provided in the record records (provided in the associated Electromagnetic Emission PDU). (The victim radar beams are those that are targeted by the jammer.) Section 6.2.12.2
10 
11 // Copyright (c) 2007-2009, MOVES Institute, Naval Postgraduate School. All rights reserved.
12 //
13 // @author DMcG, jkg
14 
15 class OPENDIS7_EXPORT AngleDeception
16 {
17 protected:
18  unsigned int _recordType;
19 
20  unsigned short _recordLength;
21 
22  unsigned short _padding;
23 
24  unsigned char _emitterNumber;
25 
26  unsigned char _beamNumber;
27 
28  unsigned char _stateIndicator;
29 
30  unsigned int _padding2;
31 
32  float _azimuthOffset;
33 
34  float _azimuthWidth;
35 
36  float _azimuthPullRate;
37 
38  float _azimuthPullAcceleration;
39 
40  float _elevationOffset;
41 
42  float _elevationWidth;
43 
44  float _elevationPullRate;
45 
46  float _elevationPullAcceleration;
47 
48  unsigned int _padding3;
49 
50 
51  public:
53  virtual ~AngleDeception();
54 
55  virtual void marshal(DataStream& dataStream) const;
56  virtual void unmarshal(DataStream& dataStream);
57 
58  unsigned int getRecordType() const;
59  void setRecordType(unsigned int pX);
60 
61  unsigned short getRecordLength() const;
62  void setRecordLength(unsigned short pX);
63 
64  unsigned short getPadding() const;
65  void setPadding(unsigned short pX);
66 
67  unsigned char getEmitterNumber() const;
68  void setEmitterNumber(unsigned char pX);
69 
70  unsigned char getBeamNumber() const;
71  void setBeamNumber(unsigned char pX);
72 
73  unsigned char getStateIndicator() const;
74  void setStateIndicator(unsigned char pX);
75 
76  unsigned int getPadding2() const;
77  void setPadding2(unsigned int pX);
78 
79  float getAzimuthOffset() const;
80  void setAzimuthOffset(float pX);
81 
82  float getAzimuthWidth() const;
83  void setAzimuthWidth(float pX);
84 
85  float getAzimuthPullRate() const;
86  void setAzimuthPullRate(float pX);
87 
88  float getAzimuthPullAcceleration() const;
89  void setAzimuthPullAcceleration(float pX);
90 
91  float getElevationOffset() const;
92  void setElevationOffset(float pX);
93 
94  float getElevationWidth() const;
95  void setElevationWidth(float pX);
96 
97  float getElevationPullRate() const;
98  void setElevationPullRate(float pX);
99 
100  float getElevationPullAcceleration() const;
101  void setElevationPullAcceleration(float pX);
102 
103  unsigned int getPadding3() const;
104  void setPadding3(unsigned int pX);
105 
106 
107 virtual int getMarshalledSize() const;
108 
109  bool operator ==(const AngleDeception& rhs) const;
110 };
111 }
112 
113 // Copyright (c) 1995-2009 held by the author(s). All rights reserved.
114 // Redistribution and use in source and binary forms, with or without
115 // modification, are permitted provided that the following conditions
116 // are met:
117 //
118 // * Redistributions of source code must retain the above copyright
119 // notice, this list of conditions and the following disclaimer.
120 // * Redistributions in binary form must reproduce the above copyright
121 // notice, this list of conditions and the following disclaimer
122 // in the documentation and/or other materials provided with the
123 // distribution.
124 // * Neither the names of the Naval Postgraduate School (NPS)
125 // Modeling Virtual Environments and Simulation (MOVES) Institute
126 // (http://www.nps.edu and http://www.MovesInstitute.org)
127 // nor the names of its contributors may be used to endorse or
128 // promote products derived from this software without specific
129 // prior written permission.
130 //
131 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
132 // AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
133 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
134 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
135 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
136 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
137 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
138 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
139 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
140 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
141 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
142 // POSSIBILITY OF SUCH DAMAGE.
Symbolic names as defined in 5.1.4.
Definition: AcknowledgePdu.h:8
a class to support managing a network buffer.
Definition: DataStream.h:28
Definition: AngleDeception.h:15