#ifndef CELL_H
#define CELL_H


#include <iostream>
#include <string>
#include <vector>

#include "population.h"

class population;
class species;
class individual;

//void fail(string error);

class cell
{
/*
 * 22/07/15: The way the program evolved, this class is no longer useful
 * 
 */
    public:
        cell(int myLati, int myLongi, int myAbs);
        virtual ~cell();

        void add_population(population * pPop);
        void add_individual(individual * pInd, species * pSpe);
        population * get_pop(species * pSpe);
        pair<int, int> get_position();
        inline int get_abs_pos();
        int get_loc(species * pSpe);

        const int lati;
        const int longi;
        const int abs; // one dim location

    protected:
    private:
        vector<population*> index_pop;
        //int * create_pop(species * pSpe); // UNUSED, to be deleted?
};

inline int cell::get_abs_pos()
{
    return abs;
}


#endif // CELL_H
