#include "MMPLib.h"

#include <iostream>
#include <iomanip>
#include <vector>
#include <math.h>

int main(int argc, char* argv[]){

	std::string meshFile;
	double lc;
	double distRef;
// définir points arrivée et départ
	double start[3];
	double target[3];
	if(argc > 9){
		meshFile = argv[1];
		lc = std::stod(argv[2]);
		distRef = std::stod(argv[3]);
		for (int i=0;i<3;++i)
		  start[i] = std::stod(argv[4+i]);
		for (int i=0;i<3;++i)
		  target[i] = std::stod(argv[7+i]);
		
	} else {
		std::cerr << "Not enough." << std::endl;
		return 1;
	}
	
	MMPLib algo(meshFile);

	algo.propagate(start);
	double distance=algo.getDistance(target);

	std::cout << std::scientific << std::setprecision(10);

	double error = fabs((distance-distRef)/distRef);

	std::cout << "h= " << lc << " n= " << distRef/lc << " nvert= " << algo.getNumberVertices() << " Lex= " << distRef << " Lapprox= " << distance << " e= " << error << std::endl;

//	algo.printMSHDistances("results.msh");

	return 0;
}
