CGAL 5.6.1 - IO Streams

I/O Functions for the STereoLithography (STL) File Format.

Functions

template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::read_STL (std::istream &is, PointRange &points, TriangleRange &facets, const NamedParameters &np=parameters::default_values())
 reads the content of is into points and facets, using the STereoLithography (STL) File Format. More...
 
template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::read_STL (const std::string &fname, PointRange &points, TriangleRange &facets, const NamedParameters &np=parameters::default_values())
 reads the content of a file named fname into points and facets, using the STereoLithography (STL) File Format. More...
 
template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::write_STL (std::ostream &os, const PointRange &points, const TriangleRange &facets, const NamedParameters &np=parameters::default_values())
 writes the content of points and facets in os, using the STereoLithography (STL) File Format. More...
 
template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::write_STL (const std::string &fname, const PointRange &points, const TriangleRange &facets, const NamedParameters &np=parameters::default_values())
 writes the content of points and facets in a file named fname, using the STereoLithography (STL) File Format. More...
 

Function Documentation

◆ read_STL() [1/2]

template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::read_STL ( std::istream &  is,
PointRange &  points,
TriangleRange &  facets,
const NamedParameters &  np = parameters::default_values() 
)

#include <CGAL/IO/STL.h>

reads the content of is into points and facets, using the STereoLithography (STL) File Format.

Attention
The polygon soup is not cleared, and the data from the stream are appended.
To read a binary file, the flag std::ios::binary must be set during the creation of the ifstream.
Template Parameters
PointRangea model of the concepts RandomAccessContainer and BackInsertionSequence whose value type is the point type
TriangleRangea model of the concept SequenceContainer whose value_type is itself a model of the concept SequenceContainer whose value_type is an unsigned integer type convertible to std::size_t.
NamedParametersa sequence of Named Parameters
Parameters
isthe input stream
pointspoints of the soup of triangles
facetsa range of triangles; each triangle uses the indices of the points in points.
npoptional Named Parameters described below
Optional Named Parameters
  • indicates whether output warnings and error messages should be printed or not.
  • Type: Boolean
  • Default: false
Returns
true if the reading was successful, false otherwise.

◆ read_STL() [2/2]

template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::read_STL ( const std::string &  fname,
PointRange &  points,
TriangleRange &  facets,
const NamedParameters &  np = parameters::default_values() 
)

#include <CGAL/IO/STL.h>

reads the content of a file named fname into points and facets, using the STereoLithography (STL) File Format.

If use_binary_mode is true, but the reading fails, ASCII reading will be automatically tested.

Attention
The polygon soup is not cleared, and the data from the file are appended.
Template Parameters
PointRangea model of the concept RandomAccessContainer whose value type is the point type.
TriangleRangea model of the concept SequenceContainer whose value_type is itself a model of the concept SequenceContainer whose value_type is an unsigned integer type convertible to std::size_t.
NamedParametersa sequence of Named Parameters
Parameters
fnamethe path to the input file
pointspoints of the soup of triangles
facetsa range of triangles; each triangle uses the indices of the points in points.
npoptional Named Parameters described below
Optional Named Parameters
  • indicates whether data should be read in binary (true) or in ASCII (false)
  • Type: Boolean
  • Default: true

  • indicates whether output warnings and error messages should be printed or not.
  • Type: Boolean
  • Default: false
Returns
true if the reading was successful, false otherwise.

◆ write_STL() [1/2]

template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::write_STL ( std::ostream &  os,
const PointRange &  points,
const TriangleRange &  facets,
const NamedParameters &  np = parameters::default_values() 
)

#include <CGAL/IO/STL.h>

writes the content of points and facets in os, using the STereoLithography (STL) File Format.

Attention
To write to a binary file, the flag std::ios::binary must be set during the creation of the ofstream, and the IO::Mode of the stream must be set to BINARY.
Template Parameters
PointRangea model of the concept RandomAccessContainer whose value type is the point type.
TriangleRangea model of the concept SequenceContainer whose value_type is itself a model of the concept SequenceContainer whose value_type is an unsigned integer type convertible to std::size_t.
NamedParametersa sequence of Named Parameters
Parameters
osthe output stream
pointspoints of the soup of triangles
facetsa range of triangles; each triangle uses the indices of the points in points.
npoptional sequence of Named Parameters among the ones listed below
Optional Named Parameters
  • a parameter used to set the precision (i.e. how many digits are generated) of the output stream
  • Type: int
  • Default: the precision of the stream os
  • Extra: This parameter is only meaningful while using ASCII encoding.
Returns
true if the writing was successful, false otherwise.

◆ write_STL() [2/2]

template<typename PointRange , typename TriangleRange , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool CGAL::IO::write_STL ( const std::string &  fname,
const PointRange &  points,
const TriangleRange &  facets,
const NamedParameters &  np = parameters::default_values() 
)

#include <CGAL/IO/STL.h>

writes the content of points and facets in a file named fname, using the STereoLithography (STL) File Format.

Attention
The polygon soup is not cleared, and the data from the file are appended.
Template Parameters
PointRangea model of the concept RandomAccessContainer whose value type is the point type.
TriangleRangea model of the concept SequenceContainer whose value_type is itself a model of the concept SequenceContainer whose value_type is an unsigned integer type convertible to std::size_t.
NamedParametersa sequence of Named Parameters
Parameters
fnamethe path to the output file
pointspoints of the soup of triangles
facetsa range of triangles; each triangle uses the indices of the points in points.
npoptional sequence of Named Parameters among the ones listed below
Optional Named Parameters
  • indicates whether data should be written in binary (true) or in ASCII (false)
  • Type: Boolean
  • Default: true

  • a parameter used to set the precision (i.e. how many digits are generated) of the output stream
  • Type: int
  • Default: 6
  • Extra: This parameter is only meaningful while using ASCII encoding.
Returns
true if the writing was successful, false otherwise.