00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CEL_PF_PATHFNDER__
00021 #define __CEL_PF_PATHFINDER__
00022
00023 #include "cstypes.h"
00024 #include "csutil/scf.h"
00025 #include "physicallayer/entity.h"
00026
00027 struct iPcLinearMovement;
00028 struct iPcSteer;
00029 struct iCelPath;
00030 struct iCelGraph;
00031
00057 struct iPcPathFinder : public virtual iBase
00058 {
00059 SCF_INTERFACE (iPcPathFinder, 1, 0, 0);
00060
00081 virtual bool Seek (iSector* sector, const csVector3& position) = 0;
00082
00083 virtual bool Wander (size_t distance) = 0;
00084
00085 virtual bool Pursue (iCelEntity* target, float max_prediction)=0;
00086
00087 virtual bool FollowCyclicPath (iCelPath* path)=0;
00088
00089 virtual bool FollowOneWayPath (iCelPath* path)=0;
00090
00091 virtual bool FollowTwoWayPath (iCelPath* path)=0;
00092
00097 virtual void Interrupt () = 0;
00098
00099 virtual void SetDelayRecheck (int delay) = 0;
00100
00101 virtual void SetMinDistance (int distance) = 0;
00102
00103 virtual const csVector3& GetPosition () const = 0;
00104
00105 virtual void StopTracking () = 0;
00106
00107 virtual bool IsActive () = 0;
00108
00109 virtual void SetGraph (iCelGraph* graph) = 0;
00110 };
00111
00112 #endif // __CEL_PF_PATHFINDER__
00113