The tolerance should be moved from a template class to a member variable that can be changed at run time. One idea is to have shared pointers to tolerances so that there can be one tolerance for a bunch of geometries (and changing the tolerance parameters changes all of the geometries). This would also allow various tolerances to existing simultaneously if the user desired.