#ifndef BOX_HPP
#define BOX_HPP

#include <vector>
#include "Body.hpp"

namespace nbody {
	using namespace std;

	class Box {
		friend class TreeNode;
	private:
		double min[3];
		double max[3];
	public:
		Box();
		virtual ~Box();
		virtual void extendToCube();
		virtual double getMin(int index);
		virtual double getMax(int index);
		virtual void setMin(int index, double value);
		virtual void setMax(int index, double value);
		virtual vector<Body> containedBodies(vector<Body> bodies);
		virtual bool isContained(Body body);
		virtual bool isContained(Box box);
		virtual double volume();
		virtual bool isCorrect();
		virtual void print();
	};
}

#endif
