Libgvectors is a C++ library for visualizing mathematical vectors. It provides three fundamental classes for achieving its purpose:
- GVector
- A class representing a three dimensional vector and providing fundamental operations for vector arithmetic.
- VisualVector
- Visualizes a GVector. It provides methods for projecting three dimensional vectors on a two dimensional plane.
- VectorStore
-
Used to store and retrieve visual vectors in a hierarchical manner. It provides proxy
methods to certain VisualVector methods used to draw vectors on a screen.
Additionally, it provides an interface to save and load a vector store to and from file.
Libgvectors makes as little as possible assumptions about the graphics library used to draw vectors on a screen and is not bound to any particular graphics library.
Refer to http://www.guengel.ch/myapps/gvectors for an implementation using libgvectors, gtkmm, and cairomm.
Licensing
The software is licensed under the GNU General Public License version 2 or later. See the COPYING file accompanying the tarball.
Supported Platforms
libgvectors can be built under Sun(TM) Solaris(TM) version 10 or later, FreeBSD, and Linux.
Optional libraries
- libgfileio
-
If you want to save and load a vector store to and from a binary file, the libgfileio
library is required.
The library can be obtained by pointing your browser to http://www.guengel.ch/myapps/libgfileio.
- libxml++
-
If you want to be able to save and load a vector store to and from a XML file, the
libxml++ library is required. Libgvectors supports the libxml++ API version 1.0 and
2.14.
The library can be obtained by pointing your browser to http://libxmlplusplus.sourceforge.net.
Installation
The usual
Compilation and Linking
There are three ways to do this:
- Manually
-
Use the '-I', '-L',
and '-l' flags of the compiler, for instance
$ cc -I/usr/local/include/gvectors -L/usr/local/lib -lgvectors example.cc
- pkg-config
-
Libgvectors comes with a package config file (.pc). You could type for instance
$ cc `pkg-config --cflags --libs libgvectors` example.cc
- Autoconf/Automake
-
If you are using autoconf/automake for your project, then add to your configure.ac file
PKG_CHECK_MODULES(SOMEAPP, libgvectors >= 0.1)
AC_SUBST(SOMEAPP_CFLAGS)
AC_SUBST(SOMEAPP_LIBS)
![[Valid XHTML 1.0]](/images/w3c/valid-xhtml10-blue.png)
![[Valid CSS]](/images/w3c/valid-css2-blue.png)