18 class QueryDynamicOutputBlob
22 QueryDynamicOutputBlob() {}
25 BlobArray<NavFloorBoxBlob> m_navFloorBoxes;
26 BlobArray<NavTriangleBlob> m_navTriangles;
27 BlobArray<NavTagSubSegmentBlob> m_navTagSubSegments;
28 BlobArray<CostMultiplierSubSegment> m_costMultiplierSubSegments;
29 BlobArray<SpatializedPointBlob> m_spatializedPoints;
34 SwapEndianness(e,
self.m_navFloorBoxes);
35 SwapEndianness(e,
self.m_navTriangles);
36 SwapEndianness(e,
self.m_navTagSubSegments);
37 SwapEndianness(e,
self.m_costMultiplierSubSegments);
38 SwapEndianness(e,
self.m_spatializedPoints);
42 class QueryDynamicOutputBlobBuilder :
public BaseBlobBuilder<QueryDynamicOutputBlob>
45 QueryDynamicOutputBlobBuilder(
const QueryDynamicOutput* queryDynamicOutput) { m_queryDynamicOutput = queryDynamicOutput; }
46 virtual void DoBuild()
48 if (m_queryDynamicOutput ==
nullptr)
51 NavFloorBoxBlob* navFloorsBoxes =
BLOB_ARRAY(
m_blob->m_navFloorBoxes , m_queryDynamicOutput->GetNavFloorPtrCount());
52 NavTriangleBlob* navTrianglesBlobs =
BLOB_ARRAY(
m_blob->m_navTriangles , m_queryDynamicOutput->GetNavTrianglePtrCount());
53 NavTagSubSegmentBlob* navTagSubSegmentBlobs =
BLOB_ARRAY(
m_blob->m_navTagSubSegments, m_queryDynamicOutput->GetNavTagSubSegmentCount());
54 CostMultiplierSubSegment* costMultSubSegmentBlobs =
BLOB_ARRAY(
m_blob->m_costMultiplierSubSegments, m_queryDynamicOutput->GetCostMultiplierSubSegmentCount());
55 SpatializedPointBlob* spatializedPointBlobs =
BLOB_ARRAY(
m_blob->m_spatializedPoints , m_queryDynamicOutput->GetSpatializedPointCount());
57 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetNavFloorPtrCount(); ++i)
59 BLOB_BUILD(navFloorsBoxes[i], NavFloorBoxBlobBuilder(m_queryDynamicOutput->GetNavFloorPtr(i)));
61 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetNavTrianglePtrCount(); ++i)
63 BLOB_BUILD(navTrianglesBlobs[i], NavTriangleBlobBuilder(m_queryDynamicOutput->GetNavTrianglePtr(i)));
65 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetNavTagSubSegmentCount(); ++i)
67 BLOB_BUILD(navTagSubSegmentBlobs[i], NavTagSubSegmentBlobBuilder(m_queryDynamicOutput->GetNavTagSubSegment(i)));
69 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetCostMultiplierSubSegmentCount(); ++i)
71 BLOB_SET(costMultSubSegmentBlobs[i], m_queryDynamicOutput->GetCostMultiplierSubSegment(i));
73 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetSpatializedPointCount(); ++i)
75 BLOB_BUILD(spatializedPointBlobs[i], SpatializedPointBlobBuilder(m_queryDynamicOutput->GetSpatializedPoint(i), VisualDebugLOD_Default));
80 const QueryDynamicOutput* m_queryDynamicOutput;
#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
#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
QueryDynamicOutputBlob * 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
#define BLOB_ARRAY(blobArray, count)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:139