21 class BestGraphVertexPathFinderQueryOutputBlob
26 BestGraphVertexPathFinderQueryOutputBlob() : m_result(0) {}
32 TimeSlicedQueryInfoBlob m_timeSlicedQueryInfo;
33 NavTriangleBlob m_startTriangle;
36 inline void SwapEndianness(
Endianness::Target e, BestGraphVertexPathFinderQueryOutputBlob&
self)
38 SwapEndianness(e,
self.m_result );
39 SwapEndianness(e,
self.m_timeSlicedQueryInfo);
40 SwapEndianness(e,
self.m_startTriangle );
41 SwapEndianness(e,
self.m_pathBlob );
45 class BestGraphVertexPathFinderQueryOutputBlobBuilder :
public BaseBlobBuilder<BestGraphVertexPathFinderQueryOutputBlob>
48 BestGraphVertexPathFinderQueryOutputBlobBuilder(BaseBestGraphVertexPathFinderQuery* query)
52 virtual void DoBuild()
55 BLOB_BUILD(
m_blob->m_timeSlicedQueryInfo, TimeSlicedQueryBlobBuilder(m_query));
56 BLOB_BUILD(
m_blob->m_startTriangle, NavTriangleBlobBuilder(m_query->GetStartTrianglePtr()));
63 BaseBestGraphVertexPathFinderQuery* m_query;
66 class BestGraphVertexPathFinderQueryBlob
69 KY_ROOT_BLOB_CLASS(Query, BestGraphVertexPathFinderQueryBlob, 0)
72 BestGraphVertexPathFinderQueryBlob() : m_queryInfoId(
KyUInt32MAXVAL), m_databaseIdx(KyUInt32MAXVAL) {}
80 FullDebug m_fullDebug;
83 PositionSpatializationRange m_positionSpatializationRange;
84 BlobRef<BestGraphVertexPathFinderQueryOutputBlob> m_queryOutput;
87 inline void SwapEndianness(
Endianness::Target e, BestGraphVertexPathFinderQueryBlob&
self)
89 SwapEndianness(e,
self.m_queryInfoId );
90 SwapEndianness(e,
self.m_databaseIdx );
91 SwapEndianness(e,
self.m_fromOutsideNavMeshDistance );
92 SwapEndianness(e,
self.m_propagationRadius );
93 SwapEndianness(e,
self.m_fullDebug );
94 SwapEndianness(e,
self.m_startPos3f );
95 SwapEndianness(e,
self.m_positionSpatializationRange );
96 SwapEndianness(e,
self.m_queryOutput );
99 class BestGraphVertexPathFinderQueryBlobBuilder:
public BaseBlobBuilder<BestGraphVertexPathFinderQueryBlob>
102 BestGraphVertexPathFinderQueryBlobBuilder(BaseBestGraphVertexPathFinderQuery* query)
106 virtual void DoBuild()
110 if (m_query->m_database !=
nullptr)
112 BLOB_SET(
m_blob->m_databaseIdx , m_query->m_database->GetDatabaseIndex());
114 BLOB_SET(
m_blob->m_positionSpatializationRange , m_query->GetPositionSpatializationRange());
115 BLOB_SET(
m_blob->m_fromOutsideNavMeshDistance , m_query->GetFromOutsideNavMeshDistance());
116 BLOB_SET(
m_blob->m_propagationRadius , m_query->GetPropagationRadius());
119 switch (m_query->GetResult())
132 BaseBestGraphVertexPathFinderQuery* m_query;
#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
Indicates the query has not yet been initialized.
Definition: basebestgraphvertexpathfinderquery.h:20
Indicates the query has not yet been launched.
Definition: basebestgraphvertexpathfinderquery.h:21
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
BestGraphVertexPathFinderQueryOutputBlob * 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
Indicates that a path has been found between the start and destination.
Definition: basebestgraphvertexpathfinderquery.h:43
BestGraphVertexPathFinderQueryResult
Enumerates the possible results of an BestGraphVertexPathFinderQuery.
Definition: basebestgraphvertexpathfinderquery.h:18
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68
float KyFloat32
float
Definition: types.h:32
#define BUILD_REFERENCED_BLOB(blobRef, builder)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:182