2.1 Goals
MEPP provides a GUI and basic functionalities to al-
low development and fast integration and can also be
easily enriched with new features and new modules.
The platform provides a modular architecture through
the use of components available as dynamic plugins.
As it is important that all developments have a min-
imal impact compared to an operating system to
provide a great portability, we have directed our
choices to use robust, flexible and effective C++
cross-platform open source libraries.
In order that users and developers can easily use and
enhance the platform, a major effort has focused on
the fact that it can be deployed quickly and easily,
thanks in particular to a detailed installation docu-
mentation. The integration of new developments is
facilitated by a step by step documentation on the use
and enrichment of the platform.
2.2 Kernel and Related Features
Based on CGAL
2
, Qt
3
, libQGLViewer
4
, OpenGL
5
,
Boost
6
and FFmpeg
7
, the MEPP platform, written
in C++ under the GNU GPL v3, runs on Windows,
Linux and Mac OS X. It provides a development
environment based primarily on the class Polyhe-
dron of CGAL, library based on the principles of
Object-Oriented Programming and especially para-
metric polymorphism, i.e. template.
Without any component, the MEPP kernel only al-
lows loading, viewing and saving mesh and mesh se-
quences. The loading of mesh can be done by using
the menu or by drag and drop from one application
window or from a file browser.
MEPP allows the management of multiple objects
in one or more windows and offers two types of pro-
cessing and display for the meshes:
• the ”space” mode in which several objects are
treated in the same scene, allowing to compare
them, to observe them by coupling their rotation,
or to assess the results of treatments (Figure 1),
• the ”time” mode in which several objects are seen
as a sequence of meshes and visualized using a
3D+t configurable video recorder (step by step,
loop, reverse, speed, etc.).
2
http://www.cgal.org/
3
http://qt.nokia.com/
4
http://www.libqglviewer.com/
5
http://www.opengl.org/
6
http://www.boost.org/
7
http://ffmpeg.org/
At any time, users can easily switch from one mode
to another.
The platform offers an OpenGL accelerated dis-
Figure 1: The interface of MEPP, here in ”space” mode.
play with ”Display Lists” in order to allow the use
of all graphics cards. The rendering is possible
as cloud of points, wireframe and conventional 3D
with or without reinforcement of points and edges.
Three color modes are available: ”vertex color”, ”face
color” or ”material”.
Meshes related to OBJ (Wavefront), OFF (Object File
Format), PLY (Polygon File Format), SMF (3D World
Studio) and X3D (XML-based free format) can be
read. For now, only the formats OBJ (Wavefront) and
OFF (Object File Format) can be written. Image and
video capture (H.264/MPEG-4 AVC) are also avail-
able.
The management of the mesh is also done within
the MEPP kernel, ie its memory storage and ac-
cess but also basic functionalities associated (num-
ber of components and boundaries, normals, bound-
ing box, degree, valence, genus, tags, etc.). The ker-
nel also provides to all components a ”Viewer” object
that manages the display and behavior of the object
”Scene” according to the mode (”normal”, ”space” or
”time”), itself containing the object or objects Polyhe-
dron (Figure 2).
The structure of underlying data used in the plat-
form to represent a mesh is based on the concept of
semi-oriented edges, ie half-edges, with relations of
incidence and adjacency. It restricts the class of rep-
resentable mesh with those of type manifold, with or
without borders; we call it a polyhedron.
One of the big advantages of MEPP, however, is
the fact that the definition of this polyhedron only ap-
pears rarely to the developer eyes, in order to best ab-
stract the CGAL library.
MEPP - 3D MESH PROCESSING PLATFORM
207