Skip to content
Snippets Groups Projects
Box.hpp 1006 B
Newer Older
#ifndef BOX_HPP
#define BOX_HPP

Paul Heinzlreiter's avatar
Paul Heinzlreiter committed
#include <vector>
#include "Body.hpp"
Paul Heinzlreiter's avatar
Paul Heinzlreiter committed

Paul Heinzlreiter's avatar
Paul Heinzlreiter committed
	using namespace std;

		friend class Node;
	private:
		double min[3];
		double max[3];
	public:
		Box();
		virtual ~Box();
Paul Heinzlreiter's avatar
Paul Heinzlreiter committed
		virtual void extendToCube();
		virtual void extendForBodies(vector<Body> bodies);
		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> extractBodies(vector<Body>& bodies);
		virtual vector<Body> copyBodies(vector<Body> bodies);
Paul Heinzlreiter's avatar
Paul Heinzlreiter committed
		virtual bool isContained(Body body);
		virtual bool isContained(Box box);
Paul Heinzlreiter's avatar
Paul Heinzlreiter committed
		virtual double volume();
		virtual double maxSidelength();
Paul Heinzlreiter's avatar
Paul Heinzlreiter committed
		virtual bool isCorrect();
		virtual void print();
Paul Heinzlreiter's avatar
Paul Heinzlreiter committed
		virtual bool overlapsSphere(double* sphereCenter, double sphereRadius);
		virtual double distanceToPosition(double* position);
		virtual vector<Box> octreeSplit();
		virtual vector<Box> splitLongestSide();