| advanced |

## CGAL::Pm_file_writer<Planar_map>

### Definition

The Pm_file_writer<Planar_map> class is inherited from the File_header class. This class contains functions for writing the Planar map components to a given output stream. Users have to make sure that methods for writing Point_2 and X_curve_2 objects defined in the Planar map traits class are provided when using the output stream they choose to work with.. This class is templated with Planar map, and hence the user can work with Pm_file_writer<Planar_map> with its own Planar map.

### Types

The following handles and iterators have appropriate constant counterparts. The mutable types are assignable to their constant counterparts. The iterators are assignable to the respective handle types. Wherever the handles appear in function parameter lists, the appropriate iterator can be used as well.

Pm_file_writer<Planar_map>::Vertex_handle
| handle to the Planar map vertex.
Pm_file_writer<Planar_map>::Halfedge_handle
| handle to the Planar map halfedge.
Pm_file_writer<Planar_map>::Face_handle
| handle to the Planar map face.
Pm_file_writer<Planar_map>::Vertex_iterator
| a bidirectional iterator over the vertices of the Planar map.
Pm_file_writer<Planar_map>::Halfedge_iterator
| a bidirectional iterator over the halfedges of the Planar map.
Pm_file_writer<Planar_map>::Face_iterator
| a bidirectional iterator over the faces of the Planar map.

### Creation

As described in the introduction, the Planar map users can choose a verbose format for printing their planar map, this is done by putting this option in the constructor.

Pm_file_writer<Planar_map> pm_file_writer ( | std::ostream& o, PM pm, bool verbose = false);

| constructs Pm_file_writer<Planar_map> for a given output stream, the specified Planar map and a verbose choice.

Pm_file_writer<Planar_map> pm_file_writer ( | std::ostream& o, PM pm, File_header h);

| constructs Pm_file_writer<Planar_map> for a given output stream, the specified Planar map and File header.

### Operations

In the following operations the methods for writing lines in comments are defined only if the comments flag is set to true:

void | pm_file_writer.write_title ( const char *feature_name)
|  | writes a title in comments to the output stream.
void | pm_file_writer.write_pm_vhf_sizes ()
|  | writes the number of vertices, halfedges and faces in the Planar map to the output stream.
void | pm_file_writer.write_vertices_header ()
|  | writes a title in comments that begins the vertices list to the output stream.
void | pm_file_writer.write_halfedges_header ()
|  | writes a title in comments that begins the halfedges list to the output stream.
void | pm_file_writer.write_faces_header ()
|  | writes a title in comments that begins the faces list to the output stream.
void | pm_file_writer.write_comment ( const char *str)
|  | writes a line by comments with the information noted in str to the output stream.
void | pm_file_writer.write_comment ( const char *str, int i)
|  | writes a line by comments with the information noted in str and i to the output stream.

void

pm_file_writer.write_value ( | unsigned int val, char delimiter = newline)

|  | writing an integer value followed by a delimiter to the output stream. The delimiter has a default value set to the newline character (\n).
ostream& | pm_file_writer.out ()
|  | returns the output stream the Planar map is written to.
void | pm_file_writer.write_vertex ( Vertex_handle v)
|  | writes a vertex of the Planar map to the output stream.
void | pm_file_writer.write_halfedge ( Halfedge_handle h)
|  | writes an halfedge of the Planar map to the output stream.
void | pm_file_writer.write_face ( Face_handle f)
|  | writes a face of the Planar map to the output stream.

void

pm_file_writer.write_vertices ( | Vertex_iterator Vertices_begin, Vertex_iterator Vertices_end)

|  | writes all the vertices in the range [Vertices_begin, Vertices_end) to the output stream.

void

pm_file_writer.write_halfedges ( | Halfedge_const_iterator Halfedges_begin, Halfedge_const_iterator Halfedges_end)

|  | writes all the halfedges in the range [Halfedges_begin, Halfedges_end) to the output stream.

void

pm_file_writer.write_faces ( | Face_iterator Faces_begin, Face_iterator Faces_end)

|  | writes all the faces in the range [Faces_begin, Faces_end) to the output stream.

| advanced |