22 KY_INLINE
KyUInt32 GetStartVertexIdx()
const {
return (
KyUInt32) (m_edgeData & 0x00000FFF) ; }
23 KY_INLINE
KyUInt32 GetEndVertexIdx()
const {
return (
KyUInt32)((m_edgeData & 0x00FFF000) >> 12); }
35 SwapEndianness(e,
self.m_edgeData);
40 class NavFloor1To1StitchDataBlob
44 NavFloor1To1StitchDataBlob()
46 m_firstIdxOfEdgeForType[0] = 0;
47 m_firstIdxOfEdgeForType[1] = 0;
48 m_firstIdxOfEdgeForType[2] = 0;
49 m_firstIdxOfEdgeForType[3] = 0;
50 m_firstIdxOfEdgeForType[4] = 0;
51 m_edgeCountForType[0] = 0;
52 m_edgeCountForType[1] = 0;
53 m_edgeCountForType[2] = 0;
54 m_edgeCountForType[3] = 0;
55 m_edgeCountForType[4] = 0;
66 BlobArray<Stitch1To1Edge> m_stitch1To1Edges;
67 BlobArray<NavVertex> m_navVertices;
68 BlobArray<KyFloat32> m_navVertexAltitudes;
72 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[0]);
73 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[1]);
74 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[2]);
75 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[3]);
76 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[4]);
77 SwapEndianness(e,
self.m_edgeCountForType[0]);
78 SwapEndianness(e,
self.m_edgeCountForType[1]);
79 SwapEndianness(e,
self.m_edgeCountForType[2]);
80 SwapEndianness(e,
self.m_edgeCountForType[3]);
81 SwapEndianness(e,
self.m_edgeCountForType[4]);
82 SwapEndianness(e,
self.m_stitch1To1Edges);
83 SwapEndianness(e,
self.m_navVertices);
84 SwapEndianness(e,
self.m_navVertexAltitudes);
88 class Stitch1To1ToHalfEdgeInFloor
92 Stitch1To1ToHalfEdgeInFloor() : m_hasDifferentLinkFromStitch1To1Edge(0) {}
94 KyUInt32 GetNavFloorLinkCount()
const {
return m_dynamicNavFloorEdgeIdx.GetCount(); }
95 KyUInt32 GetStitch1To1EdgeCount()
const {
return m_stitch1To1EdgeIdxToFirstIdx.GetCount(); }
98 BlobArray<KyUInt16> m_stitch1To1EdgeIdx;
101 BlobArray<CompactNavHalfEdgeIdx> m_dynamicNavFloorEdgeIdx;
102 BlobArray<KyUInt16> m_stitch1To1EdgeIdxToFirstIdx;
103 BlobArray<KyUInt16> m_stitch1To1EdgeIdxToCount;
104 KyUInt8 m_hasDifferentLinkFromStitch1To1Edge;
107 KY_INLINE
void SwapEndianness(
Endianness::Target e, Stitch1To1ToHalfEdgeInFloor&
self)
109 SwapEndianness(e,
self.m_stitch1To1EdgeIdx);
110 SwapEndianness(e,
self.m_dynamicNavFloorEdgeIdx);
111 SwapEndianness(e,
self.m_stitch1To1EdgeIdxToFirstIdx);
112 SwapEndianness(e,
self.m_stitch1To1EdgeIdxToCount);
113 SwapEndianness(e,
self.m_hasDifferentLinkFromStitch1To1Edge);
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
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
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
NavHalfEdgeType
Enumerates the possible types of boundary that can be represented by a NavHalfEdge.
Definition: navmeshtypes.h:49
std::uint8_t KyUInt8
uint8_t
Definition: types.h:27