/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield * * This library is open source and may be redistributed and/or modified under * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or * (at your option) any later version. The full license is in LICENSE file * included with this distribution, and on the openscenegraph.org website. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * OpenSceneGraph Public License for more details. */ #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: ParameterOutput& operator = (const ParameterOutput&) { return *this; } 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() << "{"<