commit edd26b85f56a3f955110c80833b696ef50768afb
parent 9f84b1b766d83eba1d8e470acaa7602122f6ab9c
Author: Fabian Wermelinger <fabianw@mavt.ethz.ch>
Date: Thu, 30 Jun 2016 17:12:18 +0200
added 1D ASCII photo paper
Diffstat:
2 files changed, 80 insertions(+), 0 deletions(-)
diff --git a/include/PhotoDAT1D.h b/include/PhotoDAT1D.h
@@ -0,0 +1,37 @@
+// File : PhotoDAT1D.h
+// Date : Thu 30 Jun 2016 03:58:09 PM CEST
+// Author : Fabian Wermelinger
+// Description: ASCII .dat file for 1D extraction
+// Copyright 2016 ETH Zurich. All Rights Reserved.
+#ifndef PHOTODAT1D_H_OSYU1497
+#define PHOTODAT1D_H_OSYU1497
+
+#include <string>
+#include <vector>
+
+#include "common.h"
+#include "Polaroid.h"
+#include "PhotoPaper.h"
+
+class PhotoDAT1D : public PhotoPaper
+{
+private:
+ std::vector<Real> m_data;
+ Real m_time;
+
+public:
+ PhotoDAT1D(const int N=0, const std::string filename="dat1d", const Real t=0) : PhotoPaper(0,0,filename), m_data(N), m_time(t)
+ {
+ m_description = "ASCII data";
+ }
+ virtual ~PhotoDAT1D() { }
+
+ virtual void make_new(const std::string name, const int N, const int dummy);
+ virtual void resize(const int N, const int dummy);
+ virtual void write();
+ virtual void set_pixel(const double phi, const int x, const int dummy);
+ virtual std::string suffix() const { return std::string(".dat"); }
+ inline void set_time(const Real t) { m_time = t; }
+};
+
+#endif /* PHOTODAT1D_H_OSYU1497 */
diff --git a/src/PhotoDAT1D.cpp b/src/PhotoDAT1D.cpp
@@ -0,0 +1,43 @@
+// File : PhotoDAT1D.cpp
+// Date : Thu 30 Jun 2016 04:14:56 PM CEST
+// Author : Fabian Wermelinger
+// Description: 1D ASCII paper Implementation
+// Copyright 2016 ETH Zurich. All Rights Reserved.
+#include <cassert>
+#include <fstream>
+#include "PhotoDAT1D.h"
+
+using namespace std;
+
+void PhotoDAT1D::make_new(const string name, const int N, const int dummy)
+{
+ m_fname = name;
+ m_data.clear();
+ m_data.resize(N);
+}
+
+void PhotoDAT1D::resize(const int N, const int dummy)
+{
+ m_data.clear();
+ m_data.resize(N);
+}
+
+void PhotoDAT1D::write()
+{
+ ofstream asciiout(m_fname.c_str());
+ asciiout.setf(std::ios::scientific, std::ios::floatfield);
+ asciiout.precision(12);
+ if (!m_data.empty())
+ {
+ const Real h = 1.0/m_data.size();
+ for (size_t i = 0; i < m_data.size(); ++i)
+ asciiout << h*(i+0.5) << '\t' << m_data[i] << endl;
+ }
+ asciiout.close();
+}
+
+void PhotoDAT1D::set_pixel(const double phi, const int i, const int dummy)
+{
+ assert(i < static_cast<int>(data.size()));
+ m_data[i] = phi;
+}