00001 // This is brl/bbas/imesh/algo/imesh_operations.h 00002 #ifndef imesh_algo_operations_h_ 00003 #define imesh_algo_operations_h_ 00004 //: 00005 // \file 00006 // \brief Operations on meshes that have additional dependencies 00007 // \author Matt Leotta (mleotta@lems.brown.edu) 00008 // \date June 24, 2008 00009 // 00010 // \verbatim 00011 // Modifications 00012 // <none yet> 00013 // \endverbatim 00014 00015 #include <imesh/imesh_mesh.h> 00016 00017 00018 //: Compute the dual mesh using vertex normals to compute dual vertices 00019 // The old vertices are used as constraints when the solution is singular 00020 // The singularity is enforced if a singular value is less than tau * max singular value 00021 imesh_mesh dual_mesh_with_normals(const imesh_mesh& mesh, 00022 const imesh_vertex_array_base& old_verts, 00023 double tau = 1e-2); 00024 00025 00026 //: Triangulate the faces of the mesh (in place) 00027 // Uses mesh geometry to handle nonconvex faces 00028 void 00029 imesh_triangulate_nonconvex(imesh_mesh& mesh); 00030 00031 00032 #endif // imesh_algo_operations_h_