8 #ifndef Navigation_BestGraphVertexPathFinderQueryBlob_H
9 #define Navigation_BestGraphVertexPathFinderQueryBlob_H
22 class BestGraphVertexPathFinderQueryOutputBlob
27 BestGraphVertexPathFinderQueryOutputBlob() : m_result(0) {}
33 TimeSlicedQueryInfoBlob m_timeSlicedQueryInfo;
34 NavTriangleBlob m_startTriangle;
37 inline void SwapEndianness(
Endianness::Target e, BestGraphVertexPathFinderQueryOutputBlob&
self)
39 SwapEndianness(e,
self.m_result );
40 SwapEndianness(e,
self.m_timeSlicedQueryInfo);
41 SwapEndianness(e,
self.m_startTriangle );
42 SwapEndianness(e,
self.m_pathBlob );
46 class BestGraphVertexPathFinderQueryOutputBlobBuilder :
public BaseBlobBuilder<BestGraphVertexPathFinderQueryOutputBlob>
49 BestGraphVertexPathFinderQueryOutputBlobBuilder(BaseBestGraphVertexPathFinderQuery* query)
53 virtual void DoBuild()
56 BLOB_BUILD(
m_blob->m_timeSlicedQueryInfo, TimeSlicedQueryBlobBuilder(m_query));
57 BLOB_BUILD(
m_blob->m_startTriangle, NavTriangleBlobBuilder(m_query->GetStartTrianglePtr()));
64 BaseBestGraphVertexPathFinderQuery* m_query;
67 class BestGraphVertexPathFinderQueryBlob
70 KY_ROOT_BLOB_CLASS(Query, BestGraphVertexPathFinderQueryBlob, 0)
73 BestGraphVertexPathFinderQueryBlob() : m_queryInfoId(
KyUInt32MAXVAL), m_databaseIdx(KyUInt32MAXVAL) {}
81 KyUInt8 m_enableAdvancedVisualDebug;
84 PositionSpatializationRange m_positionSpatializationRange;
85 BlobRef<BestGraphVertexPathFinderQueryOutputBlob> m_queryOutput;
88 inline void SwapEndianness(
Endianness::Target e, BestGraphVertexPathFinderQueryBlob&
self)
90 SwapEndianness(e,
self.m_queryInfoId );
91 SwapEndianness(e,
self.m_databaseIdx );
92 SwapEndianness(e,
self.m_fromOutsideNavMeshDistance );
93 SwapEndianness(e,
self.m_propagationRadius );
94 SwapEndianness(e,
self.m_enableAdvancedVisualDebug );
95 SwapEndianness(e,
self.m_startPos3f );
96 SwapEndianness(e,
self.m_positionSpatializationRange );
97 SwapEndianness(e,
self.m_queryOutput );
100 class BestGraphVertexPathFinderQueryBlobBuilder:
public BaseBlobBuilder<BestGraphVertexPathFinderQueryBlob>
103 BestGraphVertexPathFinderQueryBlobBuilder(BaseBestGraphVertexPathFinderQuery* query)
107 virtual void DoBuild()
111 if (m_query->m_database !=
KY_NULL)
113 BLOB_SET(
m_blob->m_databaseIdx , m_query->m_database->GetDatabaseIndex());
115 BLOB_SET(
m_blob->m_positionSpatializationRange , m_query->GetPositionSpatializationRange());
116 BLOB_SET(
m_blob->m_fromOutsideNavMeshDistance , m_query->GetFromOutsideNavMeshDistance());
117 BLOB_SET(
m_blob->m_propagationRadius , m_query->GetPropagationRadius());
118 BLOB_SET(
m_blob->m_enableAdvancedVisualDebug , m_query->m_enableAdvancedVisualDebug ? 1 : 0);
120 switch (m_query->GetResult())
133 BaseBestGraphVertexPathFinderQuery* m_query;
137 #endif // Kaim_AstarQueryInputBlob_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
Indicates the query has not yet been initialized.
Definition: basebestgraphvertexpathfinderquery.h:24
#define KY_NULL
Null value.
Definition: types.h:247
Indicates the query has not yet been launched.
Definition: basebestgraphvertexpathfinderquery.h:25
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
unsigned char KyUInt8
Type used internally to represent an unsigned 8-bit integer.
Definition: types.h:41
BestGraphVertexPathFinderQueryOutputBlob * m_blob
The blob maintained by this builder. Only modify using the macros listed under DoBuild().
Definition: baseblobbuilder.h:117
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
Indicates that a path has been found between the start and destination.
Definition: basebestgraphvertexpathfinderquery.h:47
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
BestGraphVertexPathFinderQueryResult
Enumerates the possible results of an BestGraphVertexPathFinderQuery.
Definition: basebestgraphvertexpathfinderquery.h:22
#define KyUInt32MAXVAL
The maximum value that can be stored in the KyUInt32 variable type.
Definition: types.h:226
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43
#define BUILD_REFERENCED_BLOB(blobRef, builder)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:197