91 template <
class TLogic>
92 bool CanBeTraversed(
void* traverseLogicUserData,
KyFloat32* costMultiplier =
nullptr)
const
94 return CanBeTraversed<TLogic>(traverseLogicUserData, costMultiplier,
typename TLogic::CostMultiplierUsage());
98 template <
class TLogic>
99 bool CanBeTraversed(
void* traverseLogicUserData,
KyFloat32* ,
const LogicWithNoCustomCost&)
const
101 return TLogic::CanTraverseNavTag(traverseLogicUserData,
GetNavTag());
104 template <
class TLogic>
105 bool CanBeTraversed(
void* traverseLogicUserData,
KyFloat32* costMultiplier,
const LogicWithCostPerNavTag&)
const
107 if (costMultiplier !=
nullptr)
108 *costMultiplier = 1.0f;
109 return TLogic::CanTraverseNavTag(traverseLogicUserData,
GetNavTag(), costMultiplier);
112 template <
class TLogic>
113 bool CanBeTraversed(
void* traverseLogicUserData,
KyFloat32* costMultiplier,
const LogicWithCostPerTriangle&)
const
115 if (costMultiplier !=
nullptr)
116 *costMultiplier = 1.0f;
117 return TLogic::CanTraverseNavTriangle(traverseLogicUserData, *
this, costMultiplier);
void GetVerticesPos3f(Vec3f &A, Vec3f &B, Vec3f &C) const
Get the triangle Navigation world coordinates.
Definition: navtrianglerawptr.cpp:14
KyUInt32 NavTriangleIdx
An index that uniquely identifies a single triangle within the set of triangles owned by a NavFloor...
Definition: navmeshtypes.h:97
This class is a runtime wrapper of a NavFloorBlob, it gathers all the runtime information associated ...
Definition: navfloor.h:32
The NavFloorBlob contains a connected and not overlapping part of triangle mesh static data within a ...
Definition: navfloorblob.h:38
const CellPos & GetCellPos() const
Returns a const reference to the CellPos that indicates the position of the cell that contains this N...
Definition: navfloorrawptr.h:77
3d triangle of 32bits floating points
Definition: triangle3f.h:15
const NavFloorBlob * GetNavFloorBlob() const
Returns a reference to the NavFloorBlob that contains this triangle.
Definition: navtrianglerawptr.h:68
const CellPos & GetCellPos() const
Returns the triangle NavCell 2d position.
Definition: navtrianglerawptr.h:71
void Set(const NavFloorRawPtr &navFloorRawPtr, NavTriangleIdx triangleIdx)
Init from NavFloorRawPtr.
Definition: navtrianglerawptr.h:38
NavTriangleIdx GetTriangleIdx() const
Returns the index of the triangle within its NavFloor.
Definition: navtrianglerawptr.h:60
const NavFloorBlob * GetNavFloorBlob() const
Returns a reference to the NavFloor identified by this object.
Definition: navfloorrawptr.h:76
NavFloor * GetNavFloor() const
Returns a reference to the NavFloor identified by this object.
Definition: navfloorrawptr.h:75
2d vector using KyInt64
Definition: vec2ll.h:18
NavFloorRawPtr m_navFloorRawPtr
The NavFloor that contains this triangle.
Definition: navtrianglerawptr.h:121
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
void GetVerticesPos3f(Triangle3f &triangle3f) const
Get the triangle world floating point 3d coordinates.
Definition: navtrianglerawptr.h:80
void Set(NavFloor *navFloor, NavTriangleIdx triangleIdx)
Init from a NavFloor*.
Definition: navtrianglerawptr.h:45
bool IsValid() const
Returns true if this object refers to a valid triangle.
Definition: navtrianglerawptr.h:52
NavFloor * GetNavFloor() const
Returns the triangle NavFloor.
Definition: navtrianglerawptr.h:65
NavTriangleRawPtr(const NavFloorRawPtr &navFloorRawPtr, NavTriangleIdx triangleIdx)
Init from NavFloorRawPtr.
Definition: navtrianglerawptr.h:32
2d vector using KyInt32
Definition: vec2i.h:18
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
NavTriangleRawPtr(NavFloor *navFloor, NavTriangleIdx triangleIdx)
Init from NavFloorRawPtr.
Definition: navtrianglerawptr.h:35
void Set(NavFloor *navFloor)
Sets the information maintained by this object.
Definition: navfloorrawptr.h:67
void Invalidate()
Invalidates this object.
Definition: navfloorrawptr.h:70
void GetVerticesCoordPos64(CoordPos64 &A, CoordPos64 &B, CoordPos64 &C) const
Get the triangle world integer 2d coordinates.
Definition: navtrianglerawptr.cpp:39
Identifies a single NavTriangle in a NavFloor.
Definition: navtrianglerawptr.h:21
const NavTag & GetNavTag(NavTriangleIdx navTriangleIdx) const
Retrieves the NavTag associated to this triangle.
Definition: navfloorblob.inl:49
KyFloat32 GetAltitudeOfPointInTriangle(const Vec3f &pos) const
Returns the altitude of the vertical projection of pos on the triangle plane.
Definition: navtrianglerawptr.cpp:75
const NavTag & GetNavTag() const
Retrieves the triangle NavTag.
Definition: navtrianglerawptr.h:74
bool IsValid() const
Returns true if this object refers to a valid NavFloor, which means a NavFloor:that exists...
Definition: navfloorrawptr.h:69
void GetVerticesCoordPos(CoordPos &A, CoordPos &B, CoordPos &C) const
Get the triangle local to cell integer 2d coordinates.
Definition: navtrianglerawptr.cpp:58
NavTriangleRawPtr()
Creates an invalid NavTriangleRawPtr.
Definition: navtrianglerawptr.h:29
CompactNavTriangleIdx m_triangleIdx
The index of this triangle within its NavFloor.
Definition: navtrianglerawptr.h:122
float KyFloat32
float
Definition: types.h:32
3d vector using 32bits floating points.
Definition: vec3f.h:16
Each instance of this class uniquely identifies a single NavFloor.
Definition: navfloorrawptr.h:23