// 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 "nlagrange.h"
#include "nspline.h"
#include "nbspline.h"
#include "nbeziercurve.h"
#include "nbsplinesurface.h"
#include "nvtkdisplay.h"


void initCurvesCoons(nbspline& c0u, nbspline& c1u, nbspline& c0v, nbspline& c1v)
{
  c0u.u(0)=c0u.u(1)=c0u.u(2)=0;
  c0u.u(3)=1;
  c0u.u(4)=c0u.u(5)=c0u.u(6)=2;
  c0u.CP(0)=npoint(0.,0.,0.);
  c0u.CP(1)=npoint(1.,0.,1.);
  c0u.CP(2)=npoint(2.,0.,-1.);
  c0u.CP(3)=npoint(3.,0.,0.);
  c1u=c0u;
  for (int i=0;i<c0u.nb_CP();++i) c1u.CP(i)=c0u.CP(i)+npoint(0.,2.,0.,0.);
  c0v.u(0)=c0v.u(1)=c0v.u(2)=0;
  c0v.u(3)=c0v.u(4)=c0v.u(5)=1;
  c0v.CP(0)=npoint(0.,0.,0.);
  c0v.CP(1)=npoint(0.,1.,-1.);
  c0v.CP(2)=npoint(0.,2.,0.);
  c1v=c0v;
  for (int i=0;i<c0v.nb_CP();++i) c1v.CP(i)=c0v.CP(i)+npoint(3.,0.,0.,0.);
}

// main function
int main(void)
{
  data_container data;            // Contains data to display
  nvtkdisplay display;            // Display window

  display.init_data(data);

  display.display();              // Display and interaction loop
  return 0;
}
