gwnavruntime/pathfollower/radiusprofileblob.h Source File

radiusprofileblob.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 // primary contact: LAPA - secondary contact: nobody
8 #ifndef Navigation_RadiusProfileBlob_H
9 #define Navigation_RadiusProfileBlob_H
10 
14 
15 
16 namespace Kaim
17 {
18 
19 class RadiusProfile;
20 class RadiusProfileArray;
21 
22 
24 //
25 // RadiusProfileArrayBlob & builder
26 //
28 
29 class RadiusProfileBlob
30 {
31 public:
32  BlobArray<char> m_name;
33  BlobArray<KyFloat32> m_radiusArray;
34 };
35 
36 inline void SwapEndianness(Endianness::Target e, RadiusProfileBlob& self)
37 {
38  SwapEndianness(e, self.m_name);
39  SwapEndianness(e, self.m_radiusArray);
40 }
41 
42 
43 class RadiusProfileBlobBuilder : public BaseBlobBuilder<RadiusProfileBlob>
44 {
45  KY_CLASS_WITHOUT_COPY(RadiusProfileBlobBuilder)
46 
47 public:
48  RadiusProfileBlobBuilder(const RadiusProfile* radiusProfile)
49  : m_radiusProfile(radiusProfile)
50  {}
51 
52  virtual void DoBuild();
53 
54 private:
55  const RadiusProfile* m_radiusProfile;
56 };
57 
58 
59 
61 //
62 // RadiusProfileArrayBlob & builder
63 //
65 
66 class RadiusProfileArrayBlob
67 {
68 public:
69  BlobArray<RadiusProfileBlob> m_radiusProfileArray;
70 };
71 
72 inline void SwapEndianness(Endianness::Target e, RadiusProfileArrayBlob& self)
73 {
74  SwapEndianness(e, self.m_radiusProfileArray);
75 }
76 
77 
78 class RadiusProfileArrayBlobBuilder : public BaseBlobBuilder<RadiusProfileArrayBlob>
79 {
80  KY_CLASS_WITHOUT_COPY(RadiusProfileArrayBlobBuilder)
81 
82 public:
83  RadiusProfileArrayBlobBuilder(const RadiusProfileArray* radiusProfileArray)
84  : m_radiusProfileArray(radiusProfileArray)
85  {}
86 
87  virtual void DoBuild();
88 
89 private:
90  const RadiusProfileArray* m_radiusProfileArray;
91 };
92 
93 } // namespace Kaim
94 
95 #endif // Navigation_RadiusProfileBlob_H
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
Definition: gamekitcrowddispersion.h:20