// // 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 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 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 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