
-------------------------------------------------- From: "Sebastian Redl" <sebastian.redl@getdesigned.at>
It's a matter of interpretation. If you consider a point a 0-dimensional object placed in the n-dimensional space you're working with, it doesn't have an extent over any number of dimensions. If, however, you consider it an n-dimensional object with an extent of 0 along every dimension, it does have length, area, volume, and whatever you want to call hyper-volumes in more than 3 dimensions, all of them being 0.
I agree that you can interpret these things as you have stated. The part that I find hard to accept is that I should somewhere in the code want: point a; line b; .... //! Assuming the "dimensionally agnostic" function for the 'area' metric is called content. double aArea = content( a ); double bArea = content( b ); My intuition tells me that such a call is far more likely to be a logic-error than the case that I really want to know the area of a point or line. So if I were defining the interface I would make the choice that I have advocated. Of course the world won't end if zero area is returned for points, lines (or type void for that matter.) Brandon