gwnavruntime/channel/funnel.h Source File
Go to the documentation of this file.
27 FunnelClosedOverRight,
30 KY_INLINE
static bool IsClosureCase(FunnelResult result) {
return ((result == FunnelClosedOverRight) || (result == FunnelClosedOverLeft)); }
49 , m_apexSide(UndefinedFunnelSide)
50 , m_funnelDirection(ForwardFunnel)
51 , m_previousResult(FunnelUnchanged)
52 , m_isLeftBorderInitialized(
false)
53 , m_isRightBorderInitialized(
false)
56 void Initialize(
KyUInt32 apexIdx, FunnelSide apexSide, FunnelDirection funnelDirection = ForwardFunnel);
57 FunnelResult Update(
const Vec2f& vecToCorner,
KyUInt32 idx, FunnelSide side);
59 FunnelDirection GetFunnelDirection()
const {
return m_funnelDirection; }
60 KyUInt32 GetApexIdx()
const {
return m_apexIdx; }
61 FunnelSide GetApexSide()
const {
return m_apexSide; }
62 KyUInt32 GetLeftCornerIdx()
const {
return m_leftCornerIdx; }
63 KyUInt32 GetRightCornerIdx()
const {
return m_rightCornerIdx; }
64 FunnelResult GetPreviousResult()
const {
return m_previousResult; }
67 void TightenLeftBorder(
const Vec2f& vecToCorner,
KyUInt32 cornerIdx);
68 void TightenRightBorder(
const Vec2f& vecToCorner,
KyUInt32 cornerIdx);
70 bool IsOutsideOnLeft(
const Vec2f& axis2d)
const;
71 bool IsOutsideOnRight(
const Vec2f& axis2d)
const;
73 void ResolveActualClosureCase(FunnelResult naturalClosure);
84 FunnelSide m_apexSide;
85 FunnelDirection m_funnelDirection;
87 FunnelResult m_previousResult;
89 bool m_isLeftBorderInitialized;
90 bool m_isRightBorderInitialized;
97 (rotDir == Clockwise ) ? FunnelRight :
98 (rotDir == CounterClockwise) ? FunnelLeft :
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
RotationDirection
Defines the 4 possible cases of possibly constrained rotation in the horizontal plane for a given ele...
Definition: rotation.h:15
2d vector using KyFloat32.
Definition: vec2f.h:18
Basic straight line funnel acting directly on 2D positions.
Definition: funnel.h:42
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17