Boost logo

Boost :

From: Matt Calabrese (rivorus_at_[hidden])
Date: 2005-10-12 23:33:36


On 10/12/05, Noah Stein <noah_at_[hidden]> wrote:
>
> The grassman_point idea could be layered cleanly on top of a vector-only
> or
> even a vector/point solution.

  This is also what I have decided. Sorry to Andy, as the quantity_points
still will not have operator + defined. I knew I would have some
disagreement, but this really is something that I've already given much
thought to and is why I hoped to get a version out before talking about
this. Deane has reiterated everything that I have talked about, and I am
thankful for that. I firmly believe that this is the best decision and
you're going to have a very hard time swaying me. If you want addition of
points in affine space, then don't use points, use the concept of "position
vectors". This is not some new restriction that I am just choosing to make
for the library, this is just how geometry is and for good reasons, and I'm
not going to change standard mathematics because you want addition of
points.
 The concept of addition of points simply does not make sense on its own in
affine space -- it's just an implementation detail of higher-level
functionality such as barycentric combinations. Because of this, operator +
is not going to be overloaded, and in the rare cases that you need the
functionality of componentwise addition of points in order to form other
high-level functions, you can use the componentwise_add function, again,
whose name is long on purpose since it generally should not be used except
as implementation details. If you find yourself having to use point addition
in affine space very often, then you are probably just improperly using
points instead of vectors or are missing a level of abstraction. As I said,
I could always use expression templates to only allow expressions with point
addition and other operations when the expression follows the form of
barycentric combinations, but that would really be pushing it, and is
completely unecessary since I'm already providing barycentric combination
functions.
 I'm not going to make this library logically incorrect by directly
supporting raw addition of points in affine space.

--
-Matt Calabrese

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk