From 82dc65b3b4ed26cb41f3ba6c4cba848a79b1a650 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Mon, 31 Jan 2011 09:25:24 +0000 Subject: [PATCH] new method to write rods in simple binary format [[Imported from SVN: r6904]] --- dune/gfe/rodwriter.hh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dune/gfe/rodwriter.hh b/dune/gfe/rodwriter.hh index 3837aa19..700b2a07 100644 --- a/dune/gfe/rodwriter.hh +++ b/dune/gfe/rodwriter.hh @@ -9,6 +9,33 @@ #include "rigidbodymotion.hh" +class RodWriter +{ +public: + + static void writeBinary(const std::vector<RigidBodyMotion<3> >& rod, + const std::string& filename) + { + FILE* fpRod = fopen(filename.c_str(), "wb"); + if (!fpRod) + DUNE_THROW(SolverError, "Couldn't open file " << filename << " for writing"); + + for (int j=0; j<rod.size(); j++) { + + for (int k=0; k<3; k++) + fwrite(&rod[j].r[k], sizeof(double), 1, fpRod); + + for (int k=0; k<4; k++) // 3d hardwired here! + fwrite(&rod[j].q[k], sizeof(double), 1, fpRod); + + } + + fclose(fpRod); + + } + +}; + /** \brief Write a planar rod */ void writeRod(const std::vector<RigidBodyMotion<2> >& rod, -- GitLab