10 #include "kypathdata/navmesh/navmeshtypes.h"
11 #include "kypathdata/navmesh/navtriangleid.h"
12 #include "kypathdata/generic/memory.h"
13 #include "kypathdata/navmesh/propagationquerymemory.h"
14 #include "kypathdata/navmesh/navmeshqueryserver.h"
15 #include "kypathdata/math/vec3f.h"
33 PIECOLLISION_FORCE32 = 0xFFFFFFFF
43 KY_DEFINE_NEW_DELETE_OPERATORS
52 DtPieCollisionQuery(
const Kaim::Vec3f& center, KyFloat32 radius, KyFloat32 startingRadian, KyFloat32 endingRadian) :
53 m_centerPos3f(center), m_centerCoordPos(Kaim::InvalidCoord64, Kaim::InvalidCoord64), m_radius(radius),
54 m_terrainTypeMask(Kaim::NavTerrainTypeMask_All), m_searchRange(1.f),
61 DtPieCollisionQuery(
const Kaim::Vec3f& center, KyFloat32 radius, KyFloat32 startingRadian, KyFloat32 endingRadian, Kaim::NavTriangleId centerTriangleId) :
62 m_centerPos3f(center), m_centerCoordPos(Kaim::InvalidCoord64, Kaim::InvalidCoord64), m_centerTriangleId(centerTriangleId), m_radius(radius),
63 myStartingRadian(startingRadian), myEndingRadian(endingRadian), m_terrainTypeMask(Kaim::NavTerrainTypeMask_All), m_searchRange(1.f), m_returnCode(
PIECOLLISION_QUERY_NOT_PROCESSED) {}
66 KY_FORCE_INLINE DtPieCollisionQueryResult
GetResult()
const {
return m_returnCode; }
69 KY_FORCE_INLINE
void Clear()
72 m_centerPos3f.Set(0.f, 0.f, 0.f);
73 m_centerCoordPos.Set(Kaim::InvalidCoord64, Kaim::InvalidCoord64);
75 m_centerTriangleId.Invalidate();
76 m_terrainTypeMask = Kaim::NavTerrainTypeMask_All;
86 KY_FORCE_INLINE Kaim::Vec3f&
GetCenter() {
return m_centerPos3f; }
89 KY_FORCE_INLINE
const Kaim::Vec3f&
GetCenter()
const {
return m_centerPos3f; }
98 KY_FORCE_INLINE KyFloat32
GetRadius()
const {
return m_radius; }
104 KY_FORCE_INLINE
void SetTerrainTypeMask(Kaim::NavTerrainTypeMask terrainTypeMask) { m_terrainTypeMask = terrainTypeMask; }
110 KY_FORCE_INLINE
void SetSearchRange(KyFloat32 searchRange) { m_searchRange = searchRange; }
113 void PerformQuery(Kaim::NavMeshQueryServer& queryServer);
116 void PerformQueryWithInputCoordPos(Kaim::NavMeshQueryServer& queryServer);