#include <map>
#include "BasicTemplate.h"
#include <TopTools_ListOfShape.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Solid.hxx>

class DipoleAntennaTemplate : public BasicTemplate
{
public:
	DipoleAntennaTemplate(std::string path);

	void parseInputJSON(json* j);
	void generateGeometry();
	void assignMeshSizes(MeshGenerator_, GeometryData_, double, double);
	bool validate(std::string&);

private:
	double half_length;
	double feed_gap;
	double wire_radius;

	TopoDS_Face makeFeed();
	TopoDS_Solid makeTopCylinder();
	TopoDS_Solid makeBottomCylinder();
	TopoDS_Solid makeFeedCylinder();

};