20 KY_ROOT_BLOB_CLASS(NavData, TagVolumeBlob, 106)
25 bool operator==(
const TagVolumeBlob& other)
const
27 if ((m_points.GetCount() != other.m_points.GetCount()) ||
28 (m_aabb != other.m_aabb) ||
29 (m_obstacleType != other.m_obstacleType) ||
30 (m_navTag != other.m_navTag))
35 const Vec2f* thisPoints = m_points.GetValues();
36 const Vec2f* otherPoints = other.m_points.GetValues();
37 for (
KyUInt32 i = 0; i < m_points.GetCount(); ++i)
39 if (thisPoints[i] != otherPoints[i])
45 bool operator!=(
const TagVolumeBlob& other)
const {
return !operator==(other); }
47 TagVolume::ObstacleType GetObstacleType()
const {
return (TagVolume::ObstacleType)m_obstacleType; }
51 BlobArray<Vec2f> m_points;
57 DatabaseBindingBlob m_databaseBindings;
62 SwapEndianness(e,
self.m_visualDebugId);
63 SwapEndianness(e,
self.m_points);
64 SwapEndianness(e,
self.m_aabb);
65 SwapEndianness(e,
self.m_obstacleType);
66 SwapEndianness(e,
self.m_tagVolumeExtendOptions);
67 SwapEndianness(e,
self.m_navTag);
68 SwapEndianness(e,
self.m_navTagIdx);
69 SwapEndianness(e,
self.m_databaseBindings);
72 class TagVolumeBlobBuilder :
public BaseBlobBuilder<TagVolumeBlob>
75 TagVolumeBlobBuilder(
const TagVolume* tagVolume) : m_tagVolume(tagVolume) {}
82 BLOB_SET(
m_blob->m_visualDebugId, m_tagVolume->GetVisualDebugId());
88 BLOB_BUILD(
m_blob->m_databaseBindings, DatabaseBindingBlobBuilder(m_tagVolume->GetDatabaseBinding()));
92 const TagVolume* m_tagVolume;
95 class TagVolumeContextBlob
98 KY_ROOT_BLOB_CLASS(NavData, TagVolumeContextBlob, 0)
101 TagVolumeContextBlob() {}
103 TagVolume::IntegrationStatus GetIntegrationStatus()
const {
return (TagVolume::IntegrationStatus)m_integrationStatus; }
104 TagVolume::WorldStatus GetWorldStatus()
const {
return (TagVolume::WorldStatus)m_worldStatus; }
113 SwapEndianness(e,
self.m_visualDebugId);
114 SwapEndianness(e,
self.m_integrationStatus);
115 SwapEndianness(e,
self.m_worldStatus);
118 class TagVolumeContextBlobBuilder :
public BaseBlobBuilder<TagVolumeContextBlob>
121 TagVolumeContextBlobBuilder(
const TagVolume* tagVolume) : m_tagVolume(tagVolume) {}
128 BLOB_SET(
m_blob->m_visualDebugId, m_tagVolume->GetVisualDebugId());
134 const TagVolume* m_tagVolume;
#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
TagVolumeExtendOptions
TagVolumeExtendOptions.
Definition: tagvolume.h:24
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
std::uint16_t KyUInt16
uint16_t
Definition: types.h:28
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
TagVolumeBlob * 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_COPY(blobArray, src, count)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:151
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68