From cff6ca795ef1356cae331d6340a2edc8dd8a0dad Mon Sep 17 00:00:00 2001 From: Sylvain Pion Date: Wed, 29 Nov 2000 16:37:31 +0000 Subject: [PATCH] - Use std::swap(). - New raw_flag that controls the emission of headers and footers for points (points only at the moment). --- .../include/CGAL/IO/Geomview_stream.h | 64 +++++++++++-------- Packages/Geomview/src/Geomview_stream.C | 2 +- 2 files changed, 39 insertions(+), 27 deletions(-) diff --git a/Packages/Geomview/include/CGAL/IO/Geomview_stream.h b/Packages/Geomview/include/CGAL/IO/Geomview_stream.h index 15f180c1a2d..2c4704c1b91 100644 --- a/Packages/Geomview/include/CGAL/IO/Geomview_stream.h +++ b/Packages/Geomview/include/CGAL/IO/Geomview_stream.h @@ -74,9 +74,8 @@ public: } double set_vertex_radius(double r) { - double old = radius; - radius = r; - return old; + std::swap(r, radius); + return r; } int get_line_width() const @@ -85,9 +84,8 @@ public: } int set_line_width(int w) { - int old = line_width; - line_width = w; - return old; + std::swap(w, line_width); + return w; } Geomview_stream &operator<<(const Color &c); @@ -97,11 +95,20 @@ public: Geomview_stream &operator>>(char *expr); + bool set_raw(bool b) + { + std::swap(b, raw_flag); + return b; + } + bool get_raw() const + { + return raw_flag; + } + bool set_trace(bool b) { - bool old = trace_flag; - trace_flag = b; - return old; + std::swap(b, trace_flag); + return b; } bool get_trace() const { @@ -144,6 +151,7 @@ private: void pickplane(const Bbox_3 &bbox); Color vertex_color, edge_color, face_color; + bool raw_flag; // bool that decides if we output footers and headers. bool trace_flag; // bool that makes operator<<() write a trace on cerr. bool binary_flag; // bool that makes operator<< write binary format int line_width; // width of edges @@ -159,17 +167,19 @@ template < class R > Geomview_stream& operator<<(Geomview_stream &gv, const Point_2 &p) { - gv.set_ascii_mode(); - gv << "(geometry P" << gv.point_count++ - << " {appearance {linewidth 5 material {edgecolor " - << gv.vcr() << gv.vcg() << gv.vcb() - << "}}{SKEL 1 1 " ; + if (!gv.get_raw()) { + gv.set_ascii_mode(); + gv << "(geometry P" << gv.point_count++ + << " {appearance {linewidth 5 material {edgecolor " + << gv.vcr() << gv.vcg() << gv.vcb() << "}}{SKEL 1 1 "; + } gv << CGAL::to_double(p.x()) << CGAL::to_double(p.y()) - << 0.0 - << "1 0\n" - << "}})" ; + << 0.0; + + if (!gv.get_raw()) + gv << "1 0\n" << "}})"; return gv; } @@ -182,17 +192,19 @@ template < class R > Geomview_stream& operator<<(Geomview_stream &gv, const Point_3 &p) { - gv.set_ascii_mode(); - gv << "(geometry P" << gv.point_count++ - << " {appearance {linewidth 5 material {edgecolor " - << gv.vcr() << gv.vcg() << gv.vcb() - << "}}{SKEL 1 1 " + if (!gv.get_raw()) { + gv.set_ascii_mode(); + gv << "(geometry P" << gv.point_count++ + << " {appearance {linewidth 5 material {edgecolor " + << gv.vcr() << gv.vcg() << gv.vcb() << "}}{SKEL 1 1 "; + } - << CGAL::to_double(p.x()) + gv << CGAL::to_double(p.x()) << CGAL::to_double(p.y()) - << CGAL::to_double(p.z()) - << "1 0\n" - << "}})" ; + << CGAL::to_double(p.z()); + + if (!gv.get_raw()) + gv << "1 0\n" << "}})"; return gv; } diff --git a/Packages/Geomview/src/Geomview_stream.C b/Packages/Geomview/src/Geomview_stream.C index 478771c04d7..456a4be79ce 100644 --- a/Packages/Geomview/src/Geomview_stream.C +++ b/Packages/Geomview/src/Geomview_stream.C @@ -39,7 +39,7 @@ Geomview_stream::Geomview_stream(const Bbox_3 &bbox, : bbox_count(0), triangle_count(0), sphere_count(0), segment_count(0), point_count(0), tetrahedron_count(0), vertex_color(BLACK), edge_color(BLACK), face_color(BLACK), - trace_flag(false), binary_flag(false), + raw_flag(false), trace_flag(false), binary_flag(false), line_width(1) { setup_geomview(machine, login);