15 #ifndef Navigation_QueryDynamicOutputBlob_H
16 #define Navigation_QueryDynamicOutputBlob_H
27 class QueryDynamicOutputBlob
31 QueryDynamicOutputBlob() {}
34 BlobArray<NavFloorBoxBlob> m_navFloorBoxes;
35 BlobArray<NavTriangleBlob> m_navTriangles;
36 BlobArray<NavTagSubSegmentBlob> m_navTagSubSegments;
37 BlobArray<CostMultiplierSubSegment> m_costMultiplierSubSegments;
38 BlobArray<SpatializedPointBlob> m_spatializedPoints;
43 SwapEndianness(e,
self.m_navFloorBoxes);
44 SwapEndianness(e,
self.m_navTriangles);
45 SwapEndianness(e,
self.m_navTagSubSegments);
46 SwapEndianness(e,
self.m_costMultiplierSubSegments);
47 SwapEndianness(e,
self.m_spatializedPoints);
51 class QueryDynamicOutputBlobBuilder :
public BaseBlobBuilder<QueryDynamicOutputBlob>
54 QueryDynamicOutputBlobBuilder(
const QueryDynamicOutput* queryDynamicOutput) { m_queryDynamicOutput = queryDynamicOutput; }
55 virtual void DoBuild()
57 if (m_queryDynamicOutput ==
KY_NULL)
60 NavFloorBoxBlob* navFloorsBoxes =
BLOB_ARRAY(
m_blob->m_navFloorBoxes , m_queryDynamicOutput->GetNavFloorPtrCount());
61 NavTriangleBlob* navTrianglesBlobs =
BLOB_ARRAY(
m_blob->m_navTriangles , m_queryDynamicOutput->GetNavTrianglePtrCount());
62 NavTagSubSegmentBlob* navTagSubSegmentBlobs =
BLOB_ARRAY(
m_blob->m_navTagSubSegments, m_queryDynamicOutput->GetNavTagSubSegmentCount());
63 CostMultiplierSubSegment* costMultSubSegmentBlobs =
BLOB_ARRAY(
m_blob->m_costMultiplierSubSegments, m_queryDynamicOutput->GetCostMultiplierSubSegmentCount());
64 SpatializedPointBlob* spatializedPointBlobs =
BLOB_ARRAY(
m_blob->m_spatializedPoints , m_queryDynamicOutput->GetSpatializedPointCount());
66 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetNavFloorPtrCount(); ++i)
68 BLOB_BUILD(navFloorsBoxes[i], NavFloorBoxBlobBuilder(m_queryDynamicOutput->GetNavFloorPtr(i)));
70 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetNavTrianglePtrCount(); ++i)
72 BLOB_BUILD(navTrianglesBlobs[i], NavTriangleBlobBuilder(m_queryDynamicOutput->GetNavTrianglePtr(i)));
74 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetNavTagSubSegmentCount(); ++i)
76 BLOB_BUILD(navTagSubSegmentBlobs[i], NavTagSubSegmentBlobBuilder(m_queryDynamicOutput->GetNavTagSubSegment(i)));
78 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetCostMultiplierSubSegmentCount(); ++i)
80 BLOB_SET(costMultSubSegmentBlobs[i], m_queryDynamicOutput->GetCostMultiplierSubSegment(i));
82 for(
KyUInt32 i = 0; i < m_queryDynamicOutput->GetSpatializedPointCount(); ++i)
84 BLOB_BUILD(spatializedPointBlobs[i], SpatializedPointBlobBuilder(m_queryDynamicOutput->GetSpatializedPoint(i), VisualDebugLOD_Default));
89 const QueryDynamicOutput* m_queryDynamicOutput;
94 #endif // Navigation_QueryDynamicOutputBlob_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
#define KY_NULL
Null value.
Definition: types.h:247
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
QueryDynamicOutputBlob * 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
#define BLOB_ARRAY(blobArray, count)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:147
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36