8 #ifndef Navigation_SpatializedPointCollectorInAABBQueryBlob_H
9 #define Navigation_SpatializedPointCollectorInAABBQueryBlob_H
19 class SpatializedPointCollectorInAABBQueryOutputBlob
23 SpatializedPointCollectorInAABBQueryOutputBlob() : m_result(0) {}
28 NavTriangleBlob m_startTriangle;
29 QueryDynamicOutputBlob m_queryDynamicOutputBlob;
31 inline void SwapEndianness(
Endianness::Target e, SpatializedPointCollectorInAABBQueryOutputBlob&
self)
33 SwapEndianness(e,
self.m_result);
34 SwapEndianness(e,
self.m_startTriangle);
35 SwapEndianness(e,
self.m_queryDynamicOutputBlob);
39 class SpatializedPointCollectorInAABBQueryOutputBlobBuilder :
public BaseBlobBuilder<SpatializedPointCollectorInAABBQueryOutputBlob>
42 SpatializedPointCollectorInAABBQueryOutputBlobBuilder(BaseSpatializedPointCollectorInAABBQuery* query) { m_query = query; }
43 virtual void DoBuild()
46 BLOB_BUILD(
m_blob->m_startTriangle, NavTriangleBlobBuilder(m_query->GetStartTrianglePtr()));
47 QueryDynamicOutput* queryDynamicOutput = m_query->GetQueryDynamicOutput();
48 if (queryDynamicOutput !=
KY_NULL && queryDynamicOutput->IsEmpty() ==
false)
50 BUILD_BLOB(
m_blob->m_queryDynamicOutputBlob, QueryDynamicOutputBlobBuilder(queryDynamicOutput));
55 BaseSpatializedPointCollectorInAABBQuery* m_query;
59 class SpatializedPointCollectorInAABBQueryBlob
62 KY_ROOT_BLOB_CLASS(Query, SpatializedPointCollectorInAABBQueryBlob, 0)
64 SpatializedPointCollectorInAABBQueryBlob() : m_queryInfoId(
KyUInt32MAXVAL), m_databaseIdx(KyUInt32MAXVAL) {}
72 PositionSpatializationRange m_positionSpatializationRange;
74 BlobRef<SpatializedPointCollectorInAABBQueryOutputBlob> m_queryOutput;
76 inline void SwapEndianness(
Endianness::Target e, SpatializedPointCollectorInAABBQueryBlob&
self)
78 SwapEndianness(e,
self.m_queryInfoId);
79 SwapEndianness(e,
self.m_databaseIdx);
80 SwapEndianness(e,
self.m_startPos3f);
81 SwapEndianness(e,
self.m_extentBox);
82 SwapEndianness(e,
self.m_positionSpatializationRange);
84 SwapEndianness(e,
self.m_queryOutput);
87 class SpatializedPointCollectorInAABBQueryBlobBuilder :
public BaseBlobBuilder<SpatializedPointCollectorInAABBQueryBlob>
90 SpatializedPointCollectorInAABBQueryBlobBuilder(BaseSpatializedPointCollectorInAABBQuery* query) { m_query = query; }
91 virtual void DoBuild()
95 if (m_query->m_database !=
KY_NULL)
97 BLOB_SET(
m_blob->m_databaseIdx , m_query->m_database->GetDatabaseIndex());
100 BLOB_SET(
m_blob->m_positionSpatializationRange, m_query->GetPositionSpatializationRange());
102 switch (m_query->GetResult())
115 BaseSpatializedPointCollectorInAABBQuery* m_query;
119 #endif // Kaim_SpatializedPointCollectorInAABBQueryInputBlob_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
SpatializedPointCollectorInAABBQueryResult
Enumerates the possible results of a SpatializedPointCollectorInAABBQuery.
Definition: basespatializedpointcollectorinaabbquery.h:26
#define KY_NULL
Null value.
Definition: types.h:247
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
SpatializedPointCollectorInAABBQueryOutputBlob * 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
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
Indicates that the query has not yet been launched.
Definition: basespatializedpointcollectorinaabbquery.h:29
Indicates that the query has not yet been initialized.
Definition: basespatializedpointcollectorinaabbquery.h:28
#define KyUInt32MAXVAL
The maximum value that can be stored in the KyUInt32 variable type.
Definition: types.h:226
#define BUILD_REFERENCED_BLOB(blobRef, builder)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:197