un-doc the NP versions of the soup functions

This commit is contained in:
Maxime Gimeno 2020-04-30 15:44:01 +02:00
parent 841f7a2016
commit 45d6bd05c9
6 changed files with 218 additions and 156 deletions

View File

@ -290,7 +290,7 @@ bool test_soup_vtp(bool binary = false)
#endif #endif
template<class FaceGraph> template<class FaceGraph>
bool test_gocad() bool test_bgl_gocad()
{ {
FaceGraph fg; FaceGraph fg;
CGAL::make_tetrahedron(Point(0, 0, 0), Point(1, 1, 0), CGAL::make_tetrahedron(Point(0, 0, 0), Point(1, 1, 0),
@ -333,6 +333,55 @@ bool test_gocad()
return true; return true;
} }
template<class FaceGraph>
bool test_bgl_gocad_with_np()
{
typedef typename boost::property_map<FaceGraph,CGAL::vertex_point_t>::type VertexPointMap;
FaceGraph fg;
CGAL::make_tetrahedron(Point(0, 0, 0), Point(1, 1, 0),
Point(2, 0, 1), Point(3, 0, 0), fg);
VertexPointMap vpm = get(CGAL::vertex_point, fg);
std::ostringstream out;
CGAL::write_GOCAD(out, "tetrahedron", fg, CGAL::parameters::vertex_point_map(vpm));
if(out.fail())
{
std::cerr<<"Tetrahedron writing failed."<<std::endl;
return false;
}
FaceGraph fg2;
VertexPointMap vpm2 = get(CGAL::vertex_point, fg2);
std::istringstream in( out.str());
std::pair<std::string, std::string> cnn;
CGAL::read_GOCAD(in, cnn, fg2, CGAL::parameters::vertex_point_map(vpm2));
if(cnn.first != "tetrahedron"){
std::cerr<<"reading error: tetrahedron != "<<cnn.first<<std::endl;
return 1;
}
if( !cnn.second.empty()){
std::cerr<<"reading error: there should be no color."<<std::endl;
return 1;
}
if(in.fail()){
std::cerr<<"Tetrahedron reading failed."<<std::endl;
return false;
}
if(num_vertices(fg2) != 4){
std::cerr<<"Wrong number of vertices: 4 != "<<num_vertices(fg2)<<std::endl;
return false;
}
if(num_faces(fg2) != 4)
{
std::cerr<<"Wrong number of faces: 4 != "<<num_faces(fg2)<<std::endl;
return false;
}
return true;
}
bool test_soup_gocad() bool test_soup_gocad()
{ {
@ -385,7 +434,7 @@ bool test_soup_gocad()
} }
template<class FaceGraph> template<class FaceGraph>
bool test_STL() bool test_bgl_stl()
{ {
FaceGraph fg; FaceGraph fg;
CGAL::make_tetrahedron(Point(0, 0, 0), Point(1, 1, 0), CGAL::make_tetrahedron(Point(0, 0, 0), Point(1, 1, 0),
@ -418,7 +467,6 @@ bool test_STL()
return true; return true;
} }
template<class FaceGraph> template<class FaceGraph>
bool test_bgl_PLY(bool binary = false) bool test_bgl_PLY(bool binary = false)
{ {
@ -522,7 +570,6 @@ bool test_bgl_PLY_with_np(bool binary)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
const char* filename=(argc>1) ? argv[1] : "data/prim.off"; const char* filename=(argc>1) ? argv[1] : "data/prim.off";
/*
// OFF // OFF
test_bgl_OFF<Polyhedron>(filename); test_bgl_OFF<Polyhedron>(filename);
test_bgl_OFF<SM>(filename); test_bgl_OFF<SM>(filename);
@ -575,23 +622,29 @@ int main(int argc, char** argv)
if(!test_bgl_PLY_with_np<SM>(true)) if(!test_bgl_PLY_with_np<SM>(true))
return 1; return 1;
*/
// GOCAD // GOCAD
if(!test_gocad<Polyhedron>()) if(!test_bgl_gocad<Polyhedron>())
return 1; return 1;
if(!test_gocad<SM>()) if(!test_bgl_gocad<SM>())
return 1; return 1;
if(!test_gocad<LCC>()) if(!test_bgl_gocad<LCC>())
return 1;
if(!test_bgl_gocad_with_np<Polyhedron>())
return 1;
if(!test_bgl_gocad_with_np<SM>())
return 1;
if(!test_bgl_gocad_with_np<LCC>())
return 1; return 1;
if(!test_soup_gocad()) if(!test_soup_gocad())
return 1; return 1;
/*
// STL // STL
if(!test_STL<Polyhedron>()) if(!test_bgl_stl<Polyhedron>())
return 1; return 1;
if(!test_STL<SM>()) if(!test_bgl_stl<SM>())
return 1; return 1;
if(!test_STL<LCC>()) if(!test_bgl_stl<LCC>())
return 1; return 1;
// VTP // VTP
@ -614,6 +667,6 @@ int main(int argc, char** argv)
if(!test_soup_vtp(true)) if(!test_soup_vtp(true))
return 1; return 1;
#endif #endif
*/
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }

View File

@ -102,13 +102,7 @@ bool read_GOCAD(std::istream& input,
return !input.fail(); return !input.fail();
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `polygons`, in the GOCAD format.
*
* \see \ref IOStreamGocad
*/
template <typename PointRange, typename PolygonRange, typename NamedParameters> template <typename PointRange, typename PolygonRange, typename NamedParameters>
bool read_GOCAD(std::istream& is, bool read_GOCAD(std::istream& is,
PointRange& points, PointRange& points,
@ -119,13 +113,7 @@ bool read_GOCAD(std::istream& is,
return read_GOCAD(is, dummy, points, polygons, np); return read_GOCAD(is, dummy, points, polygons, np);
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of the file `fname` into `points` and `polygons`, in the GOCAD format.
*
* \see \ref IOStreamGocad
*/
template <typename PointRange, typename PolygonRange, typename NamedParameters> template <typename PointRange, typename PolygonRange, typename NamedParameters>
bool read_GOCAD(const char* fname, bool read_GOCAD(const char* fname,
PointRange& points, PointRange& points,
@ -137,8 +125,21 @@ bool read_GOCAD(const char* fname,
return read_GOCAD(in, dummy, points, polygons, np); return read_GOCAD(in, dummy, points, polygons, np);
} }
template <typename PointRange, typename PolygonRange, typename NamedParameters>
bool read_GOCAD(const std::string& fname,
PointRange& points,
PolygonRange& polygons,
const NamedParameters& np)
{
return read_GOCAD(fname.c_str(), points, polygons, np);
}
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `polygons`, in the GOCAD format.
*
* \see \ref IOStreamGocad
*/
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool read_GOCAD(std::istream& is, PointRange& points, PolygonRange& polygons) bool read_GOCAD(std::istream& is, PointRange& points, PolygonRange& polygons)
{ {
@ -146,12 +147,24 @@ bool read_GOCAD(std::istream& is, PointRange& points, PolygonRange& polygons)
return read_GOCAD(is, dummy, points, polygons, parameters::all_default()); return read_GOCAD(is, dummy, points, polygons, parameters::all_default());
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of the file `fname` into `points` and `polygons`, in the GOCAD format.
*
* \see \ref IOStreamGocad
*/
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool read_GOCAD(const char* fname, PointRange& points, PolygonRange& polygons) bool read_GOCAD(const char* fname, PointRange& points, PolygonRange& polygons)
{ {
return read_GOCAD(fname, points, polygons, parameters::all_default()); return read_GOCAD(fname, points, polygons, parameters::all_default());
} }
template <typename PointRange, typename PolygonRange>
bool read_GOCAD(const std::string& fname, PointRange& points, PolygonRange& polygons)
{
return read_GOCAD(fname, points, polygons, parameters::all_default());
}
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@ -208,13 +221,7 @@ bool write_GOCAD(std::ostream& os,
} }
} //end internal } //end internal
}//end IO }//end IO
/*!
\ingroup IOstreamFunctions
* writes the content of `points` and `polygons` in `out`, in the TS format.
\see \ref IOStreamGocad
*/
template <typename PointRange, template <typename PointRange,
typename PolygonRange, typename PolygonRange,
typename CGAL_BGL_NP_TEMPLATE_PARAMETERS> typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
@ -226,7 +233,13 @@ bool write_GOCAD(std::ostream& os,
return IO::internal::write_GOCAD(os, "anonymous", points, polygons, np); return IO::internal::write_GOCAD(os, "anonymous", points, polygons, np);
} }
/*!
\ingroup IOstreamFunctions
* writes the content of `points` and `polygons` in `out`, in the TS format.
\see \ref IOStreamGocad
*/
template <typename PointRange, template <typename PointRange,
typename PolygonRange> typename PolygonRange>
bool write_GOCAD(std::ostream& os, bool write_GOCAD(std::ostream& os,
@ -237,13 +250,6 @@ bool write_GOCAD(std::ostream& os,
} }
/*!
\ingroup IOstreamFunctions
* writes the content of `points` and `polygons` in a file named `fname`, in the TS format.
\see \ref IOStreamGocad
*/
template <typename PointRange, template <typename PointRange,
typename PolygonRange, typename PolygonRange,
typename CGAL_BGL_NP_TEMPLATE_PARAMETERS> typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
@ -256,6 +262,14 @@ bool write_GOCAD(const char* fname,
return IO::internal::write_GOCAD(os, fname, points, polygons, np); return IO::internal::write_GOCAD(os, fname, points, polygons, np);
} }
/*!
\ingroup IOstreamFunctions
* writes the content of `points` and `polygons` in a file named `fname`, in the TS format.
\see \ref IOStreamGocad
*/
template <typename PointRange, template <typename PointRange,
typename PolygonRange> typename PolygonRange>
bool write_GOCAD(const char* fname, bool write_GOCAD(const char* fname,

View File

@ -114,14 +114,7 @@ bool read_OBJ(std::istream& is,
} // namespace internal } // namespace internal
} // namespace IO } // namespace IO
//! \ingroup IOstreamFunctions
//!
/// reads the content of `is` into `points` and `faces`, using the `OBJ` format.
///
/// \tparam PointRange a `RandomAccessContainer` of `Point_3,
/// \tparam PolygonRange a `RandomAccessContainer` of `RandomAccessContainer` of `std::size_t`
///
/// \see \ref IOStreamOBJ
template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS> template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool read_OBJ(std::istream& is, bool read_OBJ(std::istream& is,
PointRange& points, PointRange& points,
@ -136,14 +129,6 @@ bool read_OBJ(std::istream& is,
CGAL::Emptyset_iterator())); CGAL::Emptyset_iterator()));
} }
//! \ingroup IOstreamFunctions
//!
/// reads the content of the file `fname` into `points` and `faces`, using the `OBJ` format.
///
/// \tparam PointRange a `RandomAccessContainer` of `Point_3,
/// \tparam PolygonRange a `RandomAccessContainer` of `RandomAccessContainer` of `std::size_t`
///
/// \see \ref IOStreamOBJ
template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS> template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool read_OBJ(const char* fname, bool read_OBJ(const char* fname,
PointRange& points, PointRange& points,
@ -160,12 +145,28 @@ bool read_OBJ(const std::string& fname, PointRange& points, PolygonRange& polygo
return read_OBJ(fname.c_str(), points, polygons, np); return read_OBJ(fname.c_str(), points, polygons, np);
} }
//! \ingroup IOstreamFunctions
//!
/// reads the content of `is` into `points` and `faces`, using the `OBJ` format.
///
/// \tparam PointRange a `RandomAccessContainer` of `Point_3,
/// \tparam PolygonRange a `RandomAccessContainer` of `RandomAccessContainer` of `std::size_t`
///
/// \see \ref IOStreamOBJ
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool read_OBJ(std::istream& is, PointRange& points, PolygonRange& polygons) bool read_OBJ(std::istream& is, PointRange& points, PolygonRange& polygons)
{ {
return read_OBJ(is, points, polygons, parameters::all_default()); return read_OBJ(is, points, polygons, parameters::all_default());
} }
//! \ingroup IOstreamFunctions
//!
/// reads the content of the file `fname` into `points` and `faces`, using the `OBJ` format.
///
/// \tparam PointRange a `RandomAccessContainer` of `Point_3,
/// \tparam PolygonRange a `RandomAccessContainer` of `RandomAccessContainer` of `std::size_t`
///
/// \see \ref IOStreamOBJ
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool read_OBJ(const char* fname, PointRange& points, PolygonRange& polygons) bool read_OBJ(const char* fname, PointRange& points, PolygonRange& polygons)
{ {

View File

@ -224,24 +224,6 @@ bool read_PLY(std::istream& is,
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `polygons`, in the PLY format.
*
* `PointRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is a `CGAL::Point_3`.
*
* `PolygonRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is `std::size_t`.
*
\cgalNamedParamsBegin
\cgalParamBegin{face_color_map} the property map with the colors associated to the faces of `g`.\cgalParamEnd
\cgalParamBegin{vertex_color_map} the property map with the colors associated to the vertices of `g`.\cgalParamEnd
\cgalNamedParamsEnd
* \see \ref IOStreamPLY
*/
template <typename PointRange, typename PolygonRange, typename NamedParameters> template <typename PointRange, typename PolygonRange, typename NamedParameters>
bool read_PLY(std::istream& is, bool read_PLY(std::istream& is,
PointRange& points, PointRange& points,
@ -262,6 +244,21 @@ bool read_PLY(std::istream& is,
std::back_inserter(dummy_pf)); std::back_inserter(dummy_pf));
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `polygons`, in the PLY format.
*
* `PointRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is a `CGAL::Point_3`.
*
* `PolygonRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is `std::size_t`.
*
* \see \ref IOStreamPLY
*/
template <class PointRange, class PolygonRange> template <class PointRange, class PolygonRange>
bool bool
read_PLY(std::istream& is, read_PLY(std::istream& is,
@ -352,6 +349,16 @@ read_PLY(std::istream& is,
return !is.fail(); return !is.fail();
} }
template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool read_PLY(const char* fname,
PointRange& points,
PolygonRange& polygons,
const CGAL_BGL_NP_CLASS& np)
{
std::ofstream os(fname);
return read_PLY(os, points, polygons, np);
}
/*! /*!
* \ingroup IOstreamFunctions * \ingroup IOstreamFunctions
* *
@ -363,23 +370,8 @@ read_PLY(std::istream& is,
* `PolygonRange` is a model of the concepts `RandomAccessContainer` * `PolygonRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is `std::size_t`. * and `BackInsertionSequence` whose `value type` is `std::size_t`.
\cgalNamedParamsBegin
\cgalParamBegin{face_color_map} the property map with the colors associated to the faces of `g`.\cgalParamEnd
\cgalParamBegin{vertex_color_map} the property map with the colors associated to the vertices of `g`.\cgalParamEnd
\cgalNamedParamsEnd
* \see \ref IOStreamPLY * \see \ref IOStreamPLY
*/ */
template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool read_PLY(const char* fname,
PointRange& points,
PolygonRange& polygons,
const CGAL_BGL_NP_CLASS& np)
{
std::ofstream os(fname);
return read_PLY(os, points, polygons, np);
}
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool read_PLY(const char* fname, bool read_PLY(const char* fname,
PointRange& points, PointRange& points,
@ -409,18 +401,6 @@ bool read_PLY(const std::string fname,
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
/// Write /// Write
/*!
* \ingroup IOstreamFunctions
*
* writes the content of `points` and `polygons` in `out`, in the PLY format.
*
* `PointRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is a `CGAL::Point_3`.
*
* `PolygonRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is `std::size_t`.
* \see \ref IOStreamPLY
*/
template <class PointRange, class PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS > template <class PointRange, class PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS >
bool write_PLY(std::ostream& out, bool write_PLY(std::ostream& out,
const PointRange& points, const PointRange& points,
@ -472,6 +452,18 @@ bool write_PLY(std::ostream& out,
} }
/*!
* \ingroup IOstreamFunctions
*
* writes the content of `points` and `polygons` in `out`, in the PLY format.
*
* `PointRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is a `CGAL::Point_3`.
*
* `PolygonRange` is a model of the concepts `RandomAccessContainer`
* and `BackInsertionSequence` whose `value type` is `std::size_t`.
* \see \ref IOStreamPLY
*/
template <class PointRange, class PolygonRange> template <class PointRange, class PolygonRange>
bool write_PLY(std::ostream& out, bool write_PLY(std::ostream& out,
const PointRange& points, const PointRange& points,
@ -489,6 +481,17 @@ bool write_PLY(std::ostream& out,
return write_PLY(out, points, polygons, parameters::all_default()); return write_PLY(out, points, polygons, parameters::all_default());
} }
template <class PointRange, class PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS >
bool write_PLY(const char* fname,
const PointRange& points,
const PolygonRange& polygons,
const CGAL_BGL_NP_CLASS& np)
{
std::ofstream os(fname);
return write_PLY(os, points, polygons, np);
}
/*! /*!
* \ingroup IOstreamFunctions * \ingroup IOstreamFunctions
* *
@ -501,16 +504,6 @@ bool write_PLY(std::ostream& out,
* and `BackInsertionSequence` whose `value type` is `std::size_t`. * and `BackInsertionSequence` whose `value type` is `std::size_t`.
* \see \ref IOStreamPLY * \see \ref IOStreamPLY
*/ */
template <class PointRange, class PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS >
bool write_PLY(const char* fname,
const PointRange& points,
const PolygonRange& polygons,
const CGAL_BGL_NP_CLASS& np)
{
std::ofstream os(fname);
return write_PLY(os, points, polygons, np);
}
template <class PointRange, class PolygonRange> template <class PointRange, class PolygonRange>
bool write_PLY(const char* fname, bool write_PLY(const char* fname,
const PointRange& points, const PointRange& points,

View File

@ -30,13 +30,6 @@ namespace CGAL {
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
/// Read /// Read
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `facets`, in the STL format.
*
* \see \ref IOStreamSTL
*/
template <typename PointRange, typename TriangleRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS> template <typename PointRange, typename TriangleRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool read_STL(std::istream& is, bool read_STL(std::istream& is,
PointRange& points, PointRange& points,
@ -120,13 +113,6 @@ bool read_STL(std::istream& is,
} }
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of a file named `fname` into `points` and `facets`, in the STL format.
*
* \see \ref IOStreamSTL
*/
template <typename PointRange, typename TriangleRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS> template <typename PointRange, typename TriangleRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool read_STL(const char* fname, bool read_STL(const char* fname,
PointRange& points, PointRange& points,
@ -143,12 +129,26 @@ bool read_STL(const std::string& fname, PointRange& points, TriangleRange& facet
return read_STL(fname.c_str(), points, facets, np); return read_STL(fname.c_str(), points, facets, np);
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `facets`, in the STL format.
*
* \see \ref IOStreamSTL
*/
template <typename PointRange, typename TriangleRange> template <typename PointRange, typename TriangleRange>
bool read_STL(std::istream& is, PointRange& points, TriangleRange& facets) bool read_STL(std::istream& is, PointRange& points, TriangleRange& facets)
{ {
return read_STL(is, points, facets, parameters::all_default()); return read_STL(is, points, facets, parameters::all_default());
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of a file named `fname` into `points` and `facets`, in the STL format.
*
* \see \ref IOStreamSTL
*/
template <typename PointRange, typename TriangleRange> template <typename PointRange, typename TriangleRange>
bool read_STL(const char* fname, PointRange& points, TriangleRange& facets) bool read_STL(const char* fname, PointRange& points, TriangleRange& facets)
{ {

View File

@ -87,13 +87,6 @@ bool vtkPointSet_to_polygon_soup(vtkPointSet* poly_data,
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
/// Read /// Read
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `polygons`, in the VTPformat.
*
* \see \ref IOStreamVTK
*/
template <typename PointRange, typename PolygonRange, typename NamedParameters> template <typename PointRange, typename PolygonRange, typename NamedParameters>
bool read_VTP(const char* fname, bool read_VTP(const char* fname,
PointRange& points, PointRange& points,
@ -118,6 +111,13 @@ bool read_VTP(const std::string& fname,
return read_VTP(fname.c_str(), points, polygons, np); return read_VTP(fname.c_str(), points, polygons, np);
} }
/*!
* \ingroup IOstreamFunctions
*
* reads the content of `is` into `points` and `polygons`, in the VTPformat.
*
* \see \ref IOStreamVTK
*/
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool read_VTP(const char* fname, bool read_VTP(const char* fname,
PointRange& points, PointRange& points,
@ -338,18 +338,7 @@ void write_soup_polys_points(std::ostream& os,
}//end internal }//end internal
}//end IO }//end IO
/*!
* \ingroup IOstreamFunctions
*
* writes the content of `points` and `polygons` in `out`, in the VTP format.
*
* \cgalNamedParamsBegin
* \cgalParamBegin{use_binary_mode} a Boolean indicating if the
* data should be written in binary (`true`, the default) or in ASCII (`false`).
* \cgalParamEnd
* \cgalNamedParamsEnd
* \see \ref IOStreamVTK
*/
template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS> template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool write_VTP(std::ostream& os, bool write_VTP(std::ostream& os,
const PointRange& points, const PointRange& points,
@ -398,6 +387,18 @@ bool write_VTP(std::ostream& os,
os << "</VTKFile>\n"; os << "</VTKFile>\n";
} }
/*!
* \ingroup IOstreamFunctions
*
* writes the content of `points` and `polygons` in `out`, in the VTP format.
*
* \cgalNamedParamsBegin
* \cgalParamBegin{use_binary_mode} a Boolean indicating if the
* data should be written in binary (`true`, the default) or in ASCII (`false`).
* \cgalParamEnd
* \cgalNamedParamsEnd
* \see \ref IOStreamVTK
*/
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool write_VTP(std::ostream& os, bool write_VTP(std::ostream& os,
const PointRange& points, const PointRange& points,
@ -406,6 +407,16 @@ bool write_VTP(std::ostream& os,
return write_VTP(os, points, polygons, parameters::all_default()); return write_VTP(os, points, polygons, parameters::all_default());
} }
template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool write_VTP(const char* fname,
const PointRange& points,
const PolygonRange& polygons,
const CGAL_BGL_NP_CLASS& np)
{
std::ofstream out(fname);
return write_VTP(out, points, polygons, np);
}
/*! /*!
* \ingroup IOstreamFunctions * \ingroup IOstreamFunctions
* *
@ -418,16 +429,6 @@ bool write_VTP(std::ostream& os,
* \cgalNamedParamsEnd * \cgalNamedParamsEnd
* \see \ref IOStreamVTK * \see \ref IOStreamVTK
*/ */
template <typename PointRange, typename PolygonRange, typename CGAL_BGL_NP_TEMPLATE_PARAMETERS>
bool write_VTP(const char* fname,
const PointRange& points,
const PolygonRange& polygons,
const CGAL_BGL_NP_CLASS& np)
{
std::ofstream out(fname);
return write_VTP(out, points, polygons, np);
}
template <typename PointRange, typename PolygonRange> template <typename PointRange, typename PolygonRange>
bool write_VTP(const char* fname, bool write_VTP(const char* fname,
const PointRange& points, const PointRange& points,