egami
C++ Image Processing program
/homes/esi30/DCS339/coursework/src/Processes/copy.cpp
Go to the documentation of this file.
00001 #include <memory>
00002 #include <string>
00003 
00004 #include <gtkmm/image.h>
00005 
00006 #include "../display_unit.hpp"
00007 #include "../processing_page.hpp"
00008 #include "../processing_unit.hpp"
00009 #include "../utils.hpp"
00010 
00011 namespace{
00012     Display_unit *impl(const Image_unit *in){
00013         if(in->has_roi()){
00014             Image_unit *out=new Image_unit(in, in->height(), in->width());
00015             for(unsigned y=0; y<in->height(); ++y)
00016                 for(unsigned x=0; x<in->width(); ++x)
00017                     (*out)[y][x]=(*in)[y][x];
00018             return out;
00019         } else
00020             return new Image_unit(*in);
00021     }
00022 }
00023 
00024 namespace Processes{
00025     void copy(){
00026         Gtk::Image icon(cmake_install_prefix+std::string("/share/egami/icons/copy.png"));
00027         std::shared_ptr<Processing_unit> pu(new Processing_unit(Processing(&impl), "Copy", icon, true));
00028         Processing_page::add_unit_to_page("Tools", pu);
00029     }
00030 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends