// Gnurbs - A curve and surface library
// Copyright (C) 2008-2026 Eric Bechet
//
// See the LICENSE file for contributions and license information.
// Please report all bugs and problems to <bechet@cadxfem.org>.
//

#include <iostream>
#include <fstream>
#include "nrspline.h"
#include "nspline.h"
#include "ndisplay.h"
#include "nutil.h"
#include "gnurbscallbacks.h"
#include <iostream>

int main(void)
{
  int ncp=17;
  nrspline courbe(ncp);
  courbe.periodic=true;
  nspline courbe2(ncp);
  courbe2.periodic=true;
  for(int i=0;i<ncp;++i)
  {
    courbe.CP(i)=npoint((i%2+3)*cos((i*2*M_PI)/(ncp-1)),(i%2+3)*sin((i*2*M_PI)/(ncp-1)),0,1);
    courbe2.CP(i)=npoint((i%2+3)*cos((i*2*M_PI)/(ncp-1)),(i%2+3)*sin((i*2*M_PI)/(ncp-1))+8,0,1);
    courbe2.u(i)=i;
  } 
  courbe.compute_FD();
  courbe2.compute_FD();
  data_container data;
  ndisplay display;
  gnurbscallbacks CB;
  CB.add_entity(&courbe);
  CB.add_entity(&courbe2);
  display.setcallbacks(&CB);
  CB.draw();
  display.init_data(CB.datas);
  display.display();
  return 0;
}
