Factorization

This commit is contained in:
Maxime Gimeno 2021-01-28 10:01:52 +01:00
parent 2d59464b2b
commit 7bf9c14f72
16 changed files with 31 additions and 92 deletions

View File

@ -18,7 +18,7 @@
#include <CGAL/boost/graph/IO/Generic_facegraph_builder.h>
#include <CGAL/boost/graph/iterator.h>
#include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h>
#include <boost/container/flat_map.hpp>
#include <fstream>
@ -303,12 +303,7 @@ bool write_GOCAD(std::ostream& os,
if(!os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
os << "GOCAD TSurf 1\n"
"HEADER {\n"

View File

@ -117,13 +117,7 @@ public:
if(!m_os.good())
return false;
if(!CGAL::parameters::is_default_parameter(
get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(
get_parameter(np, internal_np::stream_precision), 6);
m_os.precision(precision);
}
set_default_stream_precision(m_os, np);
VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, g));

View File

@ -361,12 +361,7 @@ bool write_PLY(std::ostream& os,
if(!os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
// Write header
os << "ply" << std::endl

View File

@ -262,12 +262,7 @@ bool write_STL(std::ostream& os,
if(!os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
if(get_mode(os) == IO::BINARY)
{

View File

@ -439,12 +439,7 @@ bool write_VTP(std::ostream& os,
if(!os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
os << "<?xml version=\"1.0\"?>\n"
<< "<VTKFile type=\"PolyData\" version=\"0.1\"";

View File

@ -560,6 +560,18 @@ CGAL_DEF_GET_INITIALIZED_INDEX_MAP(face, typename boost::graph_traits<Graph>::fa
Alpha_expansion_boost_adjacency_list_tag
>::type type;
};
template<typename NP>
void set_default_stream_precision(std::ostream& os, const NP& np)
{
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = parameters::choose_parameter<int>(
parameters::get_parameter(np, internal_np::stream_precision));
os.precision(precision);
}
}
} //namespace CGAL

View File

@ -493,12 +493,7 @@ bool write_PLY(std::ostream& os,
return false;
}
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
os << "ply" << std::endl
<< ((get_mode(os) == IO::BINARY) ? "format binary_little_endian 1.0" : "format ascii 1.0") << std::endl

View File

@ -66,12 +66,7 @@ bool write_OFF_PSP(std::ostream& os,
return false;
}
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
// Write header
os << "NOFF" << std::endl;

View File

@ -212,12 +212,7 @@ bool write_PLY(std::ostream& os,
return false;
}
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
if (has_normals)
return write_PLY_with_properties(os, points,

View File

@ -67,12 +67,7 @@ bool write_XYZ_PSP(std::ostream& os,
return false;
}
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
// Write positions + normals
for(typename PointRange::const_iterator it = points.begin(); it != points.end(); it++)

View File

@ -299,12 +299,7 @@ bool write_GOCAD(std::ostream& os,
set_ascii_mode(os); // GOCAD is ASCII only
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
os << "GOCAD TSurf 1\n"
"HEADER {\n"

View File

@ -49,12 +49,7 @@ public:
if(!m_os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
m_os.precision(precision);
}
set_default_stream_precision(m_os, np);
m_writer.write_header(m_os, points.size(), 0, polygons.size());
for(std::size_t i=0, end=points.size(); i<end; ++i)

View File

@ -17,6 +17,7 @@
#include <CGAL/IO/helpers.h>
#include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/property_map.h>
#include <CGAL/iterator.h>
@ -467,12 +468,7 @@ bool write_PLY(std::ostream& out,
if(!out.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
out.precision(precision);
}
set_default_stream_precision(out, np);
// Write header
out << "ply" << std::endl

View File

@ -317,12 +317,7 @@ bool write_STL(std::ostream& os,
if(!os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
if(get_mode(os) == IO::BINARY)
{

View File

@ -19,6 +19,8 @@
#include <CGAL/IO/VTK/VTK_writer.h>
#include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h>
#ifdef CGAL_USE_VTK
#include <vtkSmartPointer.h>
@ -393,12 +395,7 @@ bool write_VTP(std::ostream& os,
if(!os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = choose_parameter(get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
os << "<?xml version=\"1.0\"?>\n"
<< "<VTKFile type=\"PolyData\" version=\"0.1\"";

View File

@ -921,12 +921,7 @@ bool write_PLY(std::ostream& os,
if(!os.good())
return false;
if(!parameters::is_default_parameter(
parameters::get_parameter(np, internal_np::stream_precision)))
{
const int precision = parameters::choose_parameter(parameters::get_parameter(np, internal_np::stream_precision), 6);
os.precision(precision);
}
set_default_stream_precision(os, np);
os << "ply" << std::endl
<< ((get_mode(os) == IO::BINARY) ? "format binary_little_endian 1.0" : "format ascii 1.0") << std::endl