30 KyUInt32 GetVertexToConnectCount()
const;
41 const NavGraphEdgeInfo& GetNavGraphEdgeInfo(
const NavGraphEdgeSmartIdx& edgeIdxInGraph)
const;
42 NavTagIdx GetNavGraphEdgeNavTagIdx(
const NavGraphEdgeSmartIdx& edgeIdxInGraph)
const;
45 const NavTag& GetNavTag(NavTagIdx navTagIdx)
const;
48 Box3f ComputeAABB()
const;
59 SwapEndianness(e,
self.m_visualDebugId);
60 SwapEndianness(e,
self.m_name);
61 SwapEndianness(e,
self.m_navGraphVertices);
62 SwapEndianness(e,
self.m_navTags);
63 SwapEndianness(e,
self.m_edgeCount);
64 SwapEndianness(e,
self.m_vertexToConnectCount);
67 KY_INLINE NavGraphBlob::NavGraphBlob() {}
68 KY_INLINE
bool NavGraphBlob::IsEmpty()
const {
return GetVertexCount() == 0; }
70 KY_INLINE
KyUInt32 NavGraphBlob::GetEdgeCount()
const {
return m_edgeCount; }
71 KY_INLINE
KyUInt32 NavGraphBlob::GetVertexCount()
const {
return m_navGraphVertices.GetCount(); }
72 KY_INLINE
KyUInt32 NavGraphBlob::GetVertexToConnectCount()
const {
return m_vertexToConnectCount; }
73 KY_INLINE
KyUInt32 NavGraphBlob::GetNavTagCount()
const {
return m_navTags.GetCount(); }
74 KY_INLINE
const Vec3f& NavGraphBlob::GetNavGraphVertexPosition(
NavGraphVertexIdx vertexIdx)
const {
return GetNavGraphVertex(vertexIdx).GetPosition(); }
75 KY_INLINE NavTagIdx NavGraphBlob::GetNavGraphVertexNavTagIdx(
NavGraphVertexIdx vertexIdx)
const {
return GetNavGraphVertex(vertexIdx).GetNavTagIdx(); }
78 KY_INLINE NavTagIdx NavGraphBlob::GetNavGraphEdgeNavTagIdx(
const NavGraphEdgeSmartIdx& edgeIdxInGraph)
const {
return GetNavGraphEdgeInfo(edgeIdxInGraph).m_navTagIdx; }
80 KY_INLINE
const NavGraphVertex& NavGraphBlob::GetNavGraphVertex(
NavGraphVertexIdx vertexIdx)
const
82 KY_ASSERT(vertexIdx < m_navGraphVertices.GetCount());
83 return m_navGraphVertices.GetValues()[vertexIdx];
86 KY_INLINE
const NavGraphEdgeInfo& NavGraphBlob::GetNavGraphEdgeInfo(
const NavGraphEdgeSmartIdx& edgeIdxInGraph)
const
88 return GetNavGraphVertex(edgeIdxInGraph.GetStartVertexIdx()).GetNavGraphEdgeInfo(edgeIdxInGraph.GetNeighborVertexIdx());
91 KY_INLINE
const NavTag& NavGraphBlob::GetNavTag(NavTagIdx navTagIdx)
const
93 KY_ASSERT(navTagIdx < m_navTags.GetCount());
94 return m_navTags.GetValues()[navTagIdx];
97 KY_INLINE
Kaim::Box3f NavGraphBlob::ComputeAABB()
const
100 const NavGraphVertex* vertices = m_navGraphVertices.GetValues();
101 for (
KyUInt32 i = 0; i < m_navGraphVertices.GetCount(); ++i)
103 aabb.ExpandByPos(vertices[i].m_position);
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
The NavGraphBlob contains the static data of a NavGraph.
Definition: navgraphblob.h:19
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
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
3d axis aligned box of 32bits floating points
Definition: box3f.h:16
The NavData class is the object containing navigation data that will be added to one Database...
Definition: navdata.h:39
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
3d vector using 32bits floating points.
Definition: vec3f.h:16