OVERVIEW OF THE MT PACKAGE
Components of the current distribution
The current distribution consists of three basic parts:
- Kernel:
MT, extractors, building interface, basic attribute tables.
- Extensions:
specialized attributes and attribute tables, specialized building
interfaces, customized MTs, customized extraction conditions.
- Building programs:
programs that iteratively refine or coarsen a tesselation and
use a (specialized) building interface in order to build a
(specialized) MT.
Parts 1 and 2 form the MT package.
They consist essentially of a hierarchy of C++ classes which
are compiled into two libraries: libMT.so and libMText.so.
Part 3 contains programs that can be used to build an MT.
They make use of the MT package.
In addition, documentation is provided as well as some
sample MTs, demos, and general utilities
Kernel
This is the standard part of the MT system, containing classes for:
- The plain MT (without user-defined features),
and the related building interface;
- The base class for extraction conditions;
- The extractors (global static, global dynamic, local extractor);
- Predefined attribute tables for storing ints, chars, floats, bits, and
vectors of such types.
This part forms the shared library libMT.so.
System extension
This part contains classes implementing:
- Features that can be added to an MT: tile errors, field values,
vertex normals.
- Customized MTs with one or more of such features,
and related building interfaces.
- Specialized extractions conditions, some of them referring to MTs
having certain features.
This part forms the shared library libMText.so.
The classes here are provided as examples.
By using such examples as templates, you can define
your own customized MTs, building interfaces, and extraction conditions.
The whole MT system (kernel and extension) is distributed open-source
under the GNU General Public License.
Programs for building MTs
Programs that build MTs are not part of the MT system.
They are independent programs which simply use the MT libraries.
The common feature of all such programs is an iterative process of
modification of a tesselation through a sequence of local updates.
Each of such programs accepts data of a certain nature related to a specific
type of geometric objects, encoded in a certain format, and operates
on such data through a certain algorithm.
In addition to the MT, some features may be generated such as approximation
errors for tiles and other application-dependent information.
We provide a few sample programs to build an MT. More programs will be
added in the future, and you can develope your programs too.
The current distribution contains:
-
Jademt:
Build two-dimensional MTs in 3D based on iterative
decimation of a triangle mesh.
-
Delaunaymt:
Build two-dimensional MTs in 3D representing terrains
based on iterative modification of a (constrained) Delaunay triangulation.
In a next future, we will add a program for three-dimensional scalar fields.
Note that some of the programs here have been developed in collaboration
with other institutions (as specified in the documentation files for
the specific programs).
Therefore, for some of these programs, the source code is not distributed.
Demos
We provide a few programs demonstrating the use of the MT.
- A demo for terrain MTs.
- A demo for two-dimensional MTs
representing the boundary of a solid object in 3D.
The programs use OpenGL and Glut for graphical display.
More demos will be added in the future.
Documentation
A copy of this on-line documentation is provided with the system.
Utilities
We provide a few utility programs manipulating an MT:
-
for reversing the orientation of triangles in a two-dimemsional MT
-
for computing vertex normals in a two-dimemsional MT
-
for converting an MT file into either ASCII or BINARY format
-
for computing statistical information on an MT
You can find more information on such utility programs
here.