// if (fabs(angle_between_vectors(normalEW,normalEWOPP)-180*0) < 0.5)
// {
// double delta = (distEW1 - distEW0);
// xi = -distEWMid / delta;
// coord.y = xi;
// fixXi = true;
// }
//// std::cout << "initial guess\n";
//// coord.Print();std::cout<<std::endl;
// D3vector R = A + B * coord.x + C * coord.y + D * coord.z + E * coord.x*coord.y + F * coord.y*coord.z + G * coord.x * coord.z + H * coord.x*coord.y*coord.z;
// //
// X = (cWSD+ cESD+ cWND + cEND + cWST + cEST + cWNT + cENT ) / 8.0 ;
// R = A + B * coord.x + C * coord.y + D * coord.z + E * coord.x*coord.y + F * coord.y*coord.z + G * coord.x * coord.z + H * coord.x*coord.y*coord.z -X;
// std::cout << "in range " << isInRange(distTDMid,distTDMid2) << std::endl;
// std::cout << "in range " << isInRange(distNSMid,distNSMid2) << std::endl;
// std::cout << "in range " << isInRange(distEWMid,distEWMid2) << std::endl;
// if (!isInRange(distTDMid,distTDMid2) || !isInRange(distNSMid,distNSMid2) || !isInRange(distEWMid,distEWMid2) )
// {
// return D3vector{-1,-1,-1};
// }
// std::cout << "in range " << isInRange(distTDMid,distTDMid2) << std::endl;
// std::cout << "in range " << isInRange(distNSMid,distNSMid2) << std::endl;
// std::cout << "in range " << isInRange(distEWMid,distEWMid2) << std::endl;