8 #ifndef Navigation_TargetOnPathComputer_H
9 #define Navigation_TargetOnPathComputer_H
27 enum ComputeTargetOnPathResult
29 KeepCurrentTarget = 0,
34 enum ComputeTargetOnPathSearchControl
52 template <
class TraverseLogic>
53 class TargetOnPathComputer
61 static bool IsComputationRequiredThisFrame(
Bot* bot,
KyFloat32 simulationTimeInSeconds, TargetOnPath& targetOnPath);
65 KyResult ComputeTargetOnPath(
Bot* bot, TargetOnPath& targetOnPath,
KyFloat32 simulationTimeInSeconds, ComputeTargetOnPathSearchControl forwardSearchControl);
73 InvalidCandidate_CanGoArrivedInWrongFloor,
74 InvalidCandidate_CanGoFailure,
75 InvalidCandidate_TooFarFromBot
78 KyResult ComputeWhenNotOnMesh(
Bot* bot, TargetOnPath& targetOnPath,
KyFloat32 simulationTimeInSeconds, ComputeTargetOnPathSearchControl forwardSearchControl);
79 KyResult ComputeWhenOnMesh(
const Bot* bot, TargetOnPath& targetOnPath,
KyFloat32 simulationTimeInSeconds,
KyFloat32 costFromBotToTOP,
PathEdgeType currentEdgeType, ComputeTargetOnPathSearchControl forwardSearchControl);
81 ComputeTargetOnPathResult Shortcut(
const Bot* bot, TargetOnPath& targetOnPath,
KyFloat32 simulationTimeInSeconds,
KyFloat32 costFromBotToTOP,
PathEdgeType currentEdgeType);
82 KyResult MakeSureTargetOnPathIsVisibleAndGetCostFromBotToTOP(
const Bot* bot, TargetOnPath& targetOnPath,
KyFloat32& costFromBotToTOP);
83 KyResult CheckTargetOnPathIsVisibleAndGetCostFromBotToTOP(
const Bot* bot, TargetOnPath& targetOnPath,
KyFloat32& costFromBotToTOP);
84 KyResult FindVisibleTargetOnPathBackwardWithCost(
const Bot* bot, TargetOnPath& targetOnPath,
KyFloat32& costFromBotToTOP);
85 ComputeTargetOnPathSearchControl ShortcutOnNextSample(
const Bot* bot,
KyFloat32 simulationTimeInSeconds,
ScopedDisplayList& displayList, TargetOnPath& candidate, TargetOnPath& bestCandidate,
KyFloat32& costToBest);
92 KyResult ComputeTargetOnPathOnNavMeshOnly(
const Bot* bot, TargetOnPath& targetOnPath,
KyFloat32 simulationTimeInSeconds, ComputeTargetOnPathSearchControl forwardSearchControl);
96 LocalCostAwareTraverseLogicData m_localCostAwareTraverseLogicData;
104 #endif // Navigation_TargetOnPathComputer_H
This class is the world element that represent an active character in Gameware Navigation.
Definition: bot.h:150
KyInt32 KyResult
Defines a type that can be returned by methods or functions in the Gameware Navigation SDK to indicat...
Definition: types.h:254
This class updates Bot's target on path so that:
Definition: targetonpathcomputer.h:56
The RayCanGoQuery class tests whether or not a ray (with a width of 0) can pass along a straight line...
Definition: raycangoquery.h:24
RayCanGoMarginMode
Defines the different mode for the NavMesh border margin to be used in RayCanGo queries.
Definition: database.h:41
Definition: gamekitcrowddispersion.h:20
LocalCostAwareTraverseLogic is a wrapper around the traverse logic set by the user.
Definition: localcostawaretraverselogic.h:37
ScopedDisplayList is used to push text, lines or shapes for rendering in the NavigationLab e...
Definition: displaylist.h:136
PathEdgeType
Defines the different kind of PathEdge within a Path.
Definition: path.h:26
Each instance of this class uniquely identifies a single NavTriangle in a NavFloor.
Definition: navtriangleptr.h:22
Set of parameters used by the ShortcutTrajectory and TargetOnPathComputer classes to update Bot targe...
Definition: shortcuttrajectoryconfig.h:109
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