gwnavruntime/collision/heightfieldtile.h Source File
Go to the documentation of this file.
17 struct HeightFieldTile
27 KY_INLINE
KyUInt32 GetSide(
const Vec2f& a,
const Vec2f& b,
const Vec3f& c)
const
29 return (b.x - a.x)*(c.y - a.y) - (b.y - a.y)*(c.x - a.x) <= 0.f ? RightOfPoint : LeftOfPoint;
32 KY_INLINE Triangle3f GetFirstTriangle()
const
35 tri.Set(m_vertices[0], m_vertices[2], m_vertices[3]);
39 KY_INLINE Triangle3f GetSecondTriangle()
const
42 tri.Set(m_vertices[0], m_vertices[1], m_vertices[2]);
48 CardinalDir GetFirstExitDirection(
const Vec2f& a,
const Vec2f& b)
const;
63 KY_INLINE
CardinalDir GetExitDirectionFromEntryDirection(
const Vec2f& a,
const Vec2f& b)
const
65 const CardinalDir facingDir = GetOppositeCardinalDir(m_entrantDirection);
66 const KyUInt32 rightVertexSide = GetSide(a, b, m_vertices[facingDir]);
67 const KyUInt32 leftVertexSide = GetSide(a, b, m_vertices[ClampVertexIndex(facingDir + 1)]);
68 const KyUInt32 exitDirOffset = (rightVertexSide + leftVertexSide * 2 - (rightVertexSide & leftVertexSide)) + 1;
70 return ClampVertexIndex(m_entrantDirection + exitDirOffset);
74 KY_INLINE
KyUInt32 ClampVertexIndex(
const KyUInt32 index)
const {
return index & 3 ; }
Vec2i CellPos
A type that represents the position of a cell within a 2D grid.
Definition: navmeshtypes.h:30
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
KyUInt32 CardinalDir
Defines a type that refers to one of the cardinal points on the compass:
Definition: cardinaldir.h:15
static const CardinalDir CardinalDir_INVALID
Invalid cardinal direction.
Definition: cardinaldir.h:20
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17