17 class ClientInputTagVolumeBlob;
19 class TagVolumeInitConfig;
46 const KyUInt32* blindDataBuffer = NULL,
KyUInt32 blindDataCount = 0,
Color color = DynamicNavTag::GetDefaultColor());
52 const KyUInt32* blindDataBuffer=NULL,
KyUInt32 blindDataCount=0,
Color color = DynamicNavTag::GetDefaultColor());
57 const DynamicNavTag& navTag);
62 const DynamicNavTag& navTag,
65 void InitFromBlob(
const ClientInputTagVolumeBlob& tagVolumeBlob);
77 DynamicNavTag m_navTag;
83 class ClientInputTagVolumeBlob
86 KY_ROOT_BLOB_CLASS(
Generator, ClientInputTagVolumeBlob, 0)
88 ClientInputTagVolumeBlob() : m_index(0), m_navTagIdx(
KyUInt32MAXVAL) {}
90 bool operator==(
const ClientInputTagVolumeBlob& other)
const
92 if (m_polyline.GetCount() != other.m_polyline.GetCount())
97 const Vec3f* thisPoints = m_polyline.GetValues();
98 const Vec3f* otherPoints = other.m_polyline.GetValues();
99 for (UPInt i = 0; i < m_polyline.GetCount(); ++i)
101 if (thisPoints[i] != otherPoints[i])
106 return m_navTag == other.m_navTag && m_altMax == other.m_altMax && m_altMin == other.m_altMin;
108 bool operator!=(
const ClientInputTagVolumeBlob& other)
const {
return !operator==(other); }
111 BlobArray<Vec3f> m_polyline;
120 SwapEndianness(e,
self.m_polyline);
121 SwapEndianness(e,
self.m_altMin);
122 SwapEndianness(e,
self.m_altMax);
123 SwapEndianness(e,
self.m_navTag);
124 SwapEndianness(e,
self.m_index);
125 SwapEndianness(e,
self.m_navTagIdx);
128 class ClientInputTagVolumeBlobBuilder :
public BaseBlobBuilder<ClientInputTagVolumeBlob>
131 ClientInputTagVolumeBlobBuilder(
const ClientInputTagVolume& tagVolume) : m_tagVolume(&tagVolume) {}
138 m_blob->m_altMin = m_tagVolume->m_altMin;
139 m_blob->m_altMax = m_tagVolume->m_altMax;
146 const ClientInputTagVolume* m_tagVolume;
TagVolumeInitConfig provides TagVolume initialization parameters.
Definition: tagvolume.h:34
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
This class maintains the mapping between the system of coordinate axes used by the client game engine...
Definition: coordsystem.h:119
The Generator is the principal class in the NavData generation system.
Definition: generator.h:56
General purpose array for movable objects that require explicit construction/destruction.
Definition: kyarray.h:162
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
This class represents runtime-defined volumes with customized NavTag.
Definition: tagvolume.h:119
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
Navigation return code class.
Definition: types.h:108
ClientInputTagVolumeBlob * 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
bool IsWriteMode()
Indicates whether the builder is operating in COUNT mode or in WRITE mode.
Definition: baseblobbuilder.h:43
RGBA color.
Definition: color.h:16
#define BLOB_ARRAY_COPY_2(blobArray, ky_array)
same as BLOB_ARRAY_COPY but uses Kaim::Array as input
Definition: baseblobbuilder.h:155
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16