54 const CellPos& GetCellPos()
const;
55 const NavTag& GetNavTag()
const;
63 void GetVerticesPos3f(
Vec3f& start,
Vec3f& end)
const;
65 Vec3f GetMiddlePos3f()
const;
77 template<
class TLogic>
84 template<
class TLogic>
91 template<
class TLogic>
103 template<
class TLogic>
108 template<
class TLogic>
122 template<
class TLogic>
bool IsHalfEdgeOneWayCrossable(
void* traverseLogicUserData,
const Vec3f* position)
const;
123 template<
class TLogic>
bool IsHalfEdgeOneWayCrossable(
void* traverseLogicUserData,
NavHalfEdgeRawPtr& resultRawPtr,
const Vec3f* position)
const;
124 template<
class TLogic>
bool IsHalfEdgeOneWayCrossable(
void* traverseLogicUserData,
const NavFloorBlob* navFloorBlob,
NavHalfEdgeRawPtr& resultRawPtr,
const Vec3f* position)
const;
bool IsValid() const
Returns m_navFloorRawPtr.IsValid(). NavHalfEdgeRawPtr validity can be changed when the NavMesh in the...
Definition: navhalfedgerawptr.inl:34
Vec3f GetStartVertexPos3f() const
Does set the z coordinate.
Definition: navhalfedgerawptr.cpp:104
bool IsStartVertexOnBorder() const
Returns true if one of the edges starting from start cannot be traversed using DefaultTraverseLogic.
Definition: navhalfedgerawptr.inl:327
KyUInt32 NavTriangleIdx
An index that uniquely identifies a single triangle within the set of triangles owned by a NavFloor...
Definition: navmeshtypes.h:97
NavHalfEdgeRawPtr GetNextNavHalfEdgeRawPtrAlongBorder(void *traverseLogicUserData) const
Returns the next edge along the border of the NavMesh using {TLogic, traverseLogicUserData}.
Definition: navhalfedgerawptr.inl:333
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
void GetPrevHalfEdgeRawPtr(NavHalfEdgeRawPtr &prev) const
Updates prev to identify the previous edge in the triangle.
Definition: navhalfedgerawptr.inl:54
void GetTriangleVerticesPos3f(Vec3f &start, Vec3f &end, Vec3f &next) const
next is the vertex in the (start->end->next) triangle
Definition: navhalfedgerawptr.cpp:14
CompactNavHalfEdgeIdx m_halfEdgeIdx
The index of this edge within its NavFloor.
Definition: navhalfedgerawptr.h:147
NavHalfEdgeRawPtr GetPrevNavHalfEdgeRawPtrAlongBorder(void *traverseLogicUserData) const
Returns the previous edge along the border of the NavMesh using {TLogic, traverseLogicUserData}.
Definition: navhalfedgerawptr.inl:360
KyUInt32 NavHalfEdgeIdx
An index that uniquely identifies a single edge of a triangle within the set of edges owned by a NavF...
Definition: navmeshtypes.h:84
CoordPos GetStartVertexCoordPosInCell() const
Returns the start 2D integer coordinates (in pixels) relative to its NavCell origin.
Definition: navhalfedgerawptr.inl:50
2d vector using KyInt64
Definition: vec2ll.h:18
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
std::uint16_t KyUInt16
uint16_t
Definition: types.h:28
void GetNextHalfEdgeRawPtr(NavHalfEdgeRawPtr &next) const
Updates next to identify the next edge in the triangle.
Definition: navhalfedgerawptr.inl:53
Tag type used for function overloading in templates.
Definition: traverselogic.h:69
void GetPairHalfEdgeRawPtr(NavHalfEdgeRawPtr &pair) const
Updates pair to identify the edge in the adjacent triangle that borders this edge.
Definition: navhalfedgerawptr.cpp:154
Vec3f GetEndVertexPos3f() const
Does set the z coordinate.
Definition: navhalfedgerawptr.cpp:125
2d vector using KyInt32
Definition: vec2i.h:18
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
Tag type used for function overloading in templates.
Definition: traverselogic.h:59
NavHalfEdge GetHalfEdge() const
All these function should be called only if IsValid() returns true.
Definition: navhalfedgerawptr.inl:56
CoordPos GetEndVertexCoordPosInCell() const
Returns the end 2D integer coordinates (in pixels) relative to its NavCell origin.
Definition: navhalfedgerawptr.inl:51
Each instance of NavHalfEdge represents a single edge of a single triangle within the NavMesh...
Definition: navhalfedge.h:17
NavHalfEdgeType
Enumerates the possible types of boundary that can be represented by a NavHalfEdge.
Definition: navmeshtypes.h:49
bool IsHalfEdgeCrossable() const
Returns true if this edge is not on an external boundary of the NavMesh and not a internal edge that ...
Definition: navhalfedgerawptr.inl:83
void Invalidate()
Invalidates this object.
Definition: navhalfedgerawptr.inl:35
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
Tag type used for function overloading in templates. It will be set as a nested typedef in CustomTrav...
Definition: traverselogic.h:51
KyUInt16 m_boundaryEdgeIdx
Use internally to speed up stitching. Do not modify.
Definition: navhalfedgerawptr.h:148
Each instance of this class uniquely identifies a single NavHalfEdge in a NavFloor.
Definition: navhalfedgerawptr.h:23
NavFloorRawPtr m_navFloorRawPtr
The NavFloor that contains this edge.
Definition: navhalfedgerawptr.h:146
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
bool IsMinimumAmongPairs() const
returns !IsHalfEdgeCrossable() || GetStartVertexCoordPosInCell() < getendvertexcoordposincell()="" this="" />
Definition: navhalfedgerawptr.inl:377