Gl Graph : Introduction

Gl Graph is a basic C++ program to display and work with large set of data. To look into large amount of data, humans better understand graph or image and this need is not a new one. However there are tools like gnuplot or matlab that acheive this task with one major drawback : speed.
Speed is required when resizing, moving, rotating, selecting , letting the user focused on the data. Gl Graph is based on OpenGl. OpenGl is a well-known 3D hardware accelerated graphic library that lets you draw your data fast.
To acheive the speed it claims and get the fastest result, GlGraph use the best the OpenGl API available :

  1. Vertex Array ( OpenGl 1.1 )
  2. Vertex Buffer Object(GL_ARB_vertex_buffer_object or Opengl 1.5 )
  3. Vertex Array Object (GL_ARB_vertex_array_object or Opengl 3.0)

Gl Graph depends on X or Glut for window management. It's designed to easily read data from text file with adaptative format.

Gl Graph : Curve

Let's draw a curve defined by x = cos(5*t)*sin(t), y=cos(5*t)*cos(t)).

Gl Graph : Surface

Let's draw a surface defined by z= sin((x*x))*cos((y*y)). Vectex Shader and Pixel Shader are used here to generate the chessboard effect.

Gl Graph : Source

main.cpp
main.h
coloredmap.cpp
coloredmap.h
drawabledata.cpp
drawabledata.h
drawabledatareader.cpp
drawabledatareader.h
drawableset.cpp
drawableset.h
glaxes.cpp
glaxes.h
glcamera.cpp
glcamera.h
glcanvas.cpp
glcanvas.h
glcoordinatesystem.cpp
glcoordinatesystem.h
glimagerenderer.cpp
glimagerenderer.h
globjectdata.cpp
globjectdata.h
glprimitive.h
glrenderer.cpp
glrenderer.h
glscene.cpp
glscene.h
glscenestat.h
glshader.cpp
glshader.h
gltexture.cpp
gltexture.h
glutwin.cpp
glutwin.h
glversion.cpp
glversion.h
glwindow.cpp
glwindow.h
glxwin.cpp
glxwin.h
line.cpp
line.h
lines2d.cpp
lines2d.h
lines3d.cpp
lines3d.h
main-bench.cpp
map3d.cpp
map3d.h
mapabstract.cpp
mapabstract.h
mapquad.cpp
mapquad.h
mathfunctiondrawable.cpp
mathfunctiondrawable.h
mousekeyboardstate.h
nbodysimulation.cpp
nbodysimulation.h