9 #ifndef Navigation_TagVolumeBlob_H
10 #define Navigation_TagVolumeBlob_H
22 KY_ROOT_BLOB_CLASS(NavData, TagVolumeBlob, 106)
27 bool operator==(
const TagVolumeBlob& other)
const
29 if ((m_points.GetCount() != other.m_points.GetCount()) ||
30 (m_aabb != other.m_aabb) ||
31 (m_obstacleType != other.m_obstacleType) ||
32 (m_navTag != other.m_navTag))
37 const Vec2f* thisPoints = m_points.GetValues();
38 const Vec2f* otherPoints = other.m_points.GetValues();
39 for (
KyUInt32 i = 0; i < m_points.GetCount(); ++i)
41 if (thisPoints[i] != otherPoints[i])
47 bool operator!=(
const TagVolumeBlob& other)
const {
return !operator==(other); }
49 TagVolume::ObstacleType GetObstacleType()
const {
return (TagVolume::ObstacleType)m_obstacleType; }
53 BlobArray<Vec2f> m_points;
59 DatabaseBindingBlob m_databaseBindings;
64 SwapEndianness(e,
self.m_visualDebugId);
65 SwapEndianness(e,
self.m_points);
66 SwapEndianness(e,
self.m_aabb);
67 SwapEndianness(e,
self.m_obstacleType);
68 SwapEndianness(e,
self.m_tagVolumeExtendOptions);
69 SwapEndianness(e,
self.m_navTag);
70 SwapEndianness(e,
self.m_navTagIdx);
71 SwapEndianness(e,
self.m_databaseBindings);
74 class TagVolumeBlobBuilder :
public BaseBlobBuilder<TagVolumeBlob>
77 TagVolumeBlobBuilder(
const TagVolume* tagVolume) : m_tagVolume(tagVolume) {}
84 BLOB_SET(
m_blob->m_visualDebugId, m_tagVolume->GetVisualDebugId());
90 BLOB_BUILD(
m_blob->m_databaseBindings, DatabaseBindingBlobBuilder(m_tagVolume->GetDatabaseBinding()));
94 const TagVolume* m_tagVolume;
97 class TagVolumeContextBlob
100 KY_ROOT_BLOB_CLASS(NavData, TagVolumeContextBlob, 0)
103 TagVolumeContextBlob() {}
105 TagVolume::IntegrationStatus GetIntegrationStatus()
const {
return (TagVolume::IntegrationStatus)m_integrationStatus; }
106 TagVolume::WorldStatus GetWorldStatus()
const {
return (TagVolume::WorldStatus)m_worldStatus; }
115 SwapEndianness(e,
self.m_visualDebugId);
116 SwapEndianness(e,
self.m_integrationStatus);
117 SwapEndianness(e,
self.m_worldStatus);
120 class TagVolumeContextBlobBuilder :
public BaseBlobBuilder<TagVolumeContextBlob>
123 TagVolumeContextBlobBuilder(
const TagVolume* tagVolume) : m_tagVolume(tagVolume) {}
130 BLOB_SET(
m_blob->m_visualDebugId, m_tagVolume->GetVisualDebugId());
136 const TagVolume* m_tagVolume;
141 #endif // Navigation_TagVolumeBlob_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
TagVolumeExtendOptions
Definition: tagvolume.h:28
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
TagVolumeBlob * m_blob
The blob maintained by this builder. Only modify using the macros listed under DoBuild().
Definition: baseblobbuilder.h:117
Definition: gamekitcrowddispersion.h:20
unsigned short KyUInt16
Type used internally to represent an unsigned 16-bit integer.
Definition: types.h:40
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
#define BLOB_ARRAY_COPY(blobArray, src, count)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:161
#define KyUInt32MAXVAL
The maximum value that can be stored in the KyUInt32 variable type.
Definition: types.h:226