Gl Graph
Gl Graph Source of mapabstract.h
#ifndef MAPABSTRACT_H
#define MAPABSTRACT_H
#include <vector>
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include <drawabledatareader.h>
#include <globjectdata.h>
class MapAbstract : public DrawableDataReader {
public:
MapAbstract();
MapAbstract(std::string * filename, std::string * format, int maxline,std::unordered_map<std::string, std::string> * args);
void addData(float x, float y, float z);
void draw();
virtual void init();
void print();
int getElementNb() const;
void updateMinMax() {
min=rawdata[0];
max=rawdata[0];
unsigned int size = rawdata.size();
for (unsigned int i = 1; i < size; i++)
{
min.setMin(min,rawdata[i]);
max.setMax(max,rawdata[i]);
}
}
float getMinX() {
return min.getX();
};
float getMaxX() {
return max.getX();
};
float getMinY() {
return min.getY();
};
float getMaxY() {
return max.getY();
};
float getMinZ() {
return min.getZ();
};
float getMaxZ() {
return max.getZ();
};
void onFileOpen();
bool onLineRead(std::string line);
void onFileClose();
protected:
Vec3f min;
Vec3f max;
int xsize;
int ysize;
std::vector<Vec3f> rawdata;
std::vector<GlQuad> quadlist;
GlQuadData glquaddata;
bool isInMap(int x, int y);
bool layoutXY;
unsigned int getIndex(int x, int y);
virtual void processVertex(Vec3f &vecin,Vec3f &vecout);
virtual void processVertexColor(Vec3f &vecin,Vec3f &vecout);
void setVertex(int x, int y,Vec3f &vec);
void setColor(int x, int y,Vec3f &vec);
void setNormalVertex(int x, int y,Vec3f &vec);
void pushMapVertex();
void pushMapColor();
void pushMapNormalVertex();
void pushMap();
void buildMap();
};
#endif