
Hi John,
I am ready to worry about IF and how boost would accommodate the other semantics of a 'point' concept. As the GTL author seems to have pointed out in their explanation of "isotropic", a point is a point regardless of its coordinates, and perhaps a point concept should involve the coordinate-free operations that make sense on a point versus a vector etc., and another concept/term should be adopted for the set of coordinates. If the GTL authors have such concepts I am curious to see the interplay of point, vector, and coordinate_sets (or whatever they are called).
Exacty. A concept is just a set of minimal requirements. It is not a class, neither is an adapter (it seems this library somewhat mixes conepts with adapters). So, while we certainly would like one single point class, or at most a few of them, we don't need to use a monolithic super concept. We can use a set of concepts instead, each one capturing an ortoghonal aspect of the design. Off the top of my head: IndexableCartesian2 (provides indexed access: [0], [1]) IndexableHomogeneous2 (provides indexed access: [0], [1], [2]) Cartesian2 (provides named access: x(),y()) Homogeneous2 (provides named access: x(),y(),w()) Vector2 (provides coordinate-free vector-specifc operations) Point2 (provides coordinate-free point-specifc operations) .. and so on for 3 dimensions, for heteregeneous coordinates, etc. Notice that a point is a point regardless of its coordinates, and so is a vector. That is, Vector2/Point2 ARE NOT refinements of the concepts for coordinate sets. Best Fernando Cacciola