## Available object types

The following object types are available:

### Landmark

A landmark object is a set of *labelled* points in space: . Distance between landmark objects assume that both objects have the same number of points and that they are in correspondence.

**Object Type**: the corresponding object-type in paramObject.xml files is*Landmark***Metric**: the distance between two landmark objects and is given by:

**Parameter settings**: none**Deformation**: the deformation of the landmark object is given by the point trajectories**File format**: Each Landmark object needs to be encoded as a PolyData in a Legacy VTK file format. Only the field POINTS is read.

### Point clouds (*aka* 0-current)

A point cloud is an *unstructured* set of points in space: . Distance between point clouds does not assume the same number of points in objects. Point clouds are seen as a distribution of points in space (each point is a Dirac mass) and the distance between point clouds is a distance between probability distributions. Weights may be associated to each point, by default all weights are assumed to be equal to 1.

**Object Type**: the corresponding object-type in paramObject.xml files is*PointCloud***Metric**: the distance between two point clouds and is given by where the inner-product is given by:

**Parameter settings**: width of the kernel function .**Deformation**: the deformation of the point cloud is given by the point trajectories**File format**: Each point could object needs to be encoded as a PolyData in a Legacy VTK file format. The field POINTS is read for the coordinates of points. The field POINT_DATA of type scalars is read, if provided. If not, all point weights are set to 1 and a warning is displayed.

### Oriented Polygonal Lines (*aka* 1-current)

A set of oriented polygonal lines is a 1D mesh in 2D or 3D. It is made of a set of vertices and a connectivity matrix linking pairs of vertices. No assumption about the topology of the mesh is made. From the vertices and connectivity matrix, one builds the centers of the segments and the *oriented* vector connecting the pairs of vertices. The orientation is determined by the ordering of the vertex indices in the connectivity matrix. Distance between oriented polygonal lines does not assume the same number of vertices or the same number of segments in objects. 1-currents are seen as a distribution of vectors in space and the distance between 1-currents is a distance between such distributions.

**Object Type**: the corresponding object-type in paramObject.xml files is*OrientedPolyLine***Metric**: the distance between two oriented polygonal lines whose centers and oriented segments are and is given by where the inner-product is given by::

**Parameter settings**: width of the kernel function .**Deformation**: the deformation of oriented polygonal lines is defined by the trajectories of the vertices . The deformed centers and segments are computed from the vertex trajectories. This procedure amounts to approximate the deformation by a linear transform at the scale of each segment.**File format**: Each set of oriented polygonal lines needs to be encoded as a PolyData in a Legacy VTK file format. The field POINTS is read for the coordinates of points and the field POLYGONS for the connectivity matrix. An error occurs if POLYGONS does not define segments. Please, not that the field LINES is not supported.

### Non-oriented Polygonal Lines (*aka* 1-varifold)

A set of non-oriented polygonal lines is a 1D mesh in 2D or 3D, like a set of oriented polygonal lines. The only difference with *OrientedPolyLine* is that the distance between non-oriented polygonal lines is invariant if orientation of the segments is changed. In other word, the ordering of the vertices in the connectivity matrix does not play a role anymore.

**Object Type**: the corresponding object-type in paramObject.xml files is*NonOrientedPolyLine***Metric**: the distance between two non-oriented polygonal lines whose centers and segments are and is given by where the inner-product is given by::

**Parameter settings**: width of the kernel function .**Deformation**: the deformation of oriented polygonal lines is defined by the trajectories of the vertices . The deformed centers and segments are computed from the vertex trajectories. This procedure amounts to approximate the deformation by a linear transform at the scale of each segment.**File format**: Each set of oriented polygonal lines needs to be encoded as a PolyData in a Legacy VTK file format. The field POINTS is read for the coordinates of points and the field POLYGONS for the connectivity matrix. An error occurs if POLYGONS does not define segments. Please, not that the field LINES is not supported.

### Oriented Surface Mesh (*aka* 2-current)

