gwnavruntime/navmesh/traverselogicobsoletechecker.h Source File
Go to the documentation of this file.
9 #ifndef Navigation_TraverseLogicObsoleteChecker_H
10 #define Navigation_TraverseLogicObsoleteChecker_H
19 class NavTriangleRawPtr;
20 class NavGraphEdgeRawPtr;
22 class LogicWithoutCostMultipler;
23 class LogicWithCostMultiplerPerNavTag;
24 class LogicWithCostMultiplerPerTriangle;
32 class TraverseLogicObsoleteChecker
38 template<class TLogic>
39 static KY_INLINE
bool HasNoObsoleteFunctions() {
return Check<TLogic>(
typename TLogic::CostMultiplierUsage()); }
44 class SimpleTraverseLogicObsoleteFuncPtr
47 bool CompareAndLog(
const SimpleTraverseLogicObsoleteFuncPtr& other);
50 bool (*m_ptrCanTraverse)(
void*,
const NavTag&);
51 KyFloat32 (*m_ptrGetCostMultiplier)(
void*,
const NavTag&);
52 bool (*m_ptrCanTraverseGraphEdgeAndGetCost)(
void*,
const Vec3f&,
const Vec3f&,
const NavTag&,
KyFloat32&);
57 template<
class TLogic>
58 static void Init(SimpleTraverseLogicObsoleteFuncPtr& funcPtr)
60 funcPtr.m_ptrCanTraverse = &TLogic::CanTraverse;
61 funcPtr.m_ptrGetCostMultiplier = &TLogic::GetCostMultiplier;
62 funcPtr.m_ptrCanTraverseGraphEdgeAndGetCost = &TLogic::CanTraverseGraphEdgeAndGetCost;
65 template<
class TLogic>
66 static bool Check(
const LogicWithoutCostMultipler&)
68 SimpleTraverseLogicObsoleteFuncPtr base;
69 Init<typename TLogic::BaseClass>(base);
71 SimpleTraverseLogicObsoleteFuncPtr derived;
72 Init<TLogic>(derived);
74 return base.CompareAndLog(derived);
80 template<
class TLogic>
81 static bool Check(
const LogicWithCostMultiplerPerNavTag&) {
return true; }
85 template<
class TLogic>
86 static bool Check(
const LogicWithCostMultiplerPerTriangle&) {
return true; }
This class is used in order to check that an inherited TraverseLogic is not implementing an obsolete ...
Definition: traverselogicobsoletechecker.h:34
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Definition: gamekitcrowddispersion.h:20
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