gwnavruntime/blob/blobtypes.h Source File
Go to the documentation of this file.
29 enum NavigationCategories
32 Blob_Navigation_NavData = 0,
33 Blob_Navigation_Runtime = 1,
34 Blob_Navigation_VisualDebug = 2,
35 Blob_Navigation_VisualDebugMessage = 3,
36 Blob_Navigation_Generator = 4,
37 Blob_Navigation_Aggregate = 5,
38 Blob_Navigation_Query = 6,
39 Blob_Navigation_CollisionData = 7,
48 static KyUInt32 GetMask() {
return 0xFF; }
49 static KyUInt32 GetCategoryBitShift() {
return 8; }
50 static KyUInt32 GetNameSpaceBitShift() {
return 16; }
53 static KyUInt32 GetBlobEnum(
KyUInt32 blobTypeId) {
return blobTypeId & GetMask(); }
54 static KyUInt32 GetCategoryEnum(
KyUInt32 blobTypeId) {
return (blobTypeId >> GetCategoryBitShift() ) & GetMask(); }
55 static KyUInt32 GetNameSpaceEnum(
KyUInt32 blobTypeId) {
return (blobTypeId >> GetNameSpaceBitShift()) & GetMask(); }
60 return (nameSpaceEnum << GetNameSpaceBitShift()) | (categoryEnum << GetCategoryBitShift()) | blobEnum;
65 return BuildBlobTypeId(nameSpaceEnum, categoryEnum, 0);
70 return BuildBlobTypeId(nameSpaceEnum, 0, 0);
73 static KyUInt32 GetCategoryId(
KyUInt32 blobTypeId) {
return blobTypeId & 0x00FFFF00; }
74 static KyUInt32 GetNameSpaceId(
KyUInt32 blobTypeId) {
return blobTypeId & 0x00FF0000; }
77 #define KY_NAMESPACE_ROOT_BLOB_CLASS(blob_namespace, blob_category, blob_class_name, blob_version) \
79 static KyUInt32 GetBlobTypeId() \
81 return Kaim::BlobTypeIdUtils::BuildBlobTypeId( \
82 Kaim::Blob_##blob_namespace, \
83 Blob_##blob_namespace##_##blob_category, \
84 Blob_##blob_namespace##_##blob_category##_##blob_class_name); \
86 static const char* GetBlobTypeName() { return #blob_class_name; } \
87 static KyUInt32 GetBlobTypeVersion() { return blob_version; } \
91 #define KY_ROOT_BLOB_CLASS(blob_category, blob_class_name, blob_version) \
92 KY_NAMESPACE_ROOT_BLOB_CLASS(Navigation, blob_category, blob_class_name, blob_version)
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17