From ec7ceed1e21890b93265c7b19d462556251efa77 Mon Sep 17 00:00:00 2001 From: mattijs Date: Fri, 3 May 2013 09:18:13 +0100 Subject: [PATCH] ENH: OBJedgeFormat: support 2 vertex faces (blender) --- .../edgeMeshFormats/obj/OBJedgeFormat.C | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C b/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C index 5be68757dc..12cad6b89d 100644 --- a/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C +++ b/src/edgeMesh/edgeMeshFormats/obj/OBJedgeFormat.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -141,8 +141,6 @@ bool Foam::fileFormats::OBJedgeFormat::read(const fileName& filename) } else if (cmd == "l") { - edge edgeRead; - // Assume 'l' is followed by space. string::size_type endNum = 1; @@ -164,6 +162,33 @@ bool Foam::fileFormats::OBJedgeFormat::read(const fileName& filename) dynEdges.append(edgeRead); } } + else if (cmd == "f") + { + // Support for faces with 2 vertices + + // Assume 'f' is followed by space. + string::size_type endNum = 1; + + readVertices + ( + line, + endNum, + dynVertices + ); + + if (dynVertices.size() == 2) + { + for (label i = 1; i < dynVertices.size(); i++) + { + edge edgeRead(dynVertices[i-1], dynVertices[i]); + + dynUsedPoints[edgeRead[0]] = edgeRead[0]; + dynUsedPoints[edgeRead[1]] = edgeRead[1]; + + dynEdges.append(edgeRead); + } + } + } } // cull unused points