/************************************************************************
 * BoundingFrame, BoundingBall
 *
 * バウンディングボックス。
 *
 ************************************************************************/

#if !defined ATS_BOUNDINGFRAME_H
#define ATS_BOUNDINGFRAME_H

#include "ats_Point.h"

namespace ats
{
	class BoundingFrame
	{
	public:
		virtual double IsOut(const Point3D&) const = 0;
		virtual Point3D GetCenter() const = 0;
		virtual double GetMax() const = 0;
	};

	class BoundingBall : public BoundingFrame
	{
	private:
		Point3D m_center;
		double m_radius;

	public:
		BoundingBall(const Point3D& center, double radius);
		virtual ~BoundingBall();

		virtual double IsOut(const Point3D&) const;
		virtual Point3D GetCenter() const;
		virtual double GetMax() const;
	};
}

#endif
