#pragma once
#include "..\dxfunctions\dllinterface.h"
#include "..\dxfunctions\dxvector3.h"
#include "..\dxfunctions\dxmatrix.h"
#include "..\dxfunctions\mesh.h"
#include "..\Utilities\list.h"
#include "..\Utilities\xstring.h"

#include "MeshObject.h"

class ShadowApp;

struct STWayPoint
{
	DXVector3	Point;
	float		Declination;
	float		Distance;
};

class AirPlane : public MeshObject
{
	float m_Size;
	float m_Speed;

	DXMatrix m_matWorld;
	ListElement<STWayPoint> *m_LastWayPoint;

	float	m_RoutePos;
	float	m_RouteDist;
	LList<STWayPoint> m_Route;

public:
	AirPlane(ShadowScene* const pScene, CMesh* const mesh, const float size, const float speed);
	virtual ~AirPlane(void);

	void Update(void);
	//void Render(const bool depthmap);

	void AddPoint(const DXVector3& point, const float declination);
};
