polaroid-pp

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

Polaroid.h (1749B)


      1 // File       : Polaroid.h
      2 // Date       : Tue Apr 26 14:41:37 2016
      3 // Author     : Fabian Wermelinger
      4 // Description: Polaroid Camera base
      5 // Copyright 2016 ETH Zurich. All Rights Reserved.
      6 #ifndef POLAROID_H_HXFL9YPG
      7 #define POLAROID_H_HXFL9YPG
      8 
      9 #include "Types.h"
     10 #include "Cartridge.h"
     11 #include "ArgumentParser.h"
     12 
     13 class PhotoPaper;
     14 
     15 class Polaroid
     16 {
     17 protected:
     18     Slice m_data;
     19     bool m_dataLoaded;
     20 
     21     // Cartridge
     22     Cartridge* m_cartridge;
     23     bool m_cartridgeInserted;
     24 
     25 public:
     26     Polaroid() : m_dataLoaded(false), m_cartridge(nullptr), m_cartridgeInserted(false) { }
     27     Polaroid(Cartridge* cart) : m_dataLoaded(false), m_cartridge(cart), m_cartridgeInserted(true) { }
     28     ~Polaroid() {}
     29 
     30     // cartridge loader
     31     inline void insertCartridge(Cartridge* cart)
     32     {
     33         // memory management of cartridges is not handled by the Polaroid cam
     34         m_cartridge = cart;
     35         m_cartridgeInserted = true;
     36     }
     37 
     38     // scene loader
     39     void load_hdf5(const char* filename, ArgumentParser& parser);
     40     void load_hdf5_slice(const char* filename, ArgumentParser& parser);
     41     void load_wavelet(const char* filename, ArgumentParser& parser);
     42 
     43     // capture scene
     44     inline void capture(PhotoPaper& photo)
     45     {
     46         if (m_dataLoaded && m_cartridgeInserted)
     47             m_cartridge->capture(photo, m_data);
     48     }
     49     inline void computeScene()
     50     {
     51         if (m_dataLoaded && m_cartridgeInserted)
     52             m_cartridge->compute(m_data);
     53     }
     54 
     55     // data accessors
     56     inline int width() const { return m_data.width(); }
     57     inline int height() const { return m_data.height(); }
     58     inline Real min() const { return m_data.min(); }
     59     inline Real max() const { return m_data.max(); }
     60 };
     61 
     62 #endif /* POLAROID_H_HXFL9YPG */