polaroid-pp

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

BoundedTransmissionCartridge.h (1328B)


      1 // File       : BoundedTransmissionCartridge.h
      2 // Date       : Fri 29 Apr 2016 09:22:10 AM CEST
      3 // Author     : Fabian Wermelinger
      4 // Description: Data BoundedTransmission Cartridge
      5 // Copyright 2016 ETH Zurich. All Rights Reserved.
      6 #ifndef BOUNDEDTRANSMISSIONCARTRIDGE_H_YDXLKPJU
      7 #define BOUNDEDTRANSMISSIONCARTRIDGE_H_YDXLKPJU
      8 
      9 #include <algorithm>
     10 #include "TransmissionCartridge.h"
     11 
     12 class BoundedTransmissionCartridge : public TransmissionCartridge
     13 {
     14 public:
     15     BoundedTransmissionCartridge(ArgumentParser& parser) : TransmissionCartridge(parser) {}
     16 
     17     virtual void capture(PhotoPaper& photo, Slice& data)
     18     {
     19         const Real upper = m_parser("-upper_bound").asDouble(1.0);
     20         const Real lower = m_parser("-lower_bound").asDouble(0.0);
     21 
     22         photo.make_new(photo.get_name()+"-boundedTransmission", data.width(), data.height());
     23 
     24         // set description
     25         string desc("2D_Bounded_Transmission");
     26         photo.set_description(desc.c_str());
     27 
     28         // pixel shader
     29         for (int h=0; h < data.height(); ++h)
     30             for (int w=0; w < data.width(); ++w)
     31             {
     32                 const Real bound = std::max(lower,std::min(upper,data(w,h)));
     33                 photo.set_pixel(bound, w, h);
     34             }
     35 
     36         photo.write();
     37     }
     38 };
     39 
     40 #endif /* BOUNDEDTRANSMISSIONCARTRIDGE_H_YDXLKPJU */