#include <map>
#include "BasicTemplate.h"
#include <TopTools_ListOfShape.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Solid.hxx>



class EOFMagnetTemplate : public BasicTemplate
{
public:
	EOFMagnetTemplate(std::string path);

	void parseInputJSON(json* j);
	void generateGeometry();
	void assignMeshSizes(MeshGenerator_, GeometryData_, double, double);
	bool validate(std::string&);

private:
	double half_length;
	double magnet_radius;
	double d_l;
	double d_w;
	double d_h;
	double angular_velocity;
	double angle;



	
	TopoDS_Solid makeMagnet();


};