/////////////////////////////////////////////////////////////////////////////////
//
// This file is part of SACAMOS, cable models for EMI simulations in SPICE.
// It was developed by the University of Nottingham and the Netherlands Aerospace
// Centre (NLR) for ESA under contract number 4000112765/14/NL/HK.
//
// Copyright (C) 2015 - 2018 University of Nottingham
//
// SACAMOS is free software: you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the Free Software
// Foundation, either version 3 of the License, or (at your option) any later
// version.
//
// SACAMOS is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// for more details.
//
// A copy of the GNU General Public License version 3 can be found in the
// file GNU_GPL_v3 in the root or at <http://www.gnu.org/licenses/>.
//
// wxWidgets is currently licenced under the "wxWindows Library Licence".
// A copy of the wxWindows Library Licence, Version 3.1 can be found in the file
// wxWindows_Library_Licence_v3-1 in the root or at:
// <https://www.wxwidgets.org/about/licence/>
//
// The University of Nottingham can be contacted at: ggiemr@nottingham.ac.uk
//
// File Contents:
//
// NAME
//     MESH_LAPLACE.h
//
// DESCRIPTION
//     GUI for displaying Laplace solver mesh
//
// AUTHOR(S)
//     Steve Greedy
//
/////////////////////////////////////////////////////////////////////////////////

#ifndef MESH_LAPLACE_H
#define MESH_LAPLACE_H

//(*Headers(MESH_LAPLACE)
#include <wx/sizer.h>
#include <wx/panel.h>
#include <wx/button.h>
#include <wx/dialog.h>
//*)

// Additional wxWidgets Includes
#include <wx/msgdlg.h>
#include <wx/dcclient.h>

// Standard Library Header Files
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>

using namespace std;

//class BasicDrawPane : public wxPanel
//{
//
//public:
//    BasicDrawPane(wxFrame* parent);
//
//    void paintEvent(wxPaintEvent & evt);
//    void paintNow();
//
//    void render(wxDC& dc);
//
//    // some useful events
//    /*
//     void mouseMoved(wxMouseEvent& event);
//     void mouseDown(wxMouseEvent& event);
//     void mouseWheelMoved(wxMouseEvent& event);
//     void mouseReleased(wxMouseEvent& event);
//     void rightClick(wxMouseEvent& event);
//     void mouseLeftWindow(wxMouseEvent& event);
//     void keyPressed(wxKeyEvent& event);
//     void keyReleased(wxKeyEvent& event);
//     */
//
//    DECLARE_EVENT_TABLE()
//};

void draw_mesh(wxPanel *Panel, wxString mesh_to_draw);
void zoom_mesh(wxPanel *Panel, wxString mesh_to_draw);

//class MESH_LAPLACE: public wxDialog
//{
//	public:
//
//		MESH_LAPLACE(wxWindow* parent,wxWindowID id=wxID_ANY,const wxPoint& pos=wxDefaultPosition,const wxSize& size=wxDefaultSize);
//		virtual ~MESH_LAPLACE();
//
//        void renderMesh();
//
//		wxString meshFileName;
//		void setMeshFileName(wxString);
//
//        //(*Declarations(MESH_LAPLACE)
//        wxButton* Button1;
//        wxPanel* Panel1;
//        //*)
//
//	protected:
//
//		//(*Identifiers(MESH_LAPLACE)
//		static const long ID_PANEL1;
//		static const long ID_BUTTON1;
//		//*)
//
//	private:
//
//		//(*Handlers(MESH_LAPLACE)
//		void OnButton2Click(wxCommandEvent& event);
//		void OnPanel1Paint(wxPaintEvent& event);
//		void OnButton1Click(wxCommandEvent& event);
//		//*)
//
//		DECLARE_EVENT_TABLE()
//};

#endif
