VR-Forces 4.1.1 Class Documentation
restrictedWanderTraversal.h
Go to the documentation of this file.
1 
3 #ifndef KY_DtRestrictedWanderTraversal_H
4 #define KY_DtRestrictedWanderTraversal_H
5 
7 
8 #include <kypathdata/generic/basetypes.h>
9 #include <kyruntime/graph/astartraversal.h>
10 #include <kyruntime/graph/pointinfo_vertexsafeptr.h>
11 
12 #include <vrfobjcore/vrfObject.h>
13 
14 namespace Kaim
15 {
16  class WanderAgent;
17  class World;
18 }
19 
20 namespace BHAVE
21 {
26  class DtRestrictedWanderTraversal: public Kaim::AstarTraversal
27  {
28  public:
29  KY_DECLARE_TRAVERSAL(DtRestrictedWanderTraversal)
30 
31 
32  public:
35 
38 
40  KyResult Initialize(Kaim::TraversalManager& traversalManager, const DtRestrictedWanderTraversalConfig& config);
41 
42  virtual void Start();
43 
49  KyBool ComputeDestination();
50 
52  const Kaim::PointWrapper& GetDestination() const { return m_destination; }
53 
54  /* Not used. */
55  virtual KyBool EvaluateEdge(const Kaim::GraphEdgePtr& edge, KyFloat32& cost);
56 
60  static KyUInt32 GetCallCounter();
61 
65  KyBool SetWanderDistance(KyFloat32 distance);
66 
68  KyFloat32 GetWanderDistance() const;
69 
71  void SetPropagationAngle(KyFloat32 angle);
72 
74  KyFloat32 GetPropagationAngle() const;
75 
76  DtVrfObject* wanderArea() const { return myWanderArea; }
78  void setWanderArea(DtVrfObject* val);
79  KyBool isInsideArea(const Kaim::Vec3f& position, DtVrfObject* areaObject) const;
80 
81  protected:
85  virtual KyBool ProcessEdge(const Kaim::GraphEdgePtr& edge);
86 
95  virtual KyBool ProcessVertex(const Kaim::GraphVertexPtr& vertex);
96 
97  /* Increase the call counter */
98  virtual void UpdateCallCounter();
99 
100  KyFloat32 ComputeScore(const Kaim::Vec3f& position,
101  KyBool pointIsInsideArea, KyFloat32 sqDistance) const;
102  KyBool IsInCone(const Kaim::Vec3f& position) const;
103  KyBool IsClearPosition(const Kaim::Vec3f& position) const;
104 
106  virtual bool isShapePolyClockwise( Kaim::Vec3f* polyLineVec, unsigned size ) const;
107 
109  virtual void reverseShapePolyline( Kaim::Vec3f* polyLineVec, unsigned size ) const;
110 
114  virtual KyFloat32 getAreaSizeEstimate();
115  public:
116  Kaim::PointWrapper m_destination;
117  Kaim::PointInfo_VertexSafePtr m_destinationSafePtr;
118  KyFloat32 m_destinationScore;
119  KyFloat32 m_distance;
125 
126  protected:
128  Kaim::Vec3f myAreaCenter;
129 
133  };
134 
135 
140  class PropagationBias_RestrictedWander : public Kaim::PropagationBias
141  {
142  public:
143  KY_DECLARE_PROPAGATIONBIAS(PropagationBias_RestrictedWander)
144 
145  public:
150  virtual KyBool GetCost(Kaim::Bot* entity, const Kaim::GraphVertexPtr& position, KyFloat32& cost);
151 
153  };
154 
155 }
156 
157 #endif

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)