The Generic Math Template Library (GMTL) is a high-performance, extensible, and generic math library. The design is based upon discussion with many experts in the field of computer graphics and virtual reality, culminating the efforts of many previous math library efforts. GMTL gives the graphics programmer several core math types and a rich library of graphics/math operations on those types.
This repository is a "friendly fork" for maintenance purposes. GMTL is primarily used in VR Juggler and related projects. The maintainers of this fork would recommend an alternate library, such as Eigen, for general-purpose matrix and vector math in new code.
Basic requirements are minimal:
- A C++ compiler with some template support (even Visual Studio 2003 worked at one time).
GMTL itself is header-only, so it needs no building.
Optional dependencies:
-
SCons 2.0: If you want to build tests or the Python binding, until we've replaced the build system with a CMake build system
-
CppUnit: for the tests. At one point a patched version was used from VR Juggler.
Much like the Standard Template Library, GMTL is completely comprised of header files. Thus there is no compilation step needed to build any libraries. So, in a pinch, just copy the headers.
In order to install GMTL to /usr/local
, use the following command. This will
install gmtl-config
to /usr/local/bin
and the associated header files to
/usr/local/include
.
# cd <GMTL_HOME>
# scons install
If you wish to install GMTL to an alternate location, such as your home directory, use the prefix option.
$ cd <GMTL_HOME>
$ scons install prefix=$HOME
This will install GMTL to the appropriate locations relative to $HOME
-- that
is, the gmtl-config script will be installed to $HOME/bin
and the associated
header files to $HOME/include
.
A FAQ, API reference, and programmer's guide are available on GMTL's web site: http://ggt.sourceforge.net
They may be outdated - some of it was generated using Doxygen so you can re-run that yourself on the code.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
For issues specific to this friendly fork, please use the GitHub issues system.
Otherwise, please feel free to email comments, questions, suggestions, etc to [email protected]