0f2157298f
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6569 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: da9010bb840fda935d5b8beca082b839c9fb03b3 Former-commit-id: 118d38c44adc40d72fc1ddc8cf81df596d87e237
111 lines
3.7 KiB
Text
111 lines
3.7 KiB
Text
FreeSOLID - Interference Detection Library
|
|
Copyright (C) 1997, 1998 Gino van den Bergen
|
|
|
|
|
|
NOTE: FreeSOLID is the LGPL version of SOLID. SOLID is further
|
|
developed and licensed commercially by Dtecta. See
|
|
www.libsolid.com for terms of licensing SOLID.
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
FreeSOLID is a library for collision detection of three-dimensional objects
|
|
undergoing rigid motion and deformation. FreeSOLID is designed to be used in
|
|
interactive 3D graphics applications, and is especially suited for
|
|
collision detection of objects and worlds described in VRML.
|
|
|
|
The objects can be modeled as primitives, such as boxes, cones, cylinders,
|
|
and spheres, or as complex shapes composed of polytopes. The placement of
|
|
an object is given either as a sequence of translations, rotations, and
|
|
nonuniform scalings, or as a 4x4 column-major matrix, that represents an
|
|
affine transformation, as used in OpenGL.
|
|
|
|
|
|
Requirements
|
|
|
|
The library is written in ANSI/ISO C++ and relies heavily on STL. Currently
|
|
it compiles under GNU g++ version 2.8.1 and Visual C++ 5.0. The library has
|
|
a standard C API and can be linked to both C and C++ applications. Note
|
|
that in order to use in C applications, you need to explicitly include the
|
|
libstdc++ library in the linkage.
|
|
|
|
For fast intersection tests and distance computations between convex
|
|
polyhedra, FreeSOLID relies on the Qhull library for convex hull computations.
|
|
Qhull is a free software library and is available for most platforms.
|
|
The Qhull source code can be downloaded from URL:
|
|
|
|
http://www.geom.umn.edu/software/qhull/
|
|
|
|
Note that a properly operating FreeSOLID library can be compiled without using
|
|
Qhull. However, it is recommended to incorporate Qhull for a better
|
|
performance, when polyhedra are used.
|
|
|
|
|
|
License
|
|
|
|
The FreeSOLID library and accompanying C++ classes for 3D geometry are
|
|
released under the terms of the GNU Library General Public License.
|
|
See the file COPYING.LIB for details.
|
|
|
|
|
|
Installation
|
|
|
|
In case you have a recent GNU developers environment installed, simply
|
|
typing `make' in the root of the distribution directory will build the
|
|
library, a sample client and documentation.
|
|
|
|
If you want to use another compiler, you should make the necessary changes
|
|
to the `Make-config' file in the root directory. FreeSolid now autodetects
|
|
the presence of Qhull library when you build using the configure script.
|
|
The Qhull header files are assumed to be under '$INCLUDE_PATH/qhull/'
|
|
If your Qhull installation is under a non-standard directory. Then you need
|
|
to put all the Qhull header files under a directory named 'qhull'. Then
|
|
you may need to set the env variables CXXFLAGS, CPPFLAGS to point to those
|
|
directories. Under bash if qhull is under the directory $HOME/packages, you type
|
|
|
|
$ export CPPFLAGS="-I$HOME/packages"
|
|
$ export CXXFLAGS="-I$HOME/packages"
|
|
|
|
under csh you type
|
|
|
|
% setenv CPPFLAGS "-I$HOME/packages"
|
|
% setenv CXXFLAGS "-I$HOME/packages"
|
|
|
|
before doing a ./configure .
|
|
|
|
The auxiliary C++ classes in `include/3D' may be used for performing 3D
|
|
transformations. The classes have all their code inlined, so you do not
|
|
need to link a library in order to use them.
|
|
|
|
If you've checked out a fresh CVS sandbox, the following steps are
|
|
required to generate a proper 'configure' file.
|
|
|
|
aclocal
|
|
automake -a
|
|
autoconf
|
|
autoheader
|
|
|
|
|
|
Documentation
|
|
|
|
The FreeSOLID manual is available as: (i) an Emacs info file, (ii) a DVI file
|
|
(use dvips to print as postscript), and (iii) a set of HTML files.
|
|
|
|
The HTML files are also made available on the FreeSOLID web page located at
|
|
|
|
http://www.win.tue.nl/~gino/solid/
|
|
|
|
|
|
Contact Info
|
|
|
|
Please send remarks, questions and bug reports to gino@dtecta.com
|
|
or write to:
|
|
Gino van den Bergen
|
|
Sterkenstraatje 4
|
|
5708 ZC Helmond
|
|
The Netherlands
|
|
|
|
|
|
|
|
|