#include <boost/gil/typedefs.hpp>
#include <boost/gil/extension/io/png_dynamic_io.hpp>
#include <boost/assign/std/vector.hpp>
#include <utilgil.hpp>
#include <utilstl.hpp>

using namespace boost::gil;
using namespace boost::assign;

//GCC Build String
//g++ sample5.cpp -lpng -lz -I . -I ~/lib/boost -I ~/lib  

int main(int args, char** argv)
{
        rgb8_image_t img(200,200);
        boost::gil::fill_pixels(boost::gil::view(img),
                boost::gil::rgb8_pixel_t(170,170,170));

        typedef boost::gil::point2<int> point_t;
        std::vector<point_t> points;
                points += point_t(0,0),
                point_t(boost::gil::view(img).width()-1,0),
                point_t(boost::gil::view(img).width()-1,boost::gil::view(img).height()-1),
                point_t(0,boost::gil::view(img).height()-1),
                point_t(0,0);

        std::for_each(points.begin(),points.end()-1,points.begin()+1,
                draw_line<boost::gil::rgb8_view_t>(boost::gil::view(img),
                        rgb8_pixel_t(255,0,0)));       
       
        png_write_view("sample5.png", boost::gil::view(img));
}