3 #ifndef KY_DtRestrictedWanderTraversal_H
4 #define KY_DtRestrictedWanderTraversal_H
8 #include <kypathdata/generic/basetypes.h>
9 #include <kyruntime/graph/astartraversal.h>
10 #include <kyruntime/graph/pointinfo_vertexsafeptr.h>
50 KyBool ComputeDestination();
56 virtual KyBool EvaluateEdge(
const Kaim::GraphEdgePtr& edge, KyFloat32& cost);
61 static KyUInt32 GetCallCounter();
66 KyBool SetWanderDistance(KyFloat32
distance);
69 KyFloat32 GetWanderDistance()
const;
72 void SetPropagationAngle(KyFloat32 angle);
75 KyFloat32 GetPropagationAngle()
const;
80 KyBool isInsideArea(
const Kaim::Vec3f& position,
DtVrfObject* areaObject)
const;
86 virtual KyBool ProcessEdge(
const Kaim::GraphEdgePtr& edge);
96 virtual KyBool ProcessVertex(
const Kaim::GraphVertexPtr& vertex);
99 virtual void UpdateCallCounter();
101 KyFloat32 ComputeScore(
const Kaim::Vec3f& position,
102 KyBool pointIsInsideArea, KyFloat32 sqDistance)
const;
103 KyBool IsInCone(
const Kaim::Vec3f& position)
const;
104 KyBool IsClearPosition(
const Kaim::Vec3f& position)
const;
107 virtual bool isShapePolyClockwise( Kaim::Vec3f* polyLineVec,
unsigned size )
const;
110 virtual void reverseShapePolyline( Kaim::Vec3f* polyLineVec,
unsigned size )
const;
115 virtual KyFloat32 getAreaSizeEstimate();
151 virtual KyBool
GetCost(Kaim::Bot* entity,
const Kaim::GraphVertexPtr& position, KyFloat32& cost);