//C++ header - Open Scene Graph - Copyright (C) 1998-2002 Robert Osfield //Distributed under the terms of the GNU Library General Public License (LGPL) //as published by the Free Software Foundation. #ifndef OSGDB_PARAMETEROUTPUT #define OSGDB_PARAMETEROUTPUT 1 #include namespace osgDB { class ParameterOutput { public: ParameterOutput(Output& fw): _fw(fw), _numItemsPerLine(fw.getNumIndicesPerLine()), _column(0) {} ParameterOutput(Output& fw,int numItemsPerLine): _fw(fw), _numItemsPerLine(numItemsPerLine), _column(0) {} void begin() { _fw.indent() << "{"< void write(const T& t) { if (_column==0) _fw.indent(); _fw << t; ++_column; if (_column==_numItemsPerLine) { _fw << std::endl; _column = 0; } else { _fw << " "; } } template void write(Iterator first, Iterator last) { for(Iterator itr=first; itr!=last; ++itr) { write(*itr); } } template void writeAsInts(Iterator first, Iterator last) { for(Iterator itr=first; itr!=last; ++itr) { write((int)*itr); } } protected: Output& _fw; int _numItemsPerLine; int _column; }; template void writeArray(Output& fw, Iterator first, Iterator last,int noItemsPerLine=0) { if (noItemsPerLine==0) noItemsPerLine=fw.getNumIndicesPerLine(); fw.indent() << "{"< void writeArrayAsInts(Output& fw, Iterator first, Iterator last,int noItemsPerLine=0) { if (noItemsPerLine==0) noItemsPerLine=fw.getNumIndicesPerLine(); fw.indent() << "{"<