Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

mmn_make_tri_tree.h

Go to the documentation of this file.
00001 #ifndef mmn_make_tri_tree_h_
00002 #define mmn_make_tri_tree_h_
00003 //:
00004 // \file
00005 // \brief Representation of topological arc joining two vertices
00006 // \author Tim Cootes
00007 
00008 
00009 #include <vnl/vnl_matrix.h>
00010 #include <mmn/mmn_arc.h>
00011 #include <vcl_vector.h>
00012 
00013 //: Compute arcs defining a graph s.t. triangles form a tree.
00014 //  Compute arc of graph such that point belongs to at least one triangle,
00015 //  and the graph of triangles is a tree (acylcic).
00016 //  Two triangles are neighbours if they share an edge (arc).
00017 //
00018 //  The approach is to select nodes one at a time, at each step
00019 //  choosing the node closest to two nodes ending an existing arc.
00020 //  This gives two new arcs.
00021 //
00022 //  Complexity is approximately O(n^2)
00023 //
00024 //  \param D: a symmetric matrix indicating proximity of two nodes
00025 //  \param arcs: Output 2n-3 arcs defining the graph.
00026 //  \param v0: If input as >=0 then defines one node of the first arc
00027 void mmn_make_tri_tree(const vnl_matrix<double>& D,
00028                        vcl_vector<mmn_arc>& arcs,
00029                        int v0=-1);
00030 
00031 
00032 #endif // mmn_make_tri_tree_h_
00033 

Generated on Thu Jan 10 14:44:52 2008 for contrib/mul/mmn by  doxygen 1.4.4