mirror of https://github.com/CGAL/cgal
Fix issues in Inventor/VRML writers
This commit is contained in:
parent
f99016972e
commit
8e6f695e76
|
|
@ -14,6 +14,7 @@
|
|||
#include <CGAL/IO/OFF/Scanner_OFF.h>
|
||||
#include <CGAL/IO/OFF/File_scanner_OFF.h>
|
||||
#include <CGAL/IO/OFF/File_writer_OFF.h>
|
||||
#include <CGAL/IO/OFF/generic_copy_OFF.h>
|
||||
#include <CGAL/IO/helpers.h>
|
||||
#include <CGAL/IO/Generic_writer.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public:
|
|||
typedef File_scanner_OFF Scanner;
|
||||
typedef I_Scanner_OFF_vertex_iterator<Pt> Self;
|
||||
|
||||
I_Scanner_OFF_vertex_iterator(std::size_t cnt) : m_scan(0), m_cnt(cnt+1) {}
|
||||
I_Scanner_OFF_vertex_iterator(std::size_t cnt) : m_scan(nullptr), m_cnt(cnt+1) {}
|
||||
I_Scanner_OFF_vertex_iterator( Scanner& s, int cnt)
|
||||
: m_scan(&s), m_cnt(cnt)
|
||||
{
|
||||
|
|
@ -118,7 +118,7 @@ private:
|
|||
public:
|
||||
|
||||
I_Scanner_OFF_vertex_and_normals_iterator( int cnt)
|
||||
: m_scan(0), m_cnt(cnt+1) {}
|
||||
: m_scan(nullptr), m_cnt(cnt+1) {}
|
||||
I_Scanner_OFF_vertex_and_normals_iterator( Scanner& s, int cnt)
|
||||
: m_scan(&s), m_cnt(cnt)
|
||||
{
|
||||
|
|
@ -184,7 +184,7 @@ public:
|
|||
typedef I_Scanner_OFF_facet_iterator Self;
|
||||
typedef value_type::iterator iterator;
|
||||
|
||||
I_Scanner_OFF_facet_iterator( std::size_t cnt) : m_scan(0), m_cnt(cnt+1) {}
|
||||
I_Scanner_OFF_facet_iterator( std::size_t cnt) : m_scan(nullptr), m_cnt(cnt+1) {}
|
||||
I_Scanner_OFF_facet_iterator( Scanner& s, std::size_t cnt)
|
||||
: m_scan(&s), m_cnt(cnt)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ generic_copy_OFF(File_scanner_OFF& scanner,
|
|||
writer.write_header(out,
|
||||
scanner.size_of_vertices(),
|
||||
scanner.polyhedral_surface() ? scanner.size_of_halfedges() : 0,
|
||||
scanner.size_of_facets());
|
||||
scanner.size_of_facets());
|
||||
|
||||
// read in all vertices
|
||||
double x, y, z; // Point coordinates.
|
||||
|
|
|
|||
|
|
@ -25,19 +25,19 @@ namespace CGAL {
|
|||
|
||||
class File_writer_inventor
|
||||
{
|
||||
Inventor_ostream_base* m_os;
|
||||
Inventor_ostream_base m_os;
|
||||
std::size_t m_facets;
|
||||
|
||||
public:
|
||||
File_writer_inventor() {}
|
||||
std::ostream& out() const { return m_os->os(); }
|
||||
std::ostream& out() const { return m_os.os(); }
|
||||
|
||||
void write_header(Inventor_ostream_base& o,
|
||||
void write_header(std::ostream& o,
|
||||
std::size_t vertices,
|
||||
std::size_t halfedges,
|
||||
std::size_t facets)
|
||||
{
|
||||
m_os = &o;
|
||||
m_os.open(o);
|
||||
m_facets = facets;
|
||||
|
||||
out() << "# " << vertices << " vertices\n";
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ namespace CGAL {
|
|||
class Inventor_ostream_base
|
||||
{
|
||||
private:
|
||||
std::ostream* m_os;
|
||||
std::ostream* m_os = nullptr;
|
||||
|
||||
public:
|
||||
Inventor_ostream_base() : m_os(0) {}
|
||||
Inventor_ostream_base() : m_os(nullptr) {}
|
||||
Inventor_ostream_base(std::ostream& o) : m_os(&o) {}
|
||||
~Inventor_ostream_base() { close(); }
|
||||
void open(std::ostream& o) { m_os = &o; }
|
||||
|
|
@ -53,13 +53,13 @@ public:
|
|||
return m_os && !m_os->fail();
|
||||
}
|
||||
|
||||
std::ostream& os()
|
||||
std::ostream& os() const
|
||||
{
|
||||
// The behaviour if m_os == 0 could be changed to return
|
||||
// The behaviour if m_os == nullptr could be changed to return
|
||||
// cerr or a file handle to /dev/null. The latter one would
|
||||
// mimick the behaviour that one can still use a stream with
|
||||
// an invalid stream, but without producing any output.
|
||||
CGAL_assertion( m_os != 0 );
|
||||
CGAL_assertion( m_os != nullptr );
|
||||
return *m_os;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -21,26 +21,27 @@
|
|||
|
||||
#include <CGAL/IO/VRML/VRML_2_ostream.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <cstddef>
|
||||
#include <iostream>
|
||||
|
||||
namespace CGAL {
|
||||
|
||||
class File_writer_VRML_2
|
||||
{
|
||||
VRML_2_ostream* m_os;
|
||||
VRML_2_ostream m_os;
|
||||
std::size_t m_facets;
|
||||
|
||||
public:
|
||||
File_writer_VRML_2() {}
|
||||
std::ostream& out() const { return m_os->os(); }
|
||||
|
||||
void write_header(VRML_2_ostream& o,
|
||||
std::ostream& out() const { return m_os.os(); }
|
||||
|
||||
void write_header(std::ostream& o,
|
||||
std::size_t vertices,
|
||||
std::size_t halfedges,
|
||||
std::size_t facets)
|
||||
{
|
||||
m_os = &o;
|
||||
m_os.open(o);
|
||||
m_facets = facets;
|
||||
|
||||
out() << " #-- Begin of Polygon Mesh\n";
|
||||
|
|
@ -80,7 +81,7 @@ public:
|
|||
" coordIndex [" << std::endl;
|
||||
}
|
||||
|
||||
void write_facet_begin( std::size_t) { out() << " "; }
|
||||
void write_facet_begin(std::size_t) { out() << " "; }
|
||||
void write_facet_vertex_index( std::size_t idx) { out() << idx << ',';}
|
||||
void write_facet_end() { out() << "-1,\n"; }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace CGAL {
|
|||
class VRML_2_ostream
|
||||
{
|
||||
public:
|
||||
VRML_2_ostream() : m_os(0) {}
|
||||
VRML_2_ostream() : m_os(nullptr) {}
|
||||
VRML_2_ostream(std::ostream& o) : m_os(&o) { header(); }
|
||||
~VRML_2_ostream() { close(); }
|
||||
|
||||
|
|
@ -44,13 +44,13 @@ public:
|
|||
|
||||
explicit operator bool () { return m_os && !m_os->fail(); }
|
||||
|
||||
std::ostream& os()
|
||||
std::ostream& os() const
|
||||
{
|
||||
// The behaviour if m_os == 0 could be changed to return
|
||||
// The behaviour if m_os == nullptr could be changed to return
|
||||
// cerr or a file handle to /dev/null. The latter one would
|
||||
// mimick the behaviour that one can still use a stream with
|
||||
// an invalid stream, but without producing any output.
|
||||
CGAL_assertion( m_os != 0 );
|
||||
CGAL_assertion( m_os != nullptr );
|
||||
return *m_os;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue