#include <iostream>
#include <vector>
#include <X11/X.h>    // Basic X library
#include <GL/gl.h>    // Basic Mesa OpenGL library
#include <GL/glut.h>  // Mesa OpenGL utility toolkit
#include "nd.h"

using namespace std;

int main(int argc, char ** argv)
{
  extern ND nd;
  extern NDCallList NDlist;

  if(argc == 1){
    cout << "Using 5 dimensions." << endl;
    glDimensions(5);
  }
  if(argc == 2){
    glDimensions(atoi(argv[1]));
  }

  vector<GLdouble> v(1, 1.0);
  v.push_back(15.0);
  v.push_back(15.0);
  vector< vector<GLdouble> > M(nd.dimension()+1, vector<GLdouble> (nd.dimension()+1, 5.0));
  M = getIDmatrix(nd.dimension()+1);
  
  glBeginNd(GL_LINE_STRIP);
  
  glVertexNdf(v);
  glBegin(1);
  glColor3f(0.0, 1.0, 0.0);
  glEnd();
  glVertexNdf(v);

  glEndNd();

  glBeginNd(GL_TRIANGLE_STRIP);
  glVertexNdf(v);
  glEndNd();
  
  vector<GLdouble> frustum(nd.dimension()*2, .10);
 
  glFrustumNd(frustum);

  glSetProjectionMatrixNd(getIDmatrix());

  NDlist.printOpenGL3d();
  
  exit(0);

}
