Server application for collaborative production of 3D assets and animations.
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>

#include <CGAL/Delaunay_triangulation_on_sphere_traits_2.h>
#include <CGAL/Projection_on_sphere_traits_3.h>
#include <CGAL/Delaunay_triangulation_on_sphere_2.h>
#include <CGAL/point_generators_3.h>

#include <CGAL/utility.h>
#include <CGAL/Qt/DemosMainWindow.h>

#include <QApplication>
#include <QMainWindow>
#include <QFileDialog>
#include <QInputDialog>
#include <CGAL/Three/Three.h>

#include <boost/iterator/transform_iterator.hpp>

typedef CGAL::Exact_predicates_inexact_constructions_kernel             Kernel;
typedef Kernel::FT                                                      FT;
typedef Kernel::Point_3                                                 Point_3;

typedef std::vector<Point_3>                                            PointList;
typedef CGAL::Creator_uniform_3<double, Point_3>                        Points_Creator;
typedef CGAL::Projection_on_sphere_traits_3<Kernel>                     Projection_on_sphere;
typedef CGAL::Delaunay_triangulation_on_sphere_2<Projection_on_sphere>  Delauney_on_sphere;

typedef std::list<std::vector<Point_3> >                                Subsampled_arcs;

#include "Viewer.h"
#include "ui_Mainwindow.h"

class MainWindow
  : public CGAL::Qt::DemosMainWindow,
    public Ui::MainWindow
{
  Q_OBJECT
public:
  MainWindow()
  {
    setupUi(this);
  }

public slots:
  void on_action_Quit_triggered()
  {
    close();
  }

  void on_action_New_triggered()
  {
    PointList points;
    CGAL::points_on_cube_grid_3( 1.0, 20000, std::back_inserter(points), Points_Creator() );

    Projection_on_sphere sphere( Point_3(0.0, 0.0, 0.0), 100.0 );
    Delauney_on_sphere triangulation( points.begin(), points.end(), sphere );

    // Instantiate the viewer
    viewer->open( points.begin(), points.end(), triangulation );
  }
};

int main(int argc, char** argv)
{
  // Read command lines arguments
  QApplication application(argc,argv);
  MainWindow mainWindow;
  mainWindow.show();

  // Run main loop
  return application.exec();
}

#include "main.moc"