MSSEnv

WARNING

Documentation is being written so things may not be perfect (typo error, missing part...)

Introduction

MSSEnv stands Mesh Sequence Segmentation Environnement.This project aims to create a complete mesh sequence segmentation environment: a framework to create, test and compare mesh sequence segmentation algorithms. It will also provide building blocks to create these algorithms and a graphical environment.

MSSEnv is developed in the context of my thesis.

Todo:
Add Madras

Requirement

Installation

There is two methods :

Note that cmake is the most supported

Mesh Sequence and Mesh Sequence Segmentation

Mesh Sequence Formalism

We use Mesh Sequence as a global term to refer to all types of mesh animations. We have defined the following segmentation:

Mesh Sequence Segmentation

A mesh $ M$ with $m$ vertices is a tuple $\{V,E,F\}$, with:

Let $f$ be the number of frames of the mesh sequence, $M^i$ the mesh at frame $i$, then a mesh sequence is defined as: $M_S=serie(M^1,\ldots, M^f)$. Using these definitions, We have defined 3 mesh sequence segmentations:

Another constraint, which is not mandatory and has to be removed for unconstrained mesh sequences, is to keep a constant connectivity between segments: if segment B is adjacent to segment A in one frame of the sequence, then it has to be adjacent to segment A in all other frames.

Format Description

This document presents the format used for the mesh sequences and their associated segmentations in the Madras repositories : http://www-rech.telecom-lille1.eu/madras/

The format is based on XML (extensible!) and uses a bzip2 (without loss) compression. The scheme can be downloaded here Change!.

The first two lines correspond to the xml header and schema description. They are mandatories :

<?xml version="1.0"?> <MS xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' Name="NAME" nbFrame="NBFRAME" xsi:schemaLocation='http://evasion.imag.fr/Membres/Romain.Arcila/files MeshSequenceSchema.xsd'> SHOULD BE CHANGED

where Name is the name of the sequence (can be empty) and nbFrame is at least 1.

The mesh sequence is therefore defined with one of the following tag:

A mesh is defined with the tag <M> containing :

A Dynamic Mesh (<DM>) contains a tag <M> (the first first frame) and a succession of tags <Vs> (one by frame of the sequence) which described the position of the vertices all along the sequence. A Stable Mesh Sequence (<SMS>) and an Unstable Mesh Sequence (<UMS.>) contain a succession of tags <M.>, one by frame.

Please note that a file can contain only one mesh sequence.

-----------------------------------------------------

The format supports the declaration of processing tags (<Processing.>) after the declaration of the mesh sequence. This tags is used to described the transformation applied on the sequence, such as compression or remeshing. At the time of now, only the Segmentations tag is defined. Additional tags can be added, compression will be added on near future.

The <Segmentations> tag is used to declare the different segmentations applied on the mesh sequence. It contains all the segmentations. (Please not than there is no support for Hierarchical Segmentation as it is not defined.)

The following segmentation types are defined:

Mesh Sequence

You can found some references sequence here : http://www-rech.telecom-lille1.eu/madras/

You can create your own sequence using the converter from an .off or .obj sequence supplied in the archive. Just do ./convert --help

Segmentation

Qt4

The GUI is coded with Qt4. The gui source file (files in GUI/) can use any Qt4 type without any restriction. The library source file, in lib, are used in plain C++, which means that QT4 is only an optional dependency. Any part of the code which use Qt4 may be surrounded by ifdef USE_QT4 endif.

Coding

Todo:
add coding section
Todo:
see coding for windows __declspec(dllexport), __declspec(dllimport) ...

Generated on Fri Jan 16 12:59:09 2009 by  doxygen 1.5.5