Boost logo

Boost :

From: Theodore Papadopoulo (Theodore.Papadopoulo_at_[hidden])
Date: 2006-03-23 04:51:42

On Wed, 2006-03-22 at 21:52 +0100, Janek Kozicki wrote:

> yes, certainly. At first we should decide what entities should appear,
> how to name them, and how to sort them into namespaces, to begin with,
> that's my library:
> - vector2 +
> - vector3 +
> - vector4 +
> - matrix2 +
> - matrix3 +
> - matrix4 +
> - quaternion +
> - se3 +
> Other readers of this list are welcome to add more components and "vote"
> by placing '+' next to it. Of course class names are subject to another
> discussion :)

It is a little surprising to see that to begin with, it is not
geometrical concepts that you speak of but representations
(vectors,quaternions, matrices...). If there is a geometric library
(which I would appreciate a lot since like many others I had to craft my
own with some strenghts and some weaknesses), I would prefer to speak
about geometrical concepts first and their relationship, the
implementation in terms of vectors (which I approve wrt a an
implementation with a struct), matrices, ... should come after.

So I'll somewhat oppose to your proposal (and the following ones):

N is the dimension. namespace notation is just notational not a

Euclidean::Line<N> // not very different from projective
line ??

Affine:: same as Euclidean except maybe for Basis??

SemiLines, Segments and Simplices are more complicated to define...

Constructors::{ most are obvious but some may not be... an Affine Point
from a Projective one is not always possible}.

Transformations:: {
        Rotations, Translations, Scales, Affine, Euclidean, Projective,....
        In my experience, this is the most difficult to properly design except
if one wants to pay always for the most general projective transform
even for the simpler ones.

Distances:: {
        Point-Point, Point-Line, Point-Segment, Line-Segment, Line-Line, ....
and depends of the geometry and possibly on a "Metric".

Miscellanous:: {
        Statistics, Volumes, Areas,
        Adding Noise


Boost list run by bdawes at, gregod at, cpdaniel at, john at