KDIS  2-8-x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GED_BasicGroundCombatSoldier.h
Go to the documentation of this file.
1 /*********************************************************************
2 Copyright 2013 Karl Jones
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7 
8 1. Redistributions of source code must retain the above copyright notice, this
9  list of conditions and the following disclaimer.
10 2. Redistributions in binary form must reproduce the above copyright notice,
11  this list of conditions and the following disclaimer in the documentation
12  and/or other materials provided with the distribution.
13 
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 
25 For Further Information Please Contact me at
26 Karljj1@yahoo.com
27 http://p.sf.net/kdis/UserGuide
28 *********************************************************************/
29 
30 /********************************************************************
31  class: GED_BasicGroundCombatSoldier
32  created: 07:06:2009
33  author: Karl Jones
34 
35  purpose: Contains entity state information about an individual entity
36  within a group of basic ground combat soldiers.
37  size: 160 bits / 20 octets
38 *********************************************************************/
39 
40 #pragma once
41 
42 #include "./GED.h"
43 #include "./EntityAppearance.h"
44 
45 namespace KDIS {
46 namespace DATA_TYPE {
47 
49 {
50 protected:
51 
53 
54  KINT16 m_i16Offsets[3];
55 
57 
58  KINT8 m_i8Ori[3];
59 
61 
63 
65 
67 
69 
70 public:
71 
72  static const KUINT16 GED_BASIC_GROUND_COMBAT_SOLDIER_SIZE = 20;
73 
75 
77 
78  GED_BasicGroundCombatSoldier( KUINT16 ID, KINT16 XOffset, KINT16 YOffset, KINT16 ZOffset, const EntityAppearance & EA,
79  KINT8 Psi, KINT8 Theta, KINT8 Phi, KINT8 Speed, KINT8 HeadAzimuth, KINT8 HeadElevation,
80  KINT8 HeadScanRate, KINT8 HeadElevationRate );
81 
83 
84  //************************************
85  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetGroupedEntityCategory
86  //!Description: Identifies the derived GED class.
87  //! Not part of the DIS PDU.
88  //************************************
89  virtual KDIS::DATA_TYPE::ENUMS::GroupedEntityCategory GetGroupedEntityCategory() const;
90 
91  //************************************
92  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetLength
93  //!Description: Returns size of the GED in octets.
94  //! Not part of the DIS PDU.
95  //************************************
96  virtual KUINT8 GetLength() const;
97 
98  //************************************
99  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityID
100  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetEntityID
101  //!Description: Entity identifier unique within the group.
102  //! The Site Identifier and Application Identifiers shall be the same as
103  //! those designated in the Group Entity ID field.
104  // Parameter: KUINT16 ID, void
105  //************************************
106  void SetEntityID( KUINT16 ID );
107  KUINT16 GetEntityID() const;
108 
109  //************************************
110  // GetEntityLocationZOffset
111  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityLocation
112  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityLocationXOffset
113  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityLocationYOffset
114  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityLocationZOffset
115  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetEntityLocationXOffset
116  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetEntityLocationYOffset
117  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetEntityLocationZOffset
118  //!Description: Location of the grouped entity specified by a set of three offsets.
119  //! Determined by the difference, in meters, of the grouped entity from the Group Reference Point.
120  // Parameter: KINT16, void
121  //************************************
122  void SetEntityLocation( KINT16 XOffset, KINT16 YOffset, KINT16 ZOffset );
123  void SetEntityLocation( KINT16 Offsets[3] );
124  void SetEntityLocationXOffset( KINT16 X );
125  void SetEntityLocationYOffset( KINT16 Y );
126  void SetEntityLocationZOffset( KINT16 Z );
127  KINT16 GetEntityLocationXOffset() const;
128  KINT16 GetEntityLocationYOffset() const;
129  KINT16 GetEntityLocationZOffset() const;
130 
131  //************************************
132  // FullName: KDIS::PDU::GED_BasicGroundCombatSoldier::SetEntityAppearance
133  // KDIS::PDU::GED_BasicGroundCombatSoldier::GetEntityAppearance
134  //!Description: Entity Appearance bit field accessors/mutator
135  // Parameter: const EntityAppearance & EA, void
136  //************************************
137  void SetEntityAppearance( const EntityAppearance & EA );
138  const EntityAppearance & GetEntityAppearance() const;
139  EntityAppearance & GetEntityAppearance();
140 
141  //************************************
142  // GetEntityOrientationPhi
143  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityOrientation
144  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityOrientationPsi
145  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityOrientationTheta
146  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetEntityOrientationPhi
147  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetEntityOrientationPsi
148  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetEntityOrientationTheta
149  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetEntityOrientationPhi
150  //!Description: Entity Orientation in euler angles, psi, theta and phi, in 25 milliradian increments.
151  // Parameter: KINT8, void
152  //************************************
153  void SetEntityOrientation( KINT8 Psi, KINT8 Theta, KINT8 Phi );
154  void SetEntityOrientation( KINT8 Ori[3] );
155  void SetEntityOrientationPsi( KINT8 P );
156  void SetEntityOrientationTheta( KINT8 T );
157  void SetEntityOrientationPhi( KINT8 P );
158  KINT8 GetEntityOrientationPsi() const;
159  KINT8 GetEntityOrientationTheta() const;
160  KINT8 GetEntityOrientationPhi() const;
161 
162  //************************************
163  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetSpeed
164  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetSpeed
165  //!Description: Signed magnitude value of the entity�s absolute velocity vector.
166  //! A negative value shall indicate that the entity is moving backwards.
167  //! Measured in Meters Per Secound (m/s).
168  // Parameter: KINT8 S, void
169  //************************************
170  void SetSpeed( KINT8 S );
171  KINT8 GetSpeed() const;
172 
173  //************************************
174  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetHeadAzimuth
175  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetHeadAzimuth
176  //!Description: Head azimuth specified in 25 milliradian increments.
177  // Parameter: KINT8 T, void
178  //************************************
179  void SetHeadAzimuth( KINT8 H );
180  KINT8 GetHeadAzimuth() const;
181 
182  //************************************
183  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetHeadElevation
184  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetHeadElevation
185  //!Description: Head elevation specified in 25 milliradian increments.
186  // Parameter: KINT8 G, void
187  //************************************
188  void SetHeadElevation( KINT8 H );
189  KINT8 GetHeadElevation() const;
190 
191  //************************************
192  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetHeadScanRate
193  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetHeadScanRate
194  //!Description: Head scan rate specified in 25 milliradian per secound increments.
195  // Parameter: KINT8 T, void
196  //************************************
197  void SetHeadScanRate( KINT8 T );
198  KINT8 GetHeadScanRate() const;
199 
200  //************************************
201  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::SetHeadElevationRate
202  // KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetHeadElevationRate
203  //!Description: Head Elevation Rate specified in 25 milliradian per secound increments.
204  // Parameter: KINT8 H, void
205  //************************************
206  void SetHeadElevationRate( KINT8 H );
207  KINT8 GetHeadElevationRate() const;
208 
209  //************************************
210  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::GetAsString
211  //!Description: Returns a string representation
212  //************************************
213  virtual KString GetAsString() const;
214 
215  //************************************
216  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::Decode
217  //!Description: Convert From Network Data.
218  // Parameter: KDataStream & stream
219  //************************************
220  virtual void Decode( KDataStream & stream ) throw( KException );
221 
222  //************************************
223  // FullName: KDIS::DATA_TYPE::GED_BasicGroundCombatSoldier::Encode
224  //!Description: Convert To Network Data.
225  // Parameter: KDataStream & stream
226  //************************************
227  virtual KDataStream Encode() const;
228  virtual void Encode( KDataStream & stream ) const;
229 
230  KBOOL operator == ( const GED_BasicGroundCombatSoldier & Value ) const;
231  KBOOL operator != ( const GED_BasicGroundCombatSoldier & Value ) const;
232 };
233 
234 } // END namespace DATA_TYPES
235 } // END namespace KDIS
236 
Definition: GED_BasicGroundCombatSoldier.h:48
short int KINT16
Definition: KDefines.h:102
unsigned short int KUINT16
Definition: KDefines.h:101
KUINT16 m_ui16EntityID
Definition: GED_BasicGroundCombatSoldier.h:52
KINT8 m_i8HdAz
Definition: GED_BasicGroundCombatSoldier.h:62
EntityAppearance m_EA
Definition: GED_BasicGroundCombatSoldier.h:56
KINT8 m_i8Spd
Definition: GED_BasicGroundCombatSoldier.h:60
Definition: KDefines.h:182
Definition: KDataStream.h:48
Definition: GED.h:59
Definition: EntityAppearance.h:58
char KINT8
Definition: KDefines.h:100
bool KBOOL
Definition: KDefines.h:119
std::string KString
Definition: KDefines.h:116
KINT8 m_i8HdScanRt
Definition: GED_BasicGroundCombatSoldier.h:66
unsigned char KUINT8
Definition: KDefines.h:99
#define KDIS_EXPORT
Definition: KDefines.h:82
KINT8 m_i8HdElvRt
Definition: GED_BasicGroundCombatSoldier.h:68
GroupedEntityCategory
Definition: EnumEntityManagement.h:118
KINT8 m_i8HdElv
Definition: GED_BasicGroundCombatSoldier.h:64