gwnavruntime/pathfollower/radiusprofileblob.h Source File

radiusprofileblob.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 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 #pragma once
8 
12 
13 
14 namespace Kaim
15 {
16 
17 class RadiusProfile;
18 class RadiusProfileArray;
19 
20 
22 //
23 // RadiusProfileArrayBlob & builder
24 //
26 
27 class RadiusProfileBlob
28 {
29 public:
30  BlobArray<char> m_name;
31  BlobArray<KyFloat32> m_radiusArray;
32 };
33 
34 inline void SwapEndianness(Endianness::Target e, RadiusProfileBlob& self)
35 {
36  SwapEndianness(e, self.m_name);
37  SwapEndianness(e, self.m_radiusArray);
38 }
39 
40 
41 class RadiusProfileBlobBuilder : public BaseBlobBuilder<RadiusProfileBlob>
42 {
43  KY_CLASS_WITHOUT_COPY(RadiusProfileBlobBuilder)
44 
45 public:
46  RadiusProfileBlobBuilder(const RadiusProfile* radiusProfile)
47  : m_radiusProfile(radiusProfile)
48  {}
49 
50  virtual void DoBuild();
51 
52 private:
53  const RadiusProfile* m_radiusProfile;
54 };
55 
56 
57 
59 //
60 // RadiusProfileArrayBlob & builder
61 //
63 
64 class RadiusProfileArrayBlob
65 {
66 public:
67  BlobArray<RadiusProfileBlob> m_radiusProfileArray;
68 };
69 
70 inline void SwapEndianness(Endianness::Target e, RadiusProfileArrayBlob& self)
71 {
72  SwapEndianness(e, self.m_radiusProfileArray);
73 }
74 
75 
76 class RadiusProfileArrayBlobBuilder : public BaseBlobBuilder<RadiusProfileArrayBlob>
77 {
78  KY_CLASS_WITHOUT_COPY(RadiusProfileArrayBlobBuilder)
79 
80 public:
81  RadiusProfileArrayBlobBuilder(const RadiusProfileArray* radiusProfileArray)
82  : m_radiusProfileArray(radiusProfileArray)
83  {}
84 
85  virtual void DoBuild();
86 
87 private:
88  const RadiusProfileArray* m_radiusProfileArray;
89 };
90 
91 } // namespace Kaim
92 
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17