a48
2.0.2
|
a48 (pronounced ['ə-four-eight]) is a dynamic adaptive mesh library which maintains a conforming triangulation of time-varying surfaces. The user supplies an initial mesh, a surface sampling procedure and a set of adaptation criteria. The mesh is automatically modified in order to conform to user defined characteristics, while the surface changes over time. The mesh representation is based on a halfedge data structure without any extra storage requirements. The mesh has also an underlying semi-regular multiresolution structure. The main features of the library are:
The a48 library is built bottom-up by first making available a simple halfedge-based datastructure in the form of a class named: a48::MeshT. From this class, the a48::StellarMeshT class adds stellar operators, based on stellar theory, such as flip and split. The last class is called a48::AdaptiveMeshT class and inherits from a48::StellarMeshT class adding up the simplification and refinement strategies. Every stellar operation and adaptive strategy use the underlying halfedge datastructure to ensure optimal storage capacity and maximum cross-libraries flexibility. Additional functions are implemented in a separated file called mesh.hh. For more information on each class see the individual documentation pages and the respective examples.
The related pages contains a list of repositories related to the main library. While the Sub-repositories of the a48 library exposes only a subset of the library main functionality, the M4G: Manifolds for GPUs repositories extends the a48 library to use external libraries to assemble different applications.
The a48 library is a template-based library built entirely on each corresponding header .hh file. Therefore to use the library just include the desired header file.
The mesh can be either a base mesh with policies to control the multi-resolution growing bottom-up or a complete mesh with policies to restore the multi-resolution shrink top-down. This can be thought as two kinds of multi-resolution pyramids: thin in the base and large in the top (base-mesh approach); or large base with thin top (full mesh given).
The source code of the a48 library is available under the GNU General Public License version 3, refer to the COPYING file for more details.
The a48 library can be downloaded from the git repository (gitorious) at IMPA (Institute of Pure and Applied Mathematics) using the following command:
$ git clone git://gitorious.impa.br/a48/a48.git
Alternatively, a stable (but not latest) release can be downloaded from the following link:
http://www.impa.br/~andmax/libs/a48-2.0.1.tgz
Note that this tarball file may be behind the source code version on the git repository.
This library was developed during the postdoctoral research of Andre Maximo at IMPA under the supervision of Professor Luiz Velho. We acknowledge the grant to the postdoc provided by Brazilian research agency CNPq (National Counsel of Technological and Scientific Development).
The people involved in the project of this library are listed below:
Main Code:
Collaborators:
Project Supervisor: