18 class RayCanGoQueryOutputBlob
28 NavTriangleBlob m_startTriangle;
29 NavTriangleBlob m_destTriangle;
30 BlobRef<QueryDynamicOutputBlob> m_queryDynamicOutputBlobRef;
34 SwapEndianness(e,
self.m_result);
35 SwapEndianness(e,
self.m_cost);
36 SwapEndianness(e,
self.m_startTriangle);
37 SwapEndianness(e,
self.m_destTriangle);
38 SwapEndianness(e,
self.m_queryDynamicOutputBlobRef);
42 class RayCanGoQueryOutputBlobBuilder :
public BaseBlobBuilder<RayCanGoQueryOutputBlob>
45 RayCanGoQueryOutputBlobBuilder(BaseRayCanGoQuery* query) { m_query = query; }
46 virtual void DoBuild()
50 BLOB_BUILD(
m_blob->m_startTriangle, NavTriangleBlobBuilder(m_query->GetStartTrianglePtr()));
51 BLOB_BUILD(
m_blob->m_destTriangle, NavTriangleBlobBuilder(m_query->GetDestTrianglePtr()));
52 QueryDynamicOutput* queryDynamicOutput = m_query->GetQueryDynamicOutput();
53 if (queryDynamicOutput !=
nullptr && queryDynamicOutput->IsEmpty() ==
false)
60 BaseRayCanGoQuery* m_query;
64 class RayCanGoQueryBlob
67 KY_ROOT_BLOB_CLASS(Query, RayCanGoQueryBlob, 1)
69 RayCanGoQueryBlob() : m_queryInfoId(
KyUInt32MAXVAL), m_databaseIdx(KyUInt32MAXVAL) {}
80 PositionSpatializationRange m_positionSpatializationRange;
86 BlobRef<RayCanGoQueryOutputBlob> m_queryOutput;
90 SwapEndianness(e,
self.m_queryInfoId);
91 SwapEndianness(e,
self.m_databaseIdx);
92 SwapEndianness(e,
self.m_startPos3f);
93 SwapEndianness(e,
self.m_destPos3f);
94 SwapEndianness(e,
self.m_positionSpatializationRange);
95 SwapEndianness(e,
self.m_marginMode);
96 SwapEndianness(e,
self.m_dynamicOutputMode);
97 SwapEndianness(e,
self.m_computeCostMode);
99 SwapEndianness(e,
self.m_margin);
100 SwapEndianness(e,
self.m_queryOutput);
103 class RayCanGoQueryBlobBuilder :
public BaseBlobBuilder<RayCanGoQueryBlob>
106 RayCanGoQueryBlobBuilder(BaseRayCanGoQuery* query) { m_query = query; }
107 virtual void DoBuild()
111 if (m_query->m_database !=
nullptr)
113 BLOB_SET(
m_blob->m_databaseIdx , m_query->m_database->GetDatabaseIndex());
116 BLOB_SET(
m_blob->m_positionSpatializationRange, m_query->GetPositionSpatializationRange());
121 BLOB_SET(
m_blob->m_margin, m_query->m_database->GetRayCanGoMarginFloat(m_query->GetMarginMode()));
123 switch (m_query->GetResult())
136 BaseRayCanGoQuery* m_query;
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:130
#define KyFloat32MAXVAL
KyFloat32 max value
Definition: types.h:71
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
Indicates that the query has not yet been launched.
Definition: baseraycangoquery.h:27
#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
#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
ComputeCostMode
Enumerates the possible ways a RayCanGoQuery can compute the cost of following the ray...
Definition: rayqueryutils.h:33
RayCanGoQueryOutputBlob * 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 initialized.
Definition: baseraycangoquery.h:26
RayCanGoQueryResult
Enumerates the possible results of a RayCanGoQuery.
Definition: baseraycangoquery.h:24
#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