KDIS  2-8-x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GED_GroundLogisticsVehicle.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_GroundLogisticsVehicle
32  created: 24:06:2009
33  author: Karl Jones
34 
35  purpose: Contains entity state information about an individual entity
36  within a group of ground logistics vehicles.
37  size: 128 bits / 16 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 
62 public:
63 
64  static const KUINT16 GED_GROUND_LOGISTICS_VEHICLE_SIZE = 16;
65 
67 
69 
70  GED_GroundLogisticsVehicle( KUINT16 ID, KINT16 XOffset, KINT16 YOffset, KINT16 ZOffset, const EntityAppearance & EA,
71  KINT8 Psi, KINT8 Theta, KINT8 Phi, KINT8 Speed );
72 
73  virtual ~GED_GroundLogisticsVehicle();
74 
75  //************************************
76  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetGroupedEntityCategory
77  //!Description: Identifies the derived GED class.
78  //! Not part of the DIS PDU.
79  //************************************
80  virtual KDIS::DATA_TYPE::ENUMS::GroupedEntityCategory GetGroupedEntityCategory() const;
81 
82  //************************************
83  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetLength
84  //!Description: Returns size of the GED in octets.
85  //! Not part of the DIS PDU.
86  //************************************
87  virtual KUINT8 GetLength() const;
88 
89  //************************************
90  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityID
91  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityID
92  //!Description: Entity identifier unique within the group.
93  //! The Site Identifier and Application Identifiers shall be the same as
94  //! those designated in the Group Entity ID field.
95  // Parameter: KUINT16 ID
96  //************************************
97  void SetEntityID( KUINT16 ID );
98  KUINT16 GetEntityID() const;
99 
100  //************************************
101  // GetEntityLocationZOffset
102  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityLocation
103  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityLocationXOffset
104  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityLocationYOffset
105  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityLocationZOffset
106  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityLocationXOffset
107  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityLocationYOffset
108  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityLocationZOffset
109  //!Description: Location of the grouped entity specified by a set of three offsets.
110  //! Determined by the difference, in meters, of the grouped entity from the Group Reference Point.
111  // Parameter: KINT16
112  //************************************
113  void SetEntityLocation( KINT16 XOffset, KINT16 YOffset, KINT16 ZOffset );
114  void SetEntityLocation( KINT16 Offsets[3] );
115  void SetEntityLocationXOffset( KINT16 X );
116  void SetEntityLocationYOffset( KINT16 Y );
117  void SetEntityLocationZOffset( KINT16 Z );
118  KINT16 GetEntityLocationXOffset() const;
119  KINT16 GetEntityLocationYOffset() const;
120  KINT16 GetEntityLocationZOffset() const;
121 
122  //************************************
123  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityAppearance
124  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityAppearance
125  //!Description: Entity appearance bit field accessors/mutator
126  // Parameter: const EntityAppearance & EA
127  //************************************
128  void SetEntityAppearance( const EntityAppearance & EA );
129  const EntityAppearance & GetEntityAppearance() const;
130  EntityAppearance & GetEntityAppearance();
131 
132  //************************************
133  // GetEntityOrientationPhi
134  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityOrientation
135  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityOrientationPsi
136  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityOrientationTheta
137  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetEntityOrientationPhi
138  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityOrientationPsi
139  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityOrientationTheta
140  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetEntityOrientationPhi
141  //!Description: Entity orientation in Euler angles, psi, theta and phi, in 25 milli radian increments.
142  // Parameter: KINT8
143  //************************************
144  void SetEntityOrientation( KINT8 Psi, KINT8 Theta, KINT8 Phi );
145  void SetEntityOrientation( KINT8 Ori[3] );
146  void SetEntityOrientationPsi( KINT8 P );
147  void SetEntityOrientationTheta( KINT8 T );
148  void SetEntityOrientationPhi( KINT8 P );
149  KINT8 GetEntityOrientationPsi() const;
150  KINT8 GetEntityOrientationTheta() const;
151  KINT8 GetEntityOrientationPhi() const;
152 
153  //************************************
154  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::SetSpeed
155  // KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetSpeed
156  //!Description: Signed magnitude value of the entity�s absolute velocity vector.
157  //! A negative value shall indicate that the entity is moving backwards.
158  //! Specified in 0.1 meter per second increments for aircraft and meters
159  //! per second for ground vehicles.
160  // Parameter: KINT8 S
161  //************************************
162  void SetSpeed( KINT8 S );
163  KINT8 GetSpeed() const;
164 
165  //************************************
166  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::GetAsString
167  //!Description: Returns a string representation
168  //************************************
169  virtual KString GetAsString() const;
170 
171  //************************************
172  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::Decode
173  //!Description: Convert From Network Data.
174  // Parameter: KDataStream & stream
175  //************************************
176  virtual void Decode( KDataStream & stream ) throw( KException );
177 
178  //************************************
179  // FullName: KDIS::DATA_TYPE::GED_GroundLogisticsVehicle::Encode
180  //!Description: Convert To Network Data.
181  // Parameter: KDataStream & stream
182  //************************************
183  virtual KDataStream Encode() const;
184  virtual void Encode( KDataStream & stream ) const;
185 
186  KBOOL operator == ( const GED_GroundLogisticsVehicle & Value ) const;
187  KBOOL operator != ( const GED_GroundLogisticsVehicle & Value ) const;
188 };
189 
190 } // END namespace DATA_TYPES
191 } // END namespace KDIS
192 
short int KINT16
Definition: KDefines.h:102
unsigned short int KUINT16
Definition: KDefines.h:101
EntityAppearance m_EA
Definition: GED_GroundLogisticsVehicle.h:56
KUINT16 m_ui16EntityID
Definition: GED_GroundLogisticsVehicle.h:52
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
KINT8 m_i8Spd
Definition: GED_GroundLogisticsVehicle.h:60
std::string KString
Definition: KDefines.h:116
Definition: GED_GroundLogisticsVehicle.h:48
unsigned char KUINT8
Definition: KDefines.h:99
#define KDIS_EXPORT
Definition: KDefines.h:82
GroupedEntityCategory
Definition: EnumEntityManagement.h:118