summaryrefslogtreecommitdiff
path: root/Runtime/NavMesh/NavMeshPath.h
blob: e0be375e83bf8d9c5218751022fecdebc5d8af17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#pragma once
#ifndef RUNTIME_NAVMESH_PATH
#define RUNTIME_NAVMESH_PATH

#include "Runtime/Math/Vector3.h"
#include "NavMeshTypes.h"

struct OffMeshLinkData;

class NavMeshPath
{
public:
	enum
	{
		kMaxPathPolygons = 256
	};

	NavMeshPath ();
	~NavMeshPath ();

	inline Vector3f GetSourcePosition () const;
	inline void SetSourcePosition (const Vector3f& sourcePosition);
	inline Vector3f GetTargetPosition () const;
	inline void SetTargetPosition (const Vector3f& targetPosition);
	inline int GetPolygonCount () const;
	inline void SetPolygonCount (int polygonCount);

	inline unsigned int* GetPolygonPath ();
	inline const unsigned int* GetPolygonPath () const;

	inline NavMeshPathStatus GetStatus () const;
	inline void SetStatus (NavMeshPathStatus status);
	inline void SetTimeStamp (unsigned int timeStamp);

private:

	unsigned int m_timeStamp;
	NavMeshPathStatus m_status;
	unsigned int m_polygons[kMaxPathPolygons];
	int m_polygonCount;
	Vector3f m_sourcePosition;
	Vector3f m_targetPosition;
};

inline Vector3f NavMeshPath::GetSourcePosition () const
{
	return m_sourcePosition;
}
inline void NavMeshPath::SetSourcePosition (const Vector3f& sourcePosition)
{
	m_sourcePosition = sourcePosition;
}
inline Vector3f NavMeshPath::GetTargetPosition () const
{
	return m_targetPosition;
}
inline void NavMeshPath::SetTargetPosition (const Vector3f& targetPosition)
{
	m_targetPosition = targetPosition;
}
inline int NavMeshPath::GetPolygonCount () const
{
	return m_polygonCount;
}
inline void NavMeshPath::SetPolygonCount (int polygonCount)
{
	m_polygonCount = polygonCount;
}
inline unsigned int* NavMeshPath::GetPolygonPath ()
{
	return m_polygons;
}
inline const unsigned int* NavMeshPath::GetPolygonPath () const
{
	return m_polygons;
}
inline NavMeshPathStatus NavMeshPath::GetStatus () const
{
	return m_status;
}
inline void NavMeshPath::SetStatus (NavMeshPathStatus status)
{
	m_status = status;
}
inline void NavMeshPath::SetTimeStamp (unsigned int timeStamp)
{
	m_timeStamp = timeStamp;
}

#endif