#ifndef LFP_H
#define LFP_H

#include <stdlib.h>
#include <stdio.h>

using namespace std;
class LFP
{
	public:
		LFP(); // default constructor
		LFP(int x, int y, double radius);
		~LFP();
		LFP& operator=(const LFP& right_side); // assignment operator
		void count_and_fetch_neighbours();
		void pick_all_start_indicies();
	  void calculate_LFP(double* potentials, float& l23, float& l4, float& l5, float& l6, float&);

	private:
		int pick_start_index_from_one_xy(int x, int y);
		int count_neighbours();
		void fetch_neighbours();
	private:
		double radius;
		int x;
		int y;
		int n_neighbours;
		int* neighbour_x;
		int* neighbour_y;
		int* start_indicies;
		int neighbour_array_set;
		int start_indicies_array_set;
};
#endif /* LFP_H */