34 #define KY_TRAVERSE_LOGIC(className_, costMode_, canEnterMode_) \
37 KY_CLASS_WITHOUT_COPY(className_) \
38 typedef className_<canEnterMode_> BaseClass; \
40 typedef costMode_ CostMultiplierUsage; \
41 typedef canEnterMode_ CanEnterNavTagMode; \
47 class NavTriangleRawPtr;
48 class NavGraphEdgeRawPtr;
72 template <
class TCanEnterNavTagMode = LogicDoNotUseCanEnterNavTag>
94 template <
class TCanEnterNavTagMode>
116 template <
class TCanEnterNavTagMode>
static bool CanTraverseNavGraphEdge(void *, const NavGraphEdgeRawPtr &, KyFloat32 *)
Must return true if graphEdge is allowed.
Definition: traverselogic.h:129
static bool CanTraverseNavTag(void *, const NavTag &)
Called when the propagation traverses a different navTag than the the current one. Must return true if the navTag is allowed.
Definition: traverselogic.h:78
SimpleTraverseLogic defines the functions called when the customization is simply: navTag is allowed ...
Definition: traverselogic.h:73
static bool CanEnterNavTag(void *, const NavTag &, const NavTag &, const Vec3f &)
Called if TCanEnterNavTagMode==LogicDoUseCanEnterNavTag. Must return true when traversing from exitNa...
Definition: traverselogic.h:110
static KyFloat32 GetHeuristicFromDistanceToDest(void *, KyFloat32 distance3dToDestination)
Called for each node in AstarQuery.
Definition: traverselogic.h:107
static bool CanTraverseNavTriangle(void *, const NavTriangleRawPtr &, KyFloat32 *)
Must return true if triangle is allowed.
Definition: traverselogic.h:124
Each instance of this class uniquely identifies a single NavGraphEdge in a NavGraph.
Definition: navgraphedgerawptr.h:26
TraverseLogicWithCostPerNavTag defines the functions called when cost customization is per NavTag...
Definition: traverselogic.h:95
static KyFloat32 GetHeuristicFromDistanceToDest(void *, KyFloat32 distance3dToDestination)
Called for each node in AstarQuery.
Definition: traverselogic.h:134
#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 CanEnterNavTag(void *, const NavTag &, const NavTag &, const Vec3f &)
Called if TCanEnterNavTagMode==LogicDoUseCanEnterNavTag. Must return true when traversing from exitNa...
Definition: traverselogic.h:84
Tag type used for function overloading in templates.
Definition: traverselogic.h:69
static KyFloat32 GetHeuristicFromDistanceToDest(void *, KyFloat32 distance3dToDestination)
Called for each node in AstarQuery. Must return the approximate cost of moving the specified cost tow...
Definition: traverselogic.h:81
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Tag type used for function overloading in templates.
Definition: traverselogic.h:59
Identifies a single NavTriangle in a NavFloor.
Definition: navtrianglerawptr.h:21
TraverseLogicWithCostPerTriangle defines the functions called when cost customization is per primitiv...
Definition: traverselogic.h:117
static bool CanEnterNavTag(void *, const NavTag &, const NavTag &, const Vec3f &)
Called if TCanEnterNavTagMode==LogicDoUseCanEnterNavTag. Must return true when traversing from exitNa...
Definition: traverselogic.h:137
Tag type used for function overloading in templates.
Definition: traverselogic.h:64
Tag type used for function overloading in templates. It will be set as a nested typedef in CustomTrav...
Definition: traverselogic.h:54
static bool CanTraverseNavTag(void *, const NavTag &, KyFloat32 *)
Called when the propagation traverses a different navTag than the the current one.
Definition: traverselogic.h:102
Tag type used for function overloading in templates. It will be set as a nested typedef in CustomTrav...
Definition: traverselogic.h:51
SimpleTraverseLogic with TCanEnterNavTagMode = LogicDoNotUseCanEnterNavTag.
Definition: traverselogic.h:88
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16