18 class DynamicNavFloor;
19 class NavHalfEdgeRawPtr;
20 class NavFloorToNavGraphLinks;
22 class SpatializedPoint;
24 class NavFloor1To1StitchData;
51 NavFloor* GetAssociatedStaticNavFloor()
const;
52 bool IsStaticVersion()
const;
54 const ConnectedComponentId& GetConnexConnectedComponentId(
KyUInt32 navConnexIdx)
const;
55 void SetConnexConnectedComponentId(
KyUInt32 navConnexIdx, ConnectedComponentId connectedComponentId);
58 bool HasAnUnconnectedLink()
const;
64 NavFloorToNavGraphLinks* GetNavFloorToNavGraphLinks()
const;
69 CreateConfig() : m_navFloorBlob(
nullptr), m_database(
nullptr), m_navCell(
nullptr), m_floor1To1StitchData(
nullptr) {}
74 NavFloor1To1StitchData* m_floor1To1StitchData;
78 static Ptr<NavFloor> Create(
const CreateConfig& navFloorCongig, MemoryHeap* pheap =
nullptr);
81 KyUInt32 GetIndexInCollection()
const;
82 void SetIndexInCollection(
KyUInt32 indexInCollection);
88 void RemoveAllSpatializedPoints();
90 void UnstitchStaticLinks();
92 static Ptr<NavFloor> PlaceNavFloorInBuffer(
const CreateConfig& navFloorCongig,
char* currentMemoryPlace);
98 NavFloor1To1StitchData* m_floor1To1StitchData;
101 ConnectedComponentId* m_connexConnectedComponents;
112 KyUInt16 m_idxInActiveNavFloorCollection;
118 KY_DEBUG_ASSERTN(m_navFloorBlob !=
nullptr,(
"the SizedPtr is not valid"));
119 return m_navFloorBlob;
122 KY_INLINE
KyUInt32 NavFloor::GetIndexInCollection()
const {
return m_idxInActiveNavFloorCollection; }
123 KY_INLINE
void NavFloor::SetIndexInCollection(
KyUInt32 indexInCollection) { m_idxInActiveNavFloorCollection = (
KyUInt16)indexInCollection; }
129 KY_INLINE
const ConnectedComponentId& NavFloor::GetConnexConnectedComponentId(
KyUInt32 navConnexIdx)
const {
return m_connexConnectedComponents[navConnexIdx]; }
131 KY_INLINE NavHalfEdgeRawPtr* NavFloor::GetLinksBuffer()
const {
return (NavHalfEdgeRawPtr*)((
char*)
this + m_floorLinksOffset); }
132 KY_INLINE NavFloorToNavGraphLinks* NavFloor::GetNavFloorToNavGraphLinks()
const {
return (NavFloorToNavGraphLinks*)((
char*)
this + m_graphLinksOffset); }
134 KY_INLINE
bool NavFloor::HasAnUnconnectedLink()
const {
return m_numberOfUnconnectedLink != 0; }
136 KY_INLINE
void NavFloor::SetConnexConnectedComponentId(
KyUInt32 navConnexIdx, ConnectedComponentId connectedComponentId) { m_connexConnectedComponents[navConnexIdx] = connectedComponentId; }
138 KY_INLINE
const Collection<SpatializedPoint*>& NavFloor::GetSpatializedPoints()
const {
return m_spatializedPoints; }
139 KY_INLINE
void NavFloor::AddSpatializedPoint(SpatializedPoint* spatializedPoint) { m_spatializedPoints.PushBack(spatializedPoint); }
140 KY_INLINE
void NavFloor::RemoveSpatializedPoint(SpatializedPoint* spatializedPoint) { m_spatializedPoints.RemoveFirstOccurrence(spatializedPoint); }
142 KY_INLINE
bool NavFloor::IsStaticVersion()
const {
return GetAssociatedStaticNavFloor() ==
this; }
Represents the range of altitudes covered by a single NavFloorBlob.
Definition: flooraltituderange.h:15
This class is a runtime wrapper of a NavFloorBlob, it gathers all the runtime information associated ...
Definition: navfloor.h:32
The NavFloorBlob contains a connected and not overlapping part of triangle mesh static data within a ...
Definition: navfloorblob.h:38
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
const NavFloorBlob * GetNavFloorBlob() const
Retrieves the NavFloorBlob that contains the static data for this NavFloor.
Definition: navfloor.h:116
Collection is a class which is a "Collection" of elements (not sorted, not unique) ...
Definition: collection.h:31
#define KY_REFCOUNT_MALLOC_FREE(ClassName)
Specific to RefCounting, no inheritance involved, used to make RefCount-able classes compatible with ...
Definition: memory.h:141
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
This class is a runtime wrapper of a NavCellBlob.
Definition: navcell.h:27
#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
This class is a runtime container for all NavData that represents the world from the point of view of...
Definition: database.h:57
2d vector using KyInt32
Definition: vec2i.h:18
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
void OnRemove()
Clears all information maintained by this object.
Definition: navfloor.cpp:38
#define KyUInt16MAXVAL
KyUInt16 max value
Definition: types.h:67
bool IsActive() const
This function returns true if the NavFloor has been "activated" in term of overlap, dynamic version,...
Definition: navfloor.h:126
bool IsStillLoaded() const
This function returns false if the NavData containing corresponding NavFloorBlob has been removed fro...
Definition: navfloor.h:125
SpatializedPoint is used to the NavTriangle of "object": Bot, CylinderObstacle, BoxObstacle and Point...
Definition: spatializedpoint.h:146
const CellPos & GetCellPos() const
Returns the position of this NavFloor within the grid of NavData cells.
Definition: navfloor.h:128
Each instance of this class uniquely identifies a single NavHalfEdge in a NavFloor.
Definition: navhalfedgerawptr.h:23