Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #include "SgSystem.h"
00007 #include "SgWrite.h"
00008
00009 #include <cstdio>
00010 #include <iostream>
00011 #include <iomanip>
00012 #include <sstream>
00013 #include "SgVector.h"
00014
00015 using namespace std;
00016
00017
00018
00019 ostream& operator<<(ostream& out, const SgWriteLabel& w)
00020 {
00021 string label = w.m_label + " ";
00022 out << left << setw(15) << label;
00023 return out;
00024 }
00025
00026 ostream& operator<<(ostream& out, const SgWriteLine &w)
00027 {
00028 SG_UNUSED(w);
00029 out <<
00030 "----------"
00031 "----------"
00032 "----------"
00033 "----------"
00034 "----------"
00035 "----------"
00036 "----------"
00037 "--------\n";
00038 return out;
00039 }
00040
00041
00042
00043 ostream& operator<<(ostream& out, const SgWriteMove& w)
00044 {
00045 out << SgBW(w.m_color) << ' ' << SgWritePoint(w.m_point) << ' ';
00046 return out;
00047 }
00048
00049
00050
00051 SgWritePointList::SgWritePointList(const vector<SgPoint>& pointList,
00052 std::string label, bool writeSize)
00053 : m_writeSize(writeSize),
00054 m_pointList(pointList),
00055 m_label(label)
00056 {
00057 }
00058
00059 SgWritePointList::SgWritePointList(const SgVector<SgPoint>& pointList,
00060 string label, bool writeSize)
00061 : m_writeSize(writeSize),
00062 m_label(label)
00063 {
00064 for (SgVectorIterator<SgPoint> it(pointList); it; ++it)
00065 m_pointList.push_back(*it);
00066 }
00067
00068 ostream& SgWritePointList::Write(ostream& out) const
00069 {
00070 const size_t charPerLine = 60;
00071 size_t size = m_pointList.size();
00072 if (m_label != "")
00073 out << SgWriteLabel(m_label);
00074 ostringstream buffer;
00075 if (m_writeSize)
00076 buffer << size;
00077 if (size > 0)
00078 {
00079 if (m_writeSize)
00080 buffer << " ";
00081 for (vector<SgPoint>::const_iterator it = m_pointList.begin();
00082 it != m_pointList.end(); ++it)
00083 {
00084 if (buffer.str().size() > charPerLine)
00085 {
00086 out << buffer.str() << '\n';
00087 buffer.str("");
00088 if (m_label != "")
00089 out << SgWriteLabel("");
00090 }
00091 buffer << SgWritePoint(*it) << ' ';
00092 }
00093 }
00094 out << buffer.str() << '\n';
00095 return out;
00096 }
00097
00098 ostream& operator<<(ostream& out, const SgWritePointList& write)
00099 {
00100 return write.Write(out);
00101 }
00102
00103 ostream& operator<<(ostream& out, const SgWriteBoolean &w)
00104 {
00105 if (w.m_value)
00106 out << "true";
00107 else
00108 out << "false";
00109 return out;
00110 }
00111
00112
00113
00114 SgWriteBoolAsInt::SgWriteBoolAsInt(bool value)
00115 : m_value(value)
00116 {
00117 }
00118
00119 ostream& SgWriteBoolAsInt::Write(ostream& out) const
00120 {
00121 return out << (m_value ? "1" : "0");
00122 }
00123
00124 ostream& operator<<(ostream& out, const SgWriteBoolAsInt& write)
00125 {
00126 return write.Write(out);
00127 }
00128
00129
00130