
Boost : 
From: Marcelo E. Magallon (mmagallo_at_[hidden])
Date: 20030521 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 matrixbased 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 submatrix 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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk