
- While generalized point types (2D vs. 3D and XY vs. lat/lon) are OK, it is often extremely useful in graphics code to make your objects fit the underlying representation of an externally defined structure (such as POINT type in Win32) -- for example by publicly or privately inheriting from it. This lets you use e.g. vectors of points as arguments for system APIs. Can be done by adding an extra template argument (with a default) to point<> and moving most of the implementation details into a traits class.
In my understanding, the goal of point is not to wrap your own point structure but to be replaced with it, provided that it satisfies the same concept : value<>() functions, coordinate_type, coordinate_count... If you do so, all the algorithms are supposed to work with your structure. Bruno