gwnavruntime/pathfollower/splineconfigblob.h Source File

splineconfigblob.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_SplineConfigBlob_H
9 #define Navigation_SplineConfigBlob_H
10 
17 
18 
19 namespace Kaim
20 {
21 
22 class SplineComputationConfig;
23 
26 {
27  KY_ROOT_BLOB_CLASS(Runtime, SplineComputationConfigBlob, 0)
28 
29 public:
31 
32 public:
33  RadiusProfileArrayBlob m_radiusProfileArray;
34  KyFloat32 m_length;
35  KyFloat32 m_startAndEndConstraintTurnMaxAngle;
36  KyFloat32 m_arcMinLength;
37  KyFloat32 m_fullTurnTolerance;
38  BlobArray<Vec2f> m_distanceToInnerCornerFunctionPoints;
39 };
40 
41 inline void SwapEndianness(Endianness::Target e, SplineComputationConfigBlob& self)
42 {
43  SwapEndianness(e, self.m_radiusProfileArray);
44  SwapEndianness(e, self.m_length);
45  SwapEndianness(e, self.m_startAndEndConstraintTurnMaxAngle);
46  SwapEndianness(e, self.m_arcMinLength);
47  SwapEndianness(e, self.m_fullTurnTolerance);
48  SwapEndianness(e, self.m_distanceToInnerCornerFunctionPoints);
49 }
50 
51 
52 class SplineConfigBlobBuilder : public BaseBlobBuilder<SplineComputationConfigBlob>
53 {
54  KY_CLASS_WITHOUT_COPY(SplineConfigBlobBuilder)
55 
56 public:
57  SplineConfigBlobBuilder(const SplineComputationConfig* splineComputationConfig)
58  : m_splineComputationConfig(splineComputationConfig)
59  {}
60 
61  virtual void DoBuild();
62 
63 private:
64  const SplineComputationConfig* m_splineComputationConfig;
65 };
66 
67 } // namespace Kaim
68 
69 #endif // Navigation_SplineConfigBlob_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
A BlobArray an array that is compatible with the blob serialization framework.
Definition: blobarray.h:28
Definition: gamekitcrowddispersion.h:20
Class that configures Spline geometric parameters.
Definition: splineconfigblob.h:25
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43