
Barend Gehrels wrote:
Many discussions and comments were related to the concepts and, more specific, to the Point concept. This is the most basic thing of a geometry library and has to be as generic as possible. We think we implemented it like that into the library. The library can handle all point types including legacy point types, point types provided by the library, user defined point types, Cartesian points, native arrays, points with spherical coordinates. The library provides point_xy for Cartesian systems and point_ll for lat long systems, but the library user is thus not confined to those types.
I've just recently thought about the point concept, because I was more focused on geometric objects the first time I looked into that library. I think it's doing two things at a time: - abstracting the actual point type being used, so that it can work with types from other libraries. - specifying the coordinate system, which also defines the dimension. Therefore, wouldn't it be a better idea that a point trait directly specifies a coordinate system? Then a coordinate system can specify its strategy traits. Decoupling the two would result in less duplication, I think.