private int FindAxis(double[] dir) { int r0 = 0; double d0 = double.MaxValue; foreach (PAxis Ax in Axes) { double v = PGeom.Dist2(dir, Ax.Dir); if (v < d0) { d0 = v; r0 = Ax.Id + 1; } v = PGeom.Dist2Rev(dir, Ax.Dir); if (v < d0) { d0 = v; r0 = -Ax.Id - 1; } } return(r0); }