Can you elaborate on that? If you mean that it should be 
   
    const double epsilon = std::numeric_limits<double>::epsilon();

– that epsilon would be too small, thus the need for the 'hack' in the current version. Also, as you said in IRC, the precision with which you want to distinguish between points is actually much lower, since it depends more on the size of a pixel than on anything else ... if I understood correctly. Also, std::numeric_limits<double>::epsilon() is machine-dependent. I would rather not use it in this case.