gwnavruntime/pathfollower/circlearcsplinecomputerinputblob.h Source File
Go to the documentation of this file.
10 #ifndef Navigation_CircleArcSplineComputerInputBlob_H
11 #define Navigation_CircleArcSplineComputerInputBlob_H
28 class CircleArcSplineComputerInputBlob
30 KY_ROOT_BLOB_CLASS(Runtime, CircleArcSplineComputerInputBlob, 0)
33 CircleArcSplineComputerInputBlob() {}
36 ChannelBlob m_channel;
38 SplineComputationConfigBlob m_splineConfig;
40 Vec3f m_startPosition;
43 Vec2f m_startConstraint;
44 Vec2f m_endConstraint;
50 inline void SwapEndianness(
Endianness::Target e, CircleArcSplineComputerInputBlob&
self)
52 SwapEndianness(e,
self.m_channel);
53 SwapEndianness(e,
self.m_splineConfig);
54 SwapEndianness(e,
self.m_startPosition);
55 SwapEndianness(e,
self.m_endPosition);
56 SwapEndianness(e,
self.m_startConstraint);
57 SwapEndianness(e,
self.m_endConstraint);
58 SwapEndianness(e,
self.m_startIndex);
59 SwapEndianness(e,
self.m_endIndex);
64 class CircleArcSplineComputerInputBlobBuilder :
public BaseBlobBuilder<CircleArcSplineComputerInputBlob>
69 CircleArcSplineComputerInputBlobBuilder(const CircleArcSplineComputer* computer)
70 : m_computer(computer)
73 virtual void DoBuild()
75 BLOB_BUILD(
m_blob->m_channel, ChannelBlobBuilder(m_computer->m_startSection.GetChannel()));
76 BLOB_BUILD(
m_blob->m_splineConfig, SplineConfigBlobBuilder(m_computer->m_splineConfig));
79 BLOB_SET(
m_blob->m_startConstraint, m_computer->m_startConstraint);
81 BLOB_SET(
m_blob->m_startIndex, m_computer->m_startSection.GetSectionIdx());
82 BLOB_SET(
m_blob->m_endIndex, m_computer->m_endSection.GetSectionIdx());
86 const CircleArcSplineComputer* m_computer;
92 #endif // Navigation_CircleArcSplineComputerInputBlob_H
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:136
#define BLOB_BUILD(blob, builder)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:189
#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
CircleArcSplineComputerInputBlob * m_blob
The blob maintained by this builder. Only modify using the macros listed under DoBuild().
Definition: baseblobbuilder.h:117
Definition: gamekitcrowddispersion.h:20
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36