/*********************************************************************
*                                                                    *          
*                              FLY                                   *
*                           --E#Y#E--				     *
*                         ===MUSCLE===                               *
*                                                                    *
*********************************************************************/
#ifndef COCKPIT_H_
#define COCKPIT_H_

/* C++ Header Files */
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <fstream>
#include <iostream>
#include <vector>
#include <cmath>
#include <cassert>
#include <limits>
/* OpenGL */
#include <GL/glew.h>
#include <GL/gl.h>
#include <GL/glx.h>
#include <GL/glu.h>
#include <GL/glext.h>
#include <GL/glxext.h>
/* Flysimulator */
#include "../CONF/config.h"
#include "../CONF/uniform.h"
#include "../CONF/geometry.h"
#include "../FONT/font.h"
#include "../OGL/move.h"
#include "../OGL/opengl.h"

//---------------------------------------------------------------------------

/* Standard */
using namespace std;

using std::vector;
using std::string;
using std::ifstream;
using std::map;

//---------------------------------------------------------------------------

/* Class MOD */
class MOD
{
private:        
        struct C_Color {
                float cr, cg, cb, ca;
        };

        struct C_Textur {
                float cs, ct;
        };

        struct C_Vertex {
                float cx, cy, cz;
        };

public:	
	/* Init */
	bool textureShader2();
	bool initCockpit();
	
	/* Coordinates */
	float C_Vertex(float cx, float cy, float cz);
	float C_Color(float cr, float cg, float cb, float ca);
	float C_Textur(float cs, float ct);  
        	
	/* Render */
	void GridRaster(const char *nFile);
	void PolygonMatrix(const GLenum mode, const GLenum front, const char *nFile);
	void DrawMatrix(const GLenum mode, const GLenum front, const GLint count, const GLint offset);
	
	/* View */
	void vectorMetal();
	void polygonMetal();
	void vertexCockpit(); 
        void renderCockpit(); 
	void Cockpit();
};

//---------------------------------------------------------------------

#endif

