gwnavruntime/world/navigationprofile.h Source File

navigationprofile.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 // primary contact: GUAL - secondary contact: NONE
8 #ifndef Navigation_NavigationProfile_H
9 #define Navigation_NavigationProfile_H
10 
18 #include "gwnavruntime/world/bot.h"
19 
20 namespace Kaim
21 {
22 
29 template<class TLogic>
30 class NavigationProfile : public BaseNavigationProfile
31 {
32 public:
33  typedef TLogic TraverseLogic;
34 
35  virtual Ptr<BaseAStarQuery> CreateAStarQuery();
36  virtual Ptr<BasePathProgressComputer> GetSharedPathProgressComputer();
37  virtual Ptr<IPathEventListObserver> GetSharedPathEventListObserver();
38  virtual Ptr<IPositionOnPathValidator> GetSharedPositionOnPathValidator();
39  virtual Ptr<Trajectory> CreateTrajectory(Bot* bot);
40  virtual Ptr<IAvoidanceComputer> GetSharedAvoidanceComputer();
41  virtual Ptr<IAvoidanceSolver> GetSharedAvoidanceSolver();
42  virtual Ptr<IAvoidanceFilter> GetSharedAvoidanceFilter();
43  virtual Ptr<BaseRayCanGoQuery> CreateRayCanGoQuery();
44 
45  virtual Vec3f ComputeMoveOnNavMesh(Bot* bot, const Vec3f& velocity, KyFloat32 simulationTimeInSeconds);
46 
47 public: // internal
48  virtual bool HasTraverseLogicNoObsoleteFunctions() const;
49 
50 public:
51  Ptr<PathProgressComputer<TraverseLogic> > m_pathProgressComputer;
52  Ptr<DefaultPathEventListObserver> m_defaultPathEventListObserver;
53  Ptr<PositionOnPathCheckPointValidator> m_positionOnPathCheckPointValidator;
54  Ptr<AvoidanceComputer> m_avoidanceComputer;
55  Ptr<AvoidanceSolver<TraverseLogic> > m_avoidanceSolver;
56  // No IAvoidanceFilter by default
57 };
58 
59 
61 class DefaultNavigationProfile : public NavigationProfile<DefaultTraverseLogic>
62 {
63 };
64 
65 }
66 
68 
69 #endif
This class is the world element that represent an active character in Gameware Navigation.
Definition: bot.h:150
virtual Ptr< IAvoidanceComputer > GetSharedAvoidanceComputer()
AvoidanceComputer::Compute() is called in Trajectory::Compute()
Definition: navigationprofile.inl:66
BaseNavigationProfile and its derivation NavigationProfile is a class that simplifies ...
Definition: navigationprofile.h:35
virtual Ptr< IAvoidanceSolver > GetSharedAvoidanceSolver()
AvoidanceSolver::Solve() is called in the AvoidanceComputer.
Definition: navigationprofile.inl:78
virtual Ptr< BasePathProgressComputer > GetSharedPathProgressComputer()
BasePathProgressComputer::Update() is called in Bot::UpdatePathFollowing()
Definition: navigationprofile.inl:29
virtual Ptr< Trajectory > CreateTrajectory(Bot *bot)
Trajectory::Compute() is called in Bot::UpdatePathFollowing() after BasePathProgressComputer::Update(...
Definition: navigationprofile.inl:57
Definition: gamekitcrowddispersion.h:20
DefaultNavigationProfile.
Definition: navigationprofile.h:71
virtual Ptr< IAvoidanceFilter > GetSharedAvoidanceFilter()
IAvoidanceFilter::Filter() is called in the AvoidanceComputer.
Definition: navigationprofile.inl:86
virtual Ptr< IPathEventListObserver > GetSharedPathEventListObserver()
IPathEventListObserver is called in BasePathProgressComputer::Update()
Definition: navigationprofile.inl:41
virtual Ptr< IPositionOnPathValidator > GetSharedPositionOnPathValidator()
IPositionOnPathValidator is called in BasePathProgressComputer::Update()
Definition: navigationprofile.inl:49
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43
This class defines a three-dimensional vector whose coordinates are stored using floating-point numbe...
Definition: vec3f.h:23