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