My old project for strange attractors
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 

48 lines
1.4 KiB

//
// output.hpp
// AwesomeAttract0r
//
// Created by Joshua Moerman on 1/8/12.
// Copyright (c) 2012 Vadovas. All rights reserved.
//
#ifndef AwesomeAttract0r_output_hpp
#define AwesomeAttract0r_output_hpp
#include "Logger.hpp"
#include "stf.hpp"
#include "Random.hpp"
#include "Image.hpp"
#include "Tonemapper.hpp"
namespace details {
template <typename C, typename TM>
void output(C const & canvas, TM & tonemapper, std::string const & image_path, stfu::node & stf_output){
logger.start("Analysing");
tonemapper.analyse(canvas);
logger.stop();
ImageFormats::png::png_stream image(canvas.template size<0>(), canvas.template size<1>(), image_path + ".png");
logger.start("Exporting");
tonemapper.process(canvas, image);
logger.stop();
stf_output.addChild("tonemapper") = stfu::to_stf(tonemapper);
}
}
template <typename C>
void output(C const & canvas, stfu::node const & stf_input, std::string const & filename, stfu::node & stf_output){
if(stf_input.getValue("class") == "colorizer") {
Tonemappers::Colorizer tonemapper(canvas.layers(), stf_input);
details::output(canvas, tonemapper, filename, stf_output);
}
}
template <typename C>
void output(C const & canvas, Random::parameters, std::string const & filename, stfu::node & stf_output) {
Tonemappers::Colorizer tonemapper(canvas.layers(), Random::parameters());
details::output(canvas, tonemapper, filename, stf_output);
}
#endif