CSC8503_Advanced_Game_Technologies / CSC8503 / CSC8503Common / NavigationMesh.h
NavigationMesh.h
Raw
#pragma once
#include "NavigationMap.h"
#include <string>
#include <vector>
namespace NCL {
	namespace CSC8503 {
		class NavigationMesh : public NavigationMap	{
		public:
			NavigationMesh();
			NavigationMesh(const std::string&filename);
			~NavigationMesh();

			bool FindPath(const Vector3& from, const Vector3& to, NavigationPath& outPath) override;
		
		protected:

			struct NavTri {
				NavTri* neighbours[3];

				NavTri() {
					neighbours[0] = nullptr;
					neighbours[1] = nullptr;
					neighbours[2] = nullptr;
				}
			};

			std::vector<NavTri>		allTris;
			std::vector<Vector3>	allVerts;
			std::vector<int>		allIndices;
		};
	}
}