17 enum NavGraphEdgeDirection
19 NAVGRAPHEDGE_MONODIRECTIONAL = 0,
20 NAVGRAPHEDGE_BIDIRECTIONAL = 1
29 static const NavGraphVertexType NavGraphVertexType_Unset = 0;
30 static const NavGraphVertexType NavGraphVertexType_InGraphVertex = 1;
31 static const NavGraphVertexType NavGraphVertexType_AddedVertexForFromOutsideLink = 2;
35 typedef KyInt32 NavGraphIdxInActiveData;
36 static const NavGraphIdxInActiveData NavGraphIdxInActiveData_Invalid =
KyInt32MAXVAL;
38 typedef KyUInt16 CompactNavGraphVertexIdx;
39 static const CompactNavGraphVertexIdx CompactNavGraphVertexIdx_MAXVAL = 0xFFFF;
41 typedef KyUInt16 CompactNavGraphNeighborIdx;
42 static const CompactNavGraphNeighborIdx CompactNavGraphNeighborIdx_MAXVAL = 0xFFFF;
48 struct NavGraphEdgeSmartIdx
52 NavGraphEdgeSmartIdx() : m_startVertexIdx(CompactNavGraphVertexIdx_MAXVAL), m_neighborIdx(CompactNavGraphNeighborIdx_MAXVAL) {}
53 NavGraphEdgeSmartIdx(
const NavGraphEdgeSmartIdx& smartIdx) : m_startVertexIdx(smartIdx.m_startVertexIdx), m_neighborIdx(smartIdx.m_neighborIdx) {}
54 NavGraphEdgeSmartIdx(NavGraphVertexIdx startVertexIdx,
KyUInt32 neighborIdx) : m_startVertexIdx((CompactNavGraphVertexIdx)startVertexIdx), m_neighborIdx((CompactNavGraphNeighborIdx)neighborIdx) {}
59 bool operator < (
const NavGraphEdgeSmartIdx& rhs)
const;
60 bool operator ==(
const NavGraphEdgeSmartIdx& rhs)
const;
62 NavGraphVertexIdx GetStartVertexIdx()
const;
63 KyUInt32 GetNeighborVertexIdx()
const;
65 CompactNavGraphVertexIdx m_startVertexIdx;
66 CompactNavGraphNeighborIdx m_neighborIdx;
69 KY_INLINE NavGraphVertexIdx NavGraphEdgeSmartIdx::GetStartVertexIdx()
const {
return (NavGraphVertexIdx)m_startVertexIdx; }
70 KY_INLINE
KyUInt32 NavGraphEdgeSmartIdx::GetNeighborVertexIdx()
const {
return (
KyUInt32)m_neighborIdx; }
71 KY_INLINE
bool NavGraphEdgeSmartIdx::IsValid()
const {
return m_startVertexIdx != CompactNavGraphVertexIdx_MAXVAL && m_neighborIdx != CompactNavGraphNeighborIdx_MAXVAL;}
72 KY_INLINE
void NavGraphEdgeSmartIdx::Invalidate() { m_startVertexIdx = CompactNavGraphVertexIdx_MAXVAL; m_neighborIdx = CompactNavGraphNeighborIdx_MAXVAL; }
74 KY_INLINE
bool NavGraphEdgeSmartIdx::operator < (
const NavGraphEdgeSmartIdx& rhs)
const
76 return GetStartVertexIdx() < rhs.GetStartVertexIdx() || (GetStartVertexIdx() == rhs.GetStartVertexIdx() && GetNeighborVertexIdx() < rhs.GetNeighborVertexIdx());
78 KY_INLINE
bool NavGraphEdgeSmartIdx::operator ==(
const NavGraphEdgeSmartIdx& rhs)
const
80 return GetStartVertexIdx() == rhs.GetStartVertexIdx() && GetNeighborVertexIdx() == rhs.GetNeighborVertexIdx();
KyUInt16 NavGraphVertexLinkType
Defines a type for a tag that determines whether or not a vertex in a NavGraph should be connected to...
Definition: navgraphtypes.h:24
KyUInt32 NavGraphVertexIdx
An index that uniquely identifies a single vertex within the set of vertices owned by a NavGraph...
Definition: navgraphtypes.h:45
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
static const NavGraphVertexLinkType NavGraphVertexLinkType_LinkToNavMesh
Indicates that this vertex should be connected to the NavMesh. If the vertex is outside, we try to link it inside.
Definition: navgraphtypes.h:26
static const NavGraphVertexIdx NavGraphVertexIdx_Invalid
Represents an invalid NavGraphVertexIdx.
Definition: navgraphtypes.h:46
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
static const NavGraphVertexLinkType NavGraphVertexLinkType_NoLink
Indicates that this vertex should not be connected to the NavMesh.
Definition: navgraphtypes.h:25
std::uint16_t KyUInt16
uint16_t
Definition: types.h:28
#define KyInt32MAXVAL
KyInt32 max value
Definition: types.h:60
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
std::int32_t KyInt32
int32_t
Definition: types.h:24