gwnavgeneration/generator/generatornavdatafilter.h Source File
Go to the documentation of this file.
22 class GeneratorNavDataElement;
23 class NavMeshElementManager;
26 class DynamicNavFloor;
31 class GeneratorNavDataFilter
36 GeneratorNavDataFilter(GeneratorNavDataElement& navDataElement);
38 KyResult PerformFilteringFromSeed(KyArray<Vec3f>& seedpoints);
40 KyResult PerformFilteringFromSurfaces(const
KyFloat32 minSurfaceOfConnectedComponent);
43 friend class GeneratorConnectComponentTraversal;
44 friend class NavCellCleaner_BlobBuilder;
46 enum ConnectedComponentStatus
48 ConnectedComponentStatus_NOSEED,
49 ConnectedComponentStatus_SEED
52 struct ConnectedComponentData
56 ConnectedComponentData() : m_status(ConnectedComponentStatus_NOSEED), m_surface(0.0f) {}
57 explicit ConnectedComponentData(
KyFloat32 surfaceInit) : m_status(ConnectedComponentStatus_NOSEED), m_surface(surfaceInit) {}
59 ConnectedComponentStatus m_status;
63 KyUInt32 ComputeConnectedComponent(NavMeshElement& navMeshElement);
65 void FilterConnectedComponentFromSeedPoints(
const KyArray<Vec3f>& seedpoints);
67 void FilterConnectedComponentFromOtherNavMeshInvolvedInOverlap(NavMeshElement& navMeshElement);
68 void AddAllInvolvedNavMeshInOverlapToNavMeshElementManager(KyArrayPOD<NavMeshElement*>& addedNavMeshs);
69 void RemoveAllInvolvedNavMeshInOverlapFromNavMeshElementManager(KyArrayPOD<NavMeshElement*>& addedNavMeshs);
71 void ComputeConnectedComponentSurface(NavMeshElement& navMeshElement);
73 KyResult CleanNavMeshElement(NavMeshElement& navMeshElement);
74 void BuildNewNavCell(NavMeshElement& navMeshElement,
KyUInt32 navCellIdx, KyArray<BitField>& connexFilterStatus);
75 void BuildNewFloor(DynamicNavFloor& floor, NavFloor* navFloor, BitField& connexStatus);
77 void ResizeConnectedComponentDataTableWithDefaultValue(
KyUInt32 size,
KyFloat32 defaultValue);
80 GeneratorNavDataElement* m_navDataElement;
83 NavMeshElementManager* m_navMeshElementManager;
84 KyArray<ConnectedComponentData> m_connectedComponents;
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
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32