Gl Graph
Gl Graph Source of mapquad.h
#ifndef MAPQUAD_H
#define MAPQUAD_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 MapQuad : public DrawableDataReader {
public:
MapQuad();
MapQuad(std::string * filename, std::string * format, int maxline,std::unordered_map<std::string, std::string> * args);
void addData(std::vector<float> line);
void draw();
virtual void init();
void print();
int getElementNb() const;
void updateMinMax() {
float minz=data[0][0];
float maxz=data[0][0];
unsigned int maxj = 0;
unsigned int sizei = data.size();
for (unsigned int i = 0; i < sizei; i++)
{
unsigned int sizej = data[i].size();
maxj=max<unsigned int>(maxj,sizej);
for (unsigned int j = 0; j < sizej; j++)
{
minz=min<float>(minz,data[i][j]);
maxz=max<float>(maxz,data[i][j]);
}
}
vmin = Vec3f(0,0,minz);
vmax = Vec3f(sizei,maxj+1,maxz);
}
float getMinX() {
return vmin.getX();
};
float getMaxX() {
return vmax.getX();
};
float getMinY() {
return vmin.getY();
};
float getMaxY() {
return vmax.getY();
};
float getMinZ() {
return vmin.getZ();
};
float getMaxZ() {
return vmax.getZ();
};
std::vector<std::vector<float>> getData() const {
return data;
};
void onFileOpen();
bool onLineRead(std::string line);
void onFileClose();
protected:
Vec3f vmin;
Vec3f vmax;
GlQuadData glquaddata;
std::vector<std::vector<float>> data;
float getVertexColor(Vec3f &vec);
void pushQuad(Vec3f &pts,float sizex,float sizey);
void buildMap();
};
#endif