From c9180795bbd70fc4eae72dd1e2a9d2634d796edc Mon Sep 17 00:00:00 2001 From: Martin Schultz Date: Fri, 11 Sep 2015 14:34:01 +0200 Subject: [PATCH] * made Stringstreams in offReader static and reuse them to save performance --- src/OpenMesh/Core/IO/reader/OFFReader.cc | 32 ++++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/OpenMesh/Core/IO/reader/OFFReader.cc b/src/OpenMesh/Core/IO/reader/OFFReader.cc index c7c47f5d..94e2ccf1 100644 --- a/src/OpenMesh/Core/IO/reader/OFFReader.cc +++ b/src/OpenMesh/Core/IO/reader/OFFReader.cc @@ -182,16 +182,18 @@ _OFFReader_::read_ascii(std::istream& _in, BaseImporter& _bi, Options& _opt) con { - unsigned int i, j, k, l, idx; - unsigned int nV, nF, dummy; - OpenMesh::Vec3f v, n; - OpenMesh::Vec2f t; - OpenMesh::Vec3i c3; - OpenMesh::Vec3f c3f; - OpenMesh::Vec4i c4; - OpenMesh::Vec4f c4f; - BaseImporter::VHandles vhandles; - VertexHandle vh; + unsigned int i, j, k, l, idx; + unsigned int nV, nF, dummy; + OpenMesh::Vec3f v, n; + OpenMesh::Vec2f t; + OpenMesh::Vec3i c3; + OpenMesh::Vec3f c3f; + OpenMesh::Vec4i c4; + OpenMesh::Vec4f c4f; + BaseImporter::VHandles vhandles; + VertexHandle vh; + static std::stringstream stream; + static std::string trash; // read header line std::string header; @@ -227,13 +229,12 @@ _OFFReader_::read_ascii(std::istream& _in, BaseImporter& _bi, Options& _opt) con int colorType = getColorType(line, options_.vertex_has_texcoord() ); - std::stringstream stream( line ); + stream.str(line); + stream.clear(); //perhaps read COLOR if ( options_.vertex_has_color() ){ - std::string trash; - switch (colorType){ case 0 : break; //no color case 1 : stream >> trash; break; //one int (isn't handled atm) @@ -315,9 +316,8 @@ _OFFReader_::read_ascii(std::istream& _in, BaseImporter& _bi, Options& _opt) con int colorType = getColorType(line, false ); - std::stringstream stream( line ); - - std::string trash; + stream.str(line); + stream.clear(); switch (colorType){ case 0 : break; //no color