17 class DiskCollisionQueryOutputBlob
21 DiskCollisionQueryOutputBlob() : m_result(0) {}
26 NavTriangleBlob m_centerTriangle;
27 BlobRef<QueryDynamicOutputBlob> m_queryDynamicOutputBlobRef;
31 SwapEndianness(e,
self.m_result );
32 SwapEndianness(e,
self.m_centerTriangle );
33 SwapEndianness(e,
self.m_queryDynamicOutputBlobRef);
37 class DiskCollisionQueryOutputBlobBuilder :
public BaseBlobBuilder<DiskCollisionQueryOutputBlob>
40 DiskCollisionQueryOutputBlobBuilder(BaseDiskCollisionQuery* query) { m_query = query; }
41 virtual void DoBuild()
45 BLOB_BUILD(
m_blob->m_centerTriangle, NavTriangleBlobBuilder(m_query->GetCenterTrianglePtr()));
47 QueryDynamicOutput* queryDynamicOutput = m_query->GetQueryDynamicOutput();
48 if (queryDynamicOutput !=
nullptr && queryDynamicOutput->IsEmpty() ==
false)
55 BaseDiskCollisionQuery* m_query;
58 class DiskCollisionQueryBlob
61 KY_ROOT_BLOB_CLASS(Query, DiskCollisionQueryBlob, 0)
63 DiskCollisionQueryBlob() : m_queryInfoId(
KyUInt32MAXVAL), m_databaseIdx(KyUInt32MAXVAL) {}
73 PositionSpatializationRange m_positionSpatializationRange;
76 BlobRef<DiskCollisionQueryOutputBlob> m_queryOutput;
80 SwapEndianness(e,
self.m_queryInfoId);
81 SwapEndianness(e,
self.m_databaseIdx);
82 SwapEndianness(e,
self.m_centerPos3f);
83 SwapEndianness(e,
self.m_radius);
84 SwapEndianness(e,
self.m_positionSpatializationRange);
85 SwapEndianness(e,
self.m_dynamicOutputMode);
87 SwapEndianness(e,
self.m_queryOutput);
92 class DiskCollisionQueryBlobBuilder :
public BaseBlobBuilder<DiskCollisionQueryBlob>
95 DiskCollisionQueryBlobBuilder(BaseDiskCollisionQuery* query) { m_query = query; }
96 virtual void DoBuild()
100 if (m_query->m_database !=
nullptr)
102 BLOB_SET(
m_blob->m_databaseIdx , m_query->m_database->GetDatabaseIndex());
105 BLOB_SET(
m_blob->m_positionSpatializationRange, m_query->GetPositionSpatializationRange());
108 switch (m_query->GetResult())
121 BaseDiskCollisionQuery* 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
DynamicOutputMode
Enumerates possible ways of storing collected data by a query in a QueryDynamicOutput object...
Definition: querydynamicoutput.h:21
DiskCollisionQueryResult
Enumerates the possible results of a DiskCollisionQuery.
Definition: basediskcollisionquery.h:18
#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
DiskCollisionQueryOutputBlob * 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 the query has not yet been launched.
Definition: basediskcollisionquery.h:21
#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
Indicates that the query has not yet been initialized.
Definition: basediskcollisionquery.h:20