polaroid-pp

Schlieren and contour plot tool
git clone https://git.0xfab.ch/polaroid-pp.git
Log | Files | Refs | Submodules | README | LICENSE

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:
Ainclude/PhotoDAT1D.h | 37+++++++++++++++++++++++++++++++++++++
Asrc/PhotoDAT1D.cpp | 43+++++++++++++++++++++++++++++++++++++++++++
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; +}