An oriented surface mesh is a 2D triangular mesh in 3D. It is made of a set of vertices and a connectivity matrix linking triplets of vertices. No assumption about the topology of the mesh is made. From the vertices and connectivity matrix, one builds the centers of the mesh cells (that are triangles) and the *oriented* normals whose magnitude equals the area of the mesh cell . The orientation is determined by the ordering of the vertex indices in the connectivity matrix. Distance between oriented surface meshes does not assume the same number of vertices or the same number of faces in objects. 2-currents are seen as a distribution of bi-vectors in space and the distance between 2-currents is a distance between such distributions.

**Object Type**: the corresponding object-type in paramObject.xml files is*OrientedSurfaceMesh***Metric**: the distance between two oriented surface meshes whose centers and oriented normals are and is given by where the inner-product is given by::

**Parameter settings**: width of the kernel function .**Deformation**: the deformation of oriented surface meshes is defined by the trajectories of the vertices . The deformed centers and normals are computed from the vertex trajectories. This procedure amounts to approximate the deformation by a linear transform at the scale of each mesh cell.**File format**: Each set of oriented surface mesh needs to be encoded as a PolyData in a Legacy VTK file format. The field POINTS is read for the coordinates of points and the field POLYGONS for the connectivity matrix. An error occurs if POLYGONS does not define triangles. Deformetrica does**not**read the field NORMALS, but compute normals from the field POLYGONS. Ordering in POLYGONS is important!

### Non-oriented Surface Mesh (*aka* 2-varifold)

A non-oriented surface mesh is a 2D triangular mesh in 3D, like an oriented surface mesh. The only difference with *OrientedSurfaceMesh* is that the distance between non-oriented surface meshes is invariant if orientation of the mesh cells is changed. In other word, the ordering of the vertices in the connectivity matrix does not play a role anymore.

**Object Type**: the corresponding object-type in paramObject.xml files is*NonOrientedSurfaceMesh***Metric**: the distance between two non-oriented surface meshes whose centers and normals are and is given by where the inner-product is given by::

**Parameter settings**: width of the kernel function .**Deformation**: the deformation of non-oriented surface meshes is defined by the trajectories of the vertices . The deformed centers and normals are computed from the vertex trajectories. This procedure amounts to approximate the deformation by a linear transform at the scale of each mesh cell.**File format**: Each set of oriented surface mesh needs to be encoded as a PolyData in a Legacy VTK file format. The field POINTS is read for the coordinates of points and the field POLYGONS for the connectivity matrix. An error occurs if POLYGONS does not define triangles.

**References**:

J. Glaunès, A. Trouvé, L. Younes, Diffeomorphic Matching of Distributions: A New Approach for Unlabelled Points-Sets and Sub-Manifold Matching, In Proc. of Computer Vision and Pattern Recognition (CVPR), 2, 712-718, 2004

M. Vaillant and J. Glaunès, Surface Matching via Currents, Proc. Inf Process Med Imaging, G. E. Christensen and M. Sonka editors, Lecture Notes in Computer Science Vol. 3565, 381-392, Springer, 2005

J. Glaunès, A. Qiu, M.I. Miller, L. Younes, Large Deformation Diffeomorphic Metric Curve Mapping, International Journal of Computer Vision, 80(3), 317-336, Springer, 2008

S. Durrleman, Statistical models of currents for measuring the variability of anatomical curves, surfaces and their evolution, PhD thesis, University of Nice Sophia-Antipolis, 2010

N. Charon and A. Trouvé, The varifold representation of non-oriented shapes for diffeomorphic registration, SIAM Journal of Imaging Science, 6(4), 2547-2580, 2013

### Latest news

- Deformetrica is back on line! February 11, 2015
- Deformetrica 2.1 is out ! December 19, 2014
- CADDementia results out! September 23, 2014
- Deformetrica@MICCAI 2014! June 24, 2014
- Deformetrica is released! March 13, 2014

### Keep in touch

Thanks for dropping by!

Feel free to subscribe to the RSS feed to stay updated with the latest news of the Deformetrica project.

If you have any questions or comments, feel free to leave a post in the forum, or to us!

Don't hesitate to send us the references of your papers and your best pictures and movies for our gallery!