//****************************************************************************
//
// Cs404      : Winter 2004 Ohio University Travis Dillon
// Homework 4 : Programming Assignment 1 MARS images
// file       : picture.h
// started    : 02-22-04
// summary    : This is the header for the Picture class.
//
//****************************************************************************


#ifndef PICTURE_H
#define PICTURE_H

#include "prog1.h"

class Picture
{
 public:
   Picture(char **argv);
   ~Picture();
   void read_info();
   void read_data();
   void output_filtered_picture();
   void filter();
   void filter_sort();
   void filter_median();
   size_t partition(unsigned char A[], size_t start, size_t finish);
   unsigned char select(unsigned char  A[], size_t start, size_t finish,
                        size_t ith_smallest);
 private:
   size_t width;  //number of pixels wide
   size_t height;  //number of pixels tall
   size_t max_value;  //highest possible output value
   size_t algorithm;  //1 = median, 2 = 1/4, 3 = 1/10
   size_t neighborhood;  //size of filtering area
   size_t border;  //amount lost from filtering
   size_t height_minus_border;
   size_t width_minus_border;
   size_t neighborhood_squared;
   unsigned char** original_pic;  //original picture
   unsigned char** filtered_pic;  //new picture
   string format;
   string comment;
   int position;
};

#endif  //PICTURE_H