From 8980559ecda427fde973237e4170e473124f2ea2 Mon Sep 17 00:00:00 2001 From: laurence Date: Fri, 20 Apr 2012 09:18:46 +0100 Subject: [PATCH] ENH: meshTools: Add functions to write lines and vectors to .obj files --- src/meshTools/meshTools/meshTools.C | 33 +++++++++++++++++++++++++++++ src/meshTools/meshTools/meshTools.H | 18 ++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/meshTools/meshTools/meshTools.C b/src/meshTools/meshTools/meshTools.C index 03edfc3825..2d03a0c969 100644 --- a/src/meshTools/meshTools/meshTools.C +++ b/src/meshTools/meshTools/meshTools.C @@ -215,6 +215,39 @@ void Foam::meshTools::writeOBJ } +void Foam::meshTools::writeOBJ +( + Ostream& os, + const point& p1, + const point& p2, + label& count +) +{ + os << "v" << ' ' << p1.x() << ' ' << p1.y() << ' ' << p1.z() << endl; + os << "v" << ' ' << p2.x() << ' ' << p2.y() << ' ' << p2.z() << endl; + + os << "l" << " " << (count + 1) << " " << (count + 2) << endl; + + count += 2; +} + + +void Foam::meshTools::writeOBJ +( + Ostream& os, + const point& p1, + const point& p2 +) +{ + os << "v" << ' ' << p1.x() << ' ' << p1.y() << ' ' << p1.z() << endl; + + os << "vn" + << ' ' << p2.x() - p1.x() + << ' ' << p2.y() - p1.y() + << ' ' << p2.z() - p1.z() << endl; +} + + void Foam::meshTools::writeOBJ ( Ostream& os, diff --git a/src/meshTools/meshTools/meshTools.H b/src/meshTools/meshTools/meshTools.H index 65dff1f3b6..3db94a8e5a 100644 --- a/src/meshTools/meshTools/meshTools.H +++ b/src/meshTools/meshTools/meshTools.H @@ -107,6 +107,24 @@ namespace meshTools const point& pt ); + //- Write obj representation of a line connecting two points + // Need to keep track of points that have been added. count starts at 0 + void writeOBJ + ( + Ostream& os, + const point& p1, + const point& p2, + label& count + ); + + //- Write obj representation of a point p1 with a vector from p1 to p2 + void writeOBJ + ( + Ostream& os, + const point& p1, + const point& p2 + ); + //- Write obj representation of faces subset void writeOBJ (