with Standard_Integer_Vectors; use Standard_Integer_Vectors;
with Simplices,Triangulations; use Simplices,Triangulations;
with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
package Triangulations_and_Subdivisions is
-- DESCRIPTION :
-- This package offers conversion operations from triangulations
-- into mixed subdivisions and vice versa.
function Deep_Create ( n : natural; s : Simplex ) return Mixed_Cell;
function Shallow_Create ( n : natural; s : Simplex ) return Mixed_Cell;
-- DESCRIPTION :
-- Creates a mixed cell from the given simplex. A deep create makes
-- a copy of the points in the simplex, whereas a shallow create only
-- copies the points to the points in the simplex.
function Deep_Create ( n : natural; t : Triangulation )
return Mixed_Subdivision;
function Shallow_Create ( n : natural; t : Triangulation )
return Mixed_Subdivision;
-- DESCRIPTION :
-- Creates a mixed subdivision from a given triangulation.
function Deep_Create ( n : natural; flatnor : Vector; t : Triangulation )
return Mixed_Subdivision;
function Shallow_Create ( n : natural; flatnor : Vector; t : Triangulation )
return Mixed_Subdivision;
-- DESCRIPTION :
-- Stops the conversion as soon as the flattening normal is encountered.
-- Cells with the same inner normal are merged.
function Non_Flat_Deep_Create ( n : natural; t : Triangulation )
return Mixed_Subdivision;
function Non_Flat_Shallow_Create ( n : natural; t : Triangulation )
return Mixed_Subdivision;
-- DESCRIPTION :
-- Converts only the cells in the triangulation that are not flat.
function Deep_Create ( n : natural; mixsub : Mixed_Subdivision )
return Triangulation;
function Shallow_Create ( n : natural; mixsub : Mixed_Subdivision )
return Triangulation;
-- DESCRIPTION :
-- Creates a triangulation from the mixed subdivision.
-- REQUIRED :
-- The subdivision must be a triangulation!
end Triangulations_and_Subdivisions;