9 #ifndef Navigation_NavFloorLinkInfo_H
10 #define Navigation_NavFloorLinkInfo_H
24 KY_INLINE
KyUInt32 GetStartVertexIdx()
const {
return (
KyUInt32) (m_edgeData & 0x00000FFF) ; }
25 KY_INLINE
KyUInt32 GetEndVertexIdx()
const {
return (
KyUInt32)((m_edgeData & 0x00FFF000) >> 12); }
37 SwapEndianness(e,
self.m_edgeData);
42 class NavFloor1To1StitchDataBlob
46 NavFloor1To1StitchDataBlob()
48 m_firstIdxOfEdgeForType[0] = 0;
49 m_firstIdxOfEdgeForType[1] = 0;
50 m_firstIdxOfEdgeForType[2] = 0;
51 m_firstIdxOfEdgeForType[3] = 0;
52 m_firstIdxOfEdgeForType[4] = 0;
53 m_edgeCountForType[0] = 0;
54 m_edgeCountForType[1] = 0;
55 m_edgeCountForType[2] = 0;
56 m_edgeCountForType[3] = 0;
57 m_edgeCountForType[4] = 0;
68 BlobArray<Stitch1To1Edge> m_stitch1To1Edges;
69 BlobArray<NavVertex> m_navVertices;
70 BlobArray<KyFloat32> m_navVertexAltitudes;
74 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[0]);
75 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[1]);
76 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[2]);
77 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[3]);
78 SwapEndianness(e,
self.m_firstIdxOfEdgeForType[4]);
79 SwapEndianness(e,
self.m_edgeCountForType[0]);
80 SwapEndianness(e,
self.m_edgeCountForType[1]);
81 SwapEndianness(e,
self.m_edgeCountForType[2]);
82 SwapEndianness(e,
self.m_edgeCountForType[3]);
83 SwapEndianness(e,
self.m_edgeCountForType[4]);
84 SwapEndianness(e,
self.m_stitch1To1Edges);
85 SwapEndianness(e,
self.m_navVertices);
86 SwapEndianness(e,
self.m_navVertexAltitudes);
90 class Stitch1To1ToHalfEdgeInFloor
94 Stitch1To1ToHalfEdgeInFloor() : m_hasDifferentLinkFromStitch1To1Edge(0) {}
96 KyUInt32 GetNavFloorLinkCount()
const {
return m_dynamicNavFloorEdgeIdx.GetCount(); }
97 KyUInt32 GetStitch1To1EdgeCount()
const {
return m_stitch1To1EdgeIdxToFirstIdx.GetCount(); }
100 BlobArray<KyUInt16> m_stitch1To1EdgeIdx;
103 BlobArray<CompactNavHalfEdgeIdx> m_dynamicNavFloorEdgeIdx;
104 BlobArray<KyUInt16> m_stitch1To1EdgeIdxToFirstIdx;
105 BlobArray<KyUInt16> m_stitch1To1EdgeIdxToCount;
106 KyUInt8 m_hasDifferentLinkFromStitch1To1Edge;
109 KY_INLINE
void SwapEndianness(
Endianness::Target e, Stitch1To1ToHalfEdgeInFloor&
self)
111 SwapEndianness(e,
self.m_stitch1To1EdgeIdx);
112 SwapEndianness(e,
self.m_dynamicNavFloorEdgeIdx);
113 SwapEndianness(e,
self.m_stitch1To1EdgeIdxToFirstIdx);
114 SwapEndianness(e,
self.m_stitch1To1EdgeIdxToCount);
115 SwapEndianness(e,
self.m_hasDifferentLinkFromStitch1To1Edge);
120 #endif //Navigation_NavFloorLinkInfo_H
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
unsigned char KyUInt8
Type used internally to represent an unsigned 8-bit integer.
Definition: types.h:41
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
unsigned short KyUInt16
Type used internally to represent an unsigned 16-bit integer.
Definition: types.h:40
NavHalfEdgeType
Enumerates the possible types of boundary that can be represented by a NavHalfEdge.
Definition: navmeshtypes.h:52
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36