C++ interface output examples
=============================
Since version 0.4, Voro++ has contained many routines that allow for programs
to directly analyze features of a single Voronoi cell, and Voronoi cells in a
particle packing. These example codes demonstrate this functionality.

1. odd_even.cc constructs a single Voronoi cell using random planes, in the
same manner as the basic single_cell.cc example. It then calls several routines
to gain information about the computed cell's faces. Using this information it
constructs a POV-Ray scene in which the faces are colored white or black
depending on whether the have an odd or even number of sides. The POV-Ray
header file odd_even.pov can be used to visualize the result.

2. loops.cc demonstrates the loop classes, that can be used to iterate over a
certain subset of particles within a container. It demonstrates the
c_loop_order class, which can loop over a specific pre-computed list of
particles. It also demonstrates the c_loop_subset class, which can loop over
particles in a certain region of the container. These classes are used to
compute Voronoi cells in two interlocking tori. The POV-Ray header file
loops.pov can be used to visualize the result.

3. polygons.cc demonstrates how routines can be used to find all faces in a
Voronoi tessellation that have a specific number of sides. The routine also
demonstrates the pre_container class, that can aid in correctly configuring the
underlying grid that the code uses, in cases whether the amount of input data
is not known a priori. When run, the code generates POV-Ray scenes of all
quadrilateral, pentagonal, and hexagonal faces in a Voronoi tessellation. The
can be visualized using the POV-Ray header files polygons4.pov, polygons5.pov,
and polygons6.pov.

4. find_voro_cell.cc demonstrates the find_voronoi_cell routine. For a given
position vector, this routine will return the Voronoi cell that the vector is
within. The code creates a unit cube and randomly adds twenty particles to it.
It carries out a number of find_voronoi_cell calls for a slice through the
cube, creating a file with vectors from each sample point to the particle whose
Voronoi cell contains the point. The results can be visualized in Gnuplot with

splot 'find_voro_cell_v.gnu' w l t 'Voronoi cells', 'find_voro_cell.vec' w vec t 'Voronoi cell vectors', 'find_voro_cell_p.gnu' w p u 2:3:4 t 'Particles' 

The example also uses the find_voronoi_cell routine to estimate the size of
each Voronoi cell. It scans a grid covering the entire container, making
find_voronoi_cell calls at each location. The number of times each Voronoi cell
is returned gives an estimate of its volume. These sampled volumes, as well as
the exact calculated voulmes are saved to 'find_voro_cell.vol'. A graph
comparing the two can be plotted in Gnuplot with

set xlabel 'Calculated volume'
set ylabel 'Sampled volume'
plot [0:0.1] [0:0.1] 'find_voro_cell.vol' u 5:6

Altering the size of scanning grid alters who accurate the sampled volumes will
match the calculated results.
