Gl Graph
Gl Graph Source of glwindow.h
#ifndef GL_WINDOW_H
#define GL_WINDOW_H
#define GLX_GLXEXT_PROTOTYPES
#define GL_GLEXT_PROTOTYPES
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <GL/gl.h>
#include <GL/glext.h>
#include <GL/glx.h>
#include <GL/glxext.h>
#include <GL/glut.h>
#include <drawableset.h>
#include <glscene.h>
#include "glrenderer.h"
#include "mousekeyboardstate.h"
enum MouseButton
{
MOUSE_NO_BUTTON,
MOUSE_BUTTON_LEFT,
MOUSE_BUTTON_RIGHT,
MOUSE_BUTTON_MIDDLE,
MOUSE_BUTTON_MIDDLE_UP,
MOUSE_BUTTON_MIDDLE_DOWN,
};
enum ModifierButton
{
NO_MODIFIER,
SHIFT_MODIFIER,
LOCK_MODIFIER,
CTRL_MODIFIER,
ALT_MODIFIER,
};
class GlWindow : public GlRenderer {
protected:
GlScene * scene;
int swapFlag;
int swaMask;
bool stopped;
bool helpTextMode;
bool helpTextModeFirstRun;
private:
// set of variable in order to manage mouse and keyboard event
MouseKeybordState mkState;
public:
GlWindow(unsigned int width, unsigned int height);
GlWindow(unsigned int width, unsigned int height, bool debug);
~GlWindow();
void init();
void init(DrawableSet * set);
void initBeforeGl();
void initAfterGl(DrawableSet * set);
virtual void initGl()=0;
virtual void setTitle(const char* title)=0;
virtual void run()=0;
std::string getPngFileName();
void setDebug(bool debug);
bool isDebug();
void swapHelpTextMode();
void swapDepthBufferEnnable();
void drawScene();
void drawAll();
void drawHelpText();
void setTextInfo(const bool textInfo);
void drawText();
void drawSelectionSquare();
void processCloseEvent();
void processTranslation(int x, int y);
void processRotation(int x, int y);
void processOnclick(int x, int y,int halfsizex,int halfsizey);
void processResizeEvent(unsigned int width, unsigned int height);
void onMouseMotion(int x, int y, MouseButton button,ModifierButton mod);
void onMouseButtonPress(int x, int y, MouseButton button,ModifierButton mod);
void onMouseButtonRelease(int x, int y, MouseButton button,ModifierButton mod);
void processButtonPressEscape();
void processButtonPressF1();
void processButtonPressF2();
void processButtonPressF3();
void processButtonPressF4();
void processButtonPressF5();
void processButtonPressF6();
void processButtonPressF7();
void processButtonPressF8();
void processButtonPressF9();
void processButtonPressF10();
void processButtonPressF11();
void processButtonPressF12();
void processButtonPressChar(char c);
void processButtonUp();
void processButtonDown();
void processButtonRight();
void processButtonLeft();
};
#endif