Subject: Re: [boost] Review Request: QVM (generic Quaternion, Vector and Matrix operations library)
From: Phil Endecott (spam_from_boost_dev_at_[hidden])
Date: 2015-05-05 10:41:17


Hi Emil,

Emil Dotchevski wrote:
> Boost QVM defines a set of generic functions and operator overloads for
> working with quaternions, vectors and matrices of static size. The library
> also defines vector and matrix data types, however it allows users to
> introduce their own types by specializing the q_traits, v_traits and
> m_traits templates.
>
> Online documentation and a link to download the source code under the Boost
> license is available at http://www.revergestudios.com/boost-qvm/.

Echoing the previous comments about the docs, while they look very
comprehensive you really do need to start with a "hello world" tutorial
that shows the basic usage with the built-in types i.e. declaring a
few vectors and matrices, multiplying them etc.

(You should also explicitly point out the performance advantage of
these statically-sized objects compared to dynamically-sized objects
as provided by other libraries. Personally I think that statically-
sized vectors and matrices with basic arithmetic operations would be
very welcome in std C++ and/or Boost.)

In my view, the main thing that reviewers should learn quickly in a
"hello world" tutorial should be your choice to not use operator() or
operator[] for operator access, but instead to use operator%. In my
view, this is simply the wrong trade-off for a std or Boost matrix
library.

See also the way that the two geometry libraries handle point types.

Regards, Phil.