gwnavruntime/pathfollower/circlearcsplinecomputerinputblob.h Source File
Go to the documentation of this file.
25 class CircleArcSplineComputerInputBlob
27 KY_ROOT_BLOB_CLASS(Runtime, CircleArcSplineComputerInputBlob, 0)
30 CircleArcSplineComputerInputBlob() {}
33 ChannelBlob m_channel;
35 SplineComputationConfigBlob m_splineConfig;
37 Vec3f m_startPosition;
40 Vec2f m_startConstraint;
41 Vec2f m_endConstraint;
47 inline void SwapEndianness(
Endianness::Target e, CircleArcSplineComputerInputBlob&
self)
49 SwapEndianness(e,
self.m_channel);
50 SwapEndianness(e,
self.m_splineConfig);
51 SwapEndianness(e,
self.m_startPosition);
52 SwapEndianness(e,
self.m_endPosition);
53 SwapEndianness(e,
self.m_startConstraint);
54 SwapEndianness(e,
self.m_endConstraint);
55 SwapEndianness(e,
self.m_startIndex);
56 SwapEndianness(e,
self.m_endIndex);
61 class CircleArcSplineComputerInputBlobBuilder :
public BaseBlobBuilder<CircleArcSplineComputerInputBlob>
66 CircleArcSplineComputerInputBlobBuilder(const CircleArcSplineComputer* computer)
67 : m_computer(computer)
70 virtual void DoBuild()
72 BLOB_BUILD(
m_blob->m_channel, ChannelBlobBuilder(m_computer->m_startSection.GetChannel()));
73 BLOB_BUILD(
m_blob->m_splineConfig, SplineConfigBlobBuilder(m_computer->m_splineConfig));
76 BLOB_SET(
m_blob->m_startConstraint, m_computer->m_startConstraint);
78 BLOB_SET(
m_blob->m_startIndex, m_computer->m_startSection.GetSectionIdx());
79 BLOB_SET(
m_blob->m_endIndex, m_computer->m_endSection.GetSectionIdx());
83 const CircleArcSplineComputer* m_computer;
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:130
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
#define BLOB_BUILD(blob, builder)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:175
#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
CircleArcSplineComputerInputBlob * m_blob
The blob maintained by this builder. Only modify using the macros listed under DoBuild().
Definition: baseblobbuilder.h:113
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17