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