#ifndef SPHERE_H
#define SPHERE_H

#include "shape.h"

namespace CBK
{
	namespace Shapes
	{
		class Sphere : public Mesh
		{
		public:
			//Create a new shape
			Sphere(const MeshParam& params, const std::string& name = "");
			Sphere(const MeshParam& params, const FLOAT Radius, const UINT Slices, const UINT Stacks, const std::string& name = "");

			//Clean up
			virtual ~Sphere(void);

			//Copies the shape
			Sphere(const Sphere& other);
			Sphere& operator=(const Sphere& other);

			//Allow the size to be changed. Must call create afterwards
			Sphere& resize(const FLOAT Radius, const UINT Slices, const UINT Stacks);

			virtual item& load(const std::string& name, const MeshParam& params);

		protected:
			FLOAT Radius;
			UINT Slices;
			UINT Stacks;

		private:
		};
	}
}

#endif //SPHERE_H