Geodesic Computations on Surfaces

Krishnan, Karthik1*
1.Kitware Inc
Abstract
Geodesic Computations on Surfaces

Abstract

The computation of geodesic distances on a triangle mesh has many applications in geometry processing. The fast marching method provides an approximation of the true geodesic distance field. We provide VTK classes to compute geodesics on triangulated surface meshes. This includes classes for computing the geodesic distance field from a set of seeds and to compute the geodesic curve between source and destination point(s) by back-tracking along the gradient of the distance field. The fast marching toolkit (Peyre et. al.) is internally used. A variety of options are exposed to guide front propagation including the ability to specify propagation weights, constrain to a region, specify exclusion regions, and distance based termination criteria. Interpolators that plug into a contour widget, are provided to enable interactive tracing of paths on meshes.

Keywords

GeodesicsFast marching
Manuscript
Source Code and Data

Source Code and Data

GeodesicsOnMeshesCMakeLists.txt660 BCopyright.txt3.8 KBDataBunnyCurvWt.vtp1.3 MBBunny.vtp889.6 KBDistanceStopCriteria.png281.6 KBEllipsoid.vtp405.3 KBFastMarchingCMakeLists.txt1.9 KBCopyright.txt1.3 KBLicense.txt47 Bgw_geodesicGW_GeodesicFace.cpp4.1 KBGW_GeodesicFace.h2.3 KBGW_GeodesicFace.inl3.1 KBGW_GeodesicMesh.cpp4.7 KBGW_GeodesicMesh.h6.4 KBGW_GeodesicMesh.inl23.3 KBGW_GeodesicPath.cpp11.5 KBGW_GeodesicPath.h2.6 KBGW_GeodesicPath.inl2.9 KBGW_GeodesicPoint.cpp1.8 KBGW_GeodesicPoint.h2.8 KBGW_GeodesicPoint.inl4.8 KBGW_GeodesicVertex.cpp4.7 KBGW_GeodesicVertex.h5.8 KBGW_GeodesicVertex.inl10.3 KBGW_GeometryAtlas.cpp8.7 KBGW_GeometryAtlas.h2.2 KBGW_GeometryAtlas.inl761 BGW_GeometryCell.cpp1.9 KBGW_GeometryCell.h4.2 KBGW_Parameterization.cpp49.5 KBGW_GeometryCell.inl5.3 KBGW_Parameterization.h10.4 KBGW_Parameterization.inl12.1 KBGW_TriangularInterpolation.cpp14 BGW_TriangularInterpolation.h14 BGW_TriangularInterpolation.inl14 BGW_TriangularInterpolation_ABC.h2 KBGW_TriangularInterpolation_Cubic.cpp14.9 KBGW_TriangularInterpolation_Cubic.h2.6 KBGW_TriangularInterpolation_Cubic.inl805 BGW_TriangularInterpolation_Linear.cpp3.6 KBGW_TriangularInterpolation_Linear.h1.9 KBGW_TriangularInterpolation_Linear.inl808 BGW_TriangularInterpolation_Quadratic.cpp9.2 KBGW_TriangularInterpolation_Quadratic.h2.3 KBGW_TriangularInterpolation_Quadratic.inl817 BGW_VoronoiMesh.cpp48.2 KBGW_VoronoiMesh.h9 KBGW_VoronoiMesh.inl29.9 KBGW_VoronoiVertex.h3.5 KBGW_VoronoiVertex.cpp3.2 KBfmmtypes.h154 BGW_VoronoiVertex.inl3.3 KBstdafx.cpp203 Bstdafx.h2.1 KBgw_coreGW_Config.cpp348 BGW_Config.h12.6 KBGW_Face.cpp1002 BGW_Face.h5 KBGW_Face.inl12.4 KBGW_FaceIterator.cpp2.6 KBGW_FaceIterator.h2.6 KBGW_MathsWrapper.h2.6 KBGW_Mesh.h5.7 KBGW_Mesh.cpp27.4 KBGW_Mesh.inl9.6 KBGW_PolygonIntersector.h13.6 KBGW_ProgressBar.h2.3 KBGW_Serializable.h5.8 KBGW_SmartCounter.cpp2.2 KBGW_SmartCounter.h3.1 KBGW_SmartCounter.inl4.8 KBGW_Vertex.cpp17.8 KBGW_Vertex.h6.5 KBGW_Vertex.inl11.7 KBGW_VertexIterator.cpp5.1 KBGW_VertexIterator.h2.9 KBstdafx.cpp203 Bstdafx.h2 KBgw_mathsGW_Complex.h3.3 KBGW_Maths.h18 KBGW_MathsConfig.h10.7 KBGW_Matrix2x2.h6 KBGW_Matrix3x3.h12.2 KBGW_Matrix4x4.h19.2 KBGW_MatrixNxP.h23.8 KBGW_MatrixStatic.h28.4 KBGW_Quaternion.h15.8 KBGW_SparseMatrix.h12.5 KBGW_Vector2D.h2.5 KBGW_Vector4D.h1.8 KBGW_Vector3D.h3.2 KBGW_VectorND.h12.8 KBGW_VectorStatic.h13 KBtntjama_cholesky.h5.4 KBjama_eig.h28.7 KBjama_lu.h7.1 KBjama_qr.h7.5 KBjama_svd.h14.7 KBtnt.h1.8 KBtnt_array1d.h9.1 KBtnt_array1d_utils.h1.3 KBtnt_array2d.h9.7 KBtnt_array2d_utils.h2.3 KBtnt_array3d.h10.1 KBtnt_array3d_utils.h1.7 KBtnt_cmat.h11.2 KBtnt_fortran_array1d_utils.h1.3 KBtnt_fortran_array1d.h7.6 KBtnt_fortran_array2d.h8.4 KBtnt_fortran_array2d_utils.h1.6 KBtnt_fortran_array3d_utils.h1.7 KBtnt_fortran_array3d.h8.9 KBtnt_math_utils.h1.3 KBtnt_sparse_matrix_csr.h2.9 KBtnt_stopwatch.h2.2 KBtnt_subscript.h1.6 KBtnt_vec.h7.4 KBtnt_version.h1.1 KBExamplesCMakeLists.txt451 BGeodesicDistanceExample.cxx8.3 KBGeodesicPathExample.cxx4.4 KBLatexFiguresBunnyGeodesic.eps3.2 MBBunnyGeodesicDistanceStoppingCriteria.eps2.8 MBBunnyGeodesic.png290 KBBunnyGeodesicExclusionRegion.eps3.2 MBBunnyGeodesicDistanceStoppingCriteria.png136.1 KBBunnyGeodesicExclusionRegion.png389.5 KBContourLineInterpolatorsUML.eps673.2 KBContourLineInterpolatorsUML.jpg31.1 KBDragonGeodesic.eps3.8 MBEllipsoidFastMarchingWithCurvatureGuidedPropagation.eps3.4 MBDragonGeodesic.png504.1 KBGeodesicPathDijkstraZerothOrderInterp.eps1.7 MBEllipsoidFastMarchingWithCurvatureGuidedPropagation.png185.9 KBGeodesicPathFastMarchingFirstOrderInterp.eps1.7 MBGeodesicPathDijkstraZerothOrderInterp.png74.6 KBGeodesicPathFastMarchingZerothOrderInterp.eps1.7 MBGeodesicPathFastMarchingFirstOrderInterp.png77.3 KBGeodesicPathFastMarchingZerothOrderInterp.png73.3 KBGeodesicPathUML.jpg29 KBGeodesicPathUML.eps990.1 KBInsightArticle.cls4.1 KBInsightJournal.sty35.2 KBdocument.aux7.1 KBdocument.bbl876 Bdocument.blg1.2 KBdocument.brf284 Bdocument.dvi81.7 KBdocument.log25.6 KBdocument.out1.1 KBdocument.pdf481.2 KBdocument.tex22.2 KBdocument.tex~22.2 KBdocument.toc1.2 KBreferences.bib1.3 KBLicense.txt847 BSource.vtkFastMarchingGeodesicDistance.cxx.swp12 KBCMakeLists.txt775 B.vtkFastMarchingGeodesicPath.h.swp16 KBvtkFastMarchingGeodesicDistance.cxx13.5 KBvtkFastMarchingGeodesicDistance.h7.6 KBvtkFastMarchingGeodesicPath.cxx8.9 KBvtkFastMarchingGeodesicPath.h5.2 KBvtkPolyDataGeodesicDistance.cxx3.2 KBvtkPolyDataGeodesicDistance.h2.3 KBvtkPolygonalSurfaceContourLineInterpolator2.cxx9.8 KBvtkPolygonalSurfaceContourLineInterpolator2.h6 KBTestBaselinesTestGeodesicDistanceExclusionRegion.png82.4 KBTestGeodesicDistance.png109.3 KBTestGeodesicDistanceNoPropagationWt.png47 KBTestGeodesicDistanceMaxDistTermCriteria.png83.9 KBTestGeodesicDistancePropagationWt.png44.3 KBTestGeodesicPathFastMarchingLinear.png67.3 KBTestGeodesicPathDijkstraNearest.png63.5 KBTestGeodesicPathFastMarchingNearest.png64.2 KBTesting.CMakeLists.txt.swp12 KBCMakeLists.txt3.5 KBTestGeodesicDistance.cxx10.1 KBTestGeodesicPath.cxx5.1 KBvtkMeshGeodesicTestingIncludes.h426 BvtkTestingObjectFactory2.cmake2.4 KB

Select a file to preview