with text_io,Triangulations;        use text_io,Triangulations;
with Lists_of_Integer_Vectors;      use Lists_of_Integer_Vectors;

package Triangulations_io is

-- DESCRIPTION :
--   This package provides an interface to the Triangulations.

  procedure get ( t : in out Triangulation );
  procedure get ( n,m : in natural; t : in out Triangulation );
  procedure get ( file : in file_type; t : in out Triangulation );
  procedure get ( file : in file_type; n,m : in natural;
                  t : in out Triangulation );

  -- DESCRIPTION :
  --   Reads first the dimension n and the number of simplices m.
  --   if they are not specified as parameter.
  --   Either from standard input or from file, m times n integer vectors
  --   of length are read.

  procedure put ( n : in natural; t : in Triangulation );
  procedure put ( n : in natural; t : in Triangulation; v : out natural );
  procedure put ( file : in file_type;
                  n : in natural; t : in Triangulation );
  procedure put ( file : in file_type;
                  n : in natural; t : in Triangulation; v : out natural );

  -- DESCRIPTION :
  --   Writes the simplices in the triangulation on standard output
  --   or on file.  When the parameter `v' is supplied, the volume
  --   will be computed and returned.  Also, more text banners are provided.

  procedure put ( n : natural; t : in Triangulation;
                  convecs : in out List; v : out natural );
  procedure put ( file : in file_type; n : natural; t : in Triangulation;
                  convecs : in out List; v : out natural );

  -- DESCRIPTION :
  --   Also the connectivity vectors for each simplex will be written.
  --   A connectivity vector cv for a simplex s is defined as follows:
  --    cv(i) = 0 if Neighbor(s,i) = Null_Simplex
  --    cv(i) = k if Neighbor(s,i) /= Null_Simplex
  --         and Position(t,Neighbor(s,i)) = k.

end Triangulations_io;
