18 class InsidePosFromOutsidePosQueryOutputBlob
22 InsidePosFromOutsidePosQueryOutputBlob() : m_result(0) {}
28 NavTriangleBlob m_insidePosTriangle;
30 inline void SwapEndianness(
Endianness::Target e, InsidePosFromOutsidePosQueryOutputBlob&
self)
32 SwapEndianness(e,
self.m_result);
33 SwapEndianness(e,
self.m_insidePos3f);
34 SwapEndianness(e,
self.m_insidePosTriangle);
38 class InsidePosFromOutsidePosQueryOutputBlobBuilder :
public BaseBlobBuilder<InsidePosFromOutsidePosQueryOutputBlob>
41 InsidePosFromOutsidePosQueryOutputBlobBuilder(BaseInsidePosFromOutsidePosQuery* query) { m_query = query; }
42 virtual void DoBuild()
46 BLOB_BUILD(
m_blob->m_insidePosTriangle, NavTriangleBlobBuilder(m_query->GetInsidePosTrianglePtr()));
50 BaseInsidePosFromOutsidePosQuery* m_query;
54 class InsidePosFromOutsidePosQueryBlob
57 KY_ROOT_BLOB_CLASS(Query, InsidePosFromOutsidePosQueryBlob, 0)
59 InsidePosFromOutsidePosQueryBlob() : m_queryInfoId(
KyUInt32MAXVAL), m_databaseIdx(KyUInt32MAXVAL) {}
66 Vec2f m_castDirection;
69 PositionSpatializationRange m_positionSpatializationRange;
71 BlobRef<InsidePosFromOutsidePosQueryOutputBlob> m_queryOutput;
73 inline void SwapEndianness(
Endianness::Target e, InsidePosFromOutsidePosQueryBlob&
self)
75 SwapEndianness(e,
self.m_queryInfoId );
76 SwapEndianness(e,
self.m_databaseIdx );
77 SwapEndianness(e,
self.m_inputPos3f );
78 SwapEndianness(e,
self.m_castDirection );
79 SwapEndianness(e,
self.m_distFromObstacle );
80 SwapEndianness(e,
self.m_horizontalTolerance);
81 SwapEndianness(e,
self.m_positionSpatializationRange);
83 SwapEndianness(e,
self.m_queryOutput);
86 class InsidePosFromOutsidePosQueryBlobBuilder :
public BaseBlobBuilder<InsidePosFromOutsidePosQueryBlob>
89 InsidePosFromOutsidePosQueryBlobBuilder(BaseInsidePosFromOutsidePosQuery* query) { m_query = query; }
90 virtual void DoBuild()
94 if (m_query->m_database !=
nullptr)
96 BLOB_SET(
m_blob->m_databaseIdx , m_query->m_database->GetDatabaseIndex());
99 BLOB_SET(
m_blob->m_distFromObstacle , m_query->GetDistFromObstacle());
100 BLOB_SET(
m_blob->m_horizontalTolerance , m_query->GetHorizontalTolerance());
101 BLOB_SET(
m_blob->m_positionSpatializationRange, m_query->GetPositionSpatializationRange());
103 switch (m_query->GetResult())
116 BaseInsidePosFromOutsidePosQuery* m_query;
InsidePosFromOutsidePosQueryResult
Enumerates the possible results of an InsidePosFromOutsidePosQuery.
Definition: baseinsideposfromoutsideposquery.h:20
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:130
Indicates the query has not yet been initialized.
Definition: baseinsideposfromoutsideposquery.h:22
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
#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
InsidePosFromOutsidePosQueryOutputBlob * 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 the query has not yet been launched.
Definition: baseinsideposfromoutsideposquery.h:23
#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