 # Boost :

From: Marcelo E. Magallon (mmagallo_at_[hidden])
Date: 2003-05-21 15:21:01

On Wed, May 21, 2003 at 05:32:33PM +0100, Reece Dunn wrote:

> boost::geometric::point - represents a location
> point = point +/- vector
> and variants
> NOTE: cannot do point * point (does not make sense mathematically)
>
> boost::geometric::vector - represents a distance between two points
> vector = point - point
> vector = vector +/-/*/div vector
> vector = vector +/-/*/div scalar
> and variants

What's vector div vector?

What's vector +/- scalar?

What's vector * vector? It's vector product, from your definition
above, how do I express scalar product (dot product, inner product)?

> boost::math::matrixNxN - N x N matrices and related operations
> matrix = matrix +/-/* matrix
> and variants

vector = matrix * vector;
matrix = scalar * matrix;

Are matrixes row major or column major? This is not as trivial as it
sounds. If they are matrix major and the elements are stored
continously in memory you can pass the address of the (0,0) element to
OpenGL.

> There should also be the matrix-based functions:
> boost::math::transpose( matrix ) - T( i, j ) = A( j, i )
> boost::math::det( martix ) - the determinant of the matrix
> boost::math::cofactor( matrix, i, j ) - the sub-matrix of the matrix
> at the position ( i, j )

boost::math::invert(matrix)

> It should also be possible to perform geometric operations:
> matrix boost::geometric::translate( x, y, z )
> translate an object by this matrix
> matrix boost::geometric::scale( x, y, z )
> enlarge an object by this matrix
> NOTE: identity = scale( 1, 1, 1 )
> matrix boost::geometric::rotate( x, y )
> matrix boost::geometric::rotateX/Y/Z()
> rotate an object about a plane

Rotations around arbitrary axis would be welcomed, e.g.:

matrix4x4 boost::geometric::rotate(a, x, y, z)

> There should also be the facility to project an object from one dimension
> system to another, e.g.
> point2D boost::geometric::project( point2D )

Uhm? You mean like converting between cartesian and polar systems?

Marcelo