
AMDG transform and scale seem to be exactly the same except for the name of the function that they apply. Are these functions needed at all? It doesn't seem like they make anything particularly easier. All the real logic is in their arguments. I would prefer equivalent or equal instead of equivalence. point_3d_concept.hpp Since manhattan_distance uses euclidean_distance, euclidean_distance should come before manhattan_distance. Otherwise it can only be found by ADL. point_3d_concept.hpp:173 using distance_squared in this way seems wrong. distance_squared for a 3d point should not only use two dimensions. Shouldn't instances of typename gtl_same_type< point_3d_concept, typename geometry_concept<T>::type
::type use is_point_3d_concept instead? ditto for is_point_concept.
point_traits.hpp and point_3d_traits.hpp are missing #include "isotropy.hpp" which they need for the orientation enums. point_3d_data should provide a similar set of functions to point_data, x,y,z,operator<, etc. I would be more comfortable with the name point instead of point_data and point_3d instead of point_3d_data. In Christ, Steven Watanabe