gwnavruntime/pathfollower/localcostawaretraverselogic.h Source File
Go to the documentation of this file.
19 class LocalCostAwareTraverseLogicData
22 LocalCostAwareTraverseLogicData() { Clear(); }
23 void Clear() { m_userTraverseLogicData =
nullptr; m_localMaxCostMultiplierOnPath = 1.0f; }
25 void* m_userTraverseLogicData;
33 template <
class UserTraverseLogic>
52 template <
class UserTraverseLogic>
57 void* userTraverseLogicData = ((LocalCostAwareTraverseLogicData*)traverseLogicUserData)->m_userTraverseLogicData;
58 return UserTraverseLogic::CanTraverseNavTag(userTraverseLogicData, navTag);
61 template <
class UserTraverseLogic>
64 LocalCostAwareTraverseLogicData* localCostAwareTraverseLogicData = (LocalCostAwareTraverseLogicData*)traverseLogicUserData;
65 KyFloat32 localCostOnPath = localCostAwareTraverseLogicData->m_localMaxCostMultiplierOnPath;
66 void* userTraverseLogicData = localCostAwareTraverseLogicData->m_userTraverseLogicData;
70 bool canTraverse = UserTraverseLogic::CanTraverseNavTag(userTraverseLogicData, navTag, &costMultiplier);
71 if (output_costMultiplier)
72 *output_costMultiplier = costMultiplier;
74 if (canTraverse ==
false)
77 if (costMultiplier > localCostOnPath)
83 template <
class UserTraverseLogic>
86 LocalCostAwareTraverseLogicData* customTraverseLogicData = (LocalCostAwareTraverseLogicData*)traverseLogicUserData;
87 return UserTraverseLogic::CanTraverseNavTriangle(customTraverseLogicData->m_userTraverseLogicData, triangle, costmultiplier);
#define KY_TRAVERSE_LOGIC(className_, costMode_, canEnterMode_)
A TraverseLogic is a full static class that implements some functions and typedef used to customize t...
Definition: traverselogic.h:34
static bool CanTraverseNavTag(void *traverseLogicUserData, const NavTag &navTag)
Only one of this function is going to be called and exist depending on UserTraverseLogic::CostMultipl...
Definition: localcostawaretraverselogic.h:53
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
static bool CanTraverseNavTriangle(void *traverseLogicUserData, const NavTriangleRawPtr &triangle, KyFloat32 *costmultiplier)
Function called when UserTraverseLogic::CostMultiplierUsage is LogicWithCostPerTriangle.
Definition: localcostawaretraverselogic.h:84
Identifies a single NavTriangle in a NavFloor.
Definition: navtrianglerawptr.h:21
LocalCostAwareTraverseLogic is a wrapper around the traverse logic set by the user.
Definition: localcostawaretraverselogic.h:34
float KyFloat32
float
Definition: types.h:32