## CGAL::Arr_file_writer<Arrangement>

### Definition

This class contains functions for writing the Arrangement components to a given output stream. Users have to make sure that methods for writing Point and X_curve objects defined in the Arrangement traits class are provided when using the output stream they choose to work with.. This class is templated with Arrangement, and hence the user can work with Arr_file_writer<Arrangement> with its own Arrangement.

### Inherits From

Pm_file_writer

### 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.

Arr_file_writer<Arrangement>::Curve_iterator
| A bidirectional iterator over all curve nodes of the arrangement.
Arr_file_writer<Arrangement>::Subcurve_iterator
| A bidirectional iterator over all subcurve nodes of the arrangement.
Arr_file_writer<Arrangement>::Edge_iterator
| A bidirectional iterator over all edge nodes of the arrangement.

### Creation

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

Arr_file_writer<Arrangement> arr_file_writer ( | std::ostream& o, Arrangement arr, bool verbose = false);

| constructs Arr_file_writer<Arrangement> for a given output stream, the specified Arrangement and a verbose choice.

Arr_file_writer<Arrangement> arr_file_writer ( | std::ostream& o, Arrangement arr, File_header h);

| constructs Arr_file_writer<Arrangement> for a given output stream, the specified Arrangement and File header.

### Operations

The operation Arr_file_writer<Arrangement> supports are all the operations Pm_file_writer supported plus the following:

void | arr_file_writer.write_curve ( Curve_iterator cv)
|  | writes a curve node to the output stream.
void | arr_file_writer.write_subcurve ( Subcurve_iterator scv)
|  | writes a subcurve node to the output stream.
void | arr_file_writer.write_edge ( Edge_iterator edge)
|  | writes an edge node to the output stream.