struct IAIPathFinder { };
IPathfinder.h
virtual ~IAIPathFinder();
virtual void CancelAnyPathsFor(IAIPathAgent* pRequester, bool actorRemoved = false) = 0;
virtual void CancelCurrentRequest() = 0;
virtual INavPath * CreateEmptyPath() const = 0;
virtual IPathFollower * CreatePathFollower(const PathFollowerParams & params) const = 0;
virtual void FlushPathQueue() = 0;
virtual Vec3 GetBestPosition(const PathfindingHeuristicProperties & heuristic, float maxCost, const Vec3 & startPos, const Vec3 & endPos, unsigned startHintIndex, IAISystem::tNavCapMask navCapMask) = 0;
virtual const INavPath * GetCurrentPath() const = 0;
virtual const PathfindRequest * GetPathfindCurrentRequest() const = 0;
virtual bool IsFindingPathFor(const IAIPathAgent * pRequester) const = 0;
virtual bool IsPathQueueEmpty() const = 0;
virtual void RegisterPathFinderListener(IAIPathFinderListerner* pListener) = 0;
virtual void RequestPathInDirection(const Vec3 & start, const Vec3 & pos, float maxDist, IAIPathAgent * pRequester, float endDistance) = 0;
virtual void RequestPathTo(const Vec3 & start, const Vec3 & end, const Vec3 & endDir, IAIPathAgent * pRequester, bool allowDangerousDestination, int forceTargetBuildingId, float endTol, float endDistance) = 0;
virtual void RequestPathTo(uint32 startIndex, uint32 endIndex, const Vec3 & endDir, IAIPathAgent * pRequester, bool allowDangerousDestination, int forceTargetBuildingId, float endTol, float endDistance) = 0;
virtual int RequestRawPathTo(const Vec3 & start, const Vec3 & end, float passRadius, IAISystem::tNavCapMask navCapMask, unsigned& lastNavNode, bool allowDangerousDestination, float endTol, const PathfindingExtraConstraints & constraints, IAIPathAgent * pReference = 0) = 0;
virtual void RescheduleCurrentPathfindRequest() = 0;
virtual void Reset(IAISystem::EResetReason reason) = 0;
virtual void UnregisterPathFinderListener(IAIPathFinderListerner* pListener) = 0;