Browse Source

added options to principal_curvature

Former-commit-id: c59f7b723e3d1aa50c6c73d1856a07862df06e98
Daniele Panozzo 11 years ago
parent
commit
44b10fb975
3 changed files with 12 additions and 4 deletions
  1. 8 1
      include/igl/principal_curvature.cpp
  2. 2 1
      include/igl/principal_curvature.h
  3. 2 2
      include/igl/tt.cpp

+ 8 - 1
include/igl/principal_curvature.cpp

@@ -782,7 +782,8 @@ IGL_INLINE void igl::principal_curvature(
                                          const Eigen::PlainObjectBase<DerivedF>& F,
                                          Eigen::PlainObjectBase<DerivedV>& PD1,
                                          Eigen::PlainObjectBase<DerivedV>& PD2,
-                                         unsigned radius
+                                         unsigned radius,
+                                         bool useKring
                                          )
 {
   using namespace std;
@@ -796,6 +797,12 @@ IGL_INLINE void igl::principal_curvature(
   cc.init(V.template cast<double>(),F.template cast<int>());
   cc.sphereRadius = radius;
   
+  if (useKring)
+  {
+    cc.kRing = radius;
+    cc.st = K_RING_SEARCH;
+  }
+  
   // Compute
   cc.computeCurvature();
   

+ 2 - 1
include/igl/principal_curvature.h

@@ -51,7 +51,8 @@ IGL_INLINE void principal_curvature(
                                      const Eigen::PlainObjectBase<DerivedF>& F,
                                      Eigen::PlainObjectBase<DerivedV>& PD1,
                                      Eigen::PlainObjectBase<DerivedV>& PD2,
-                                     unsigned radius = 5
+                                     unsigned radius = 5,
+                                     bool useKring = true
                                      );
 }
 

+ 2 - 2
include/igl/tt.cpp

@@ -76,7 +76,7 @@ IGL_INLINE void igl::tt(const Eigen::PlainObjectBase<Scalar>& V,
                         const Eigen::PlainObjectBase<Index>& F,
                         Eigen::PlainObjectBase<Index>& TT)
 {
-  assert(igl::is_manifold(V,F));
+  //assert(igl::is_manifold(V,F));
   std::vector<std::vector<int> > TTT;
   
   tt_preprocess(V,F,TTT);
@@ -90,7 +90,7 @@ IGL_INLINE void igl::tt(const Eigen::PlainObjectBase<Scalar>& V,
                         Eigen::PlainObjectBase<Index>& TT,
                         Eigen::PlainObjectBase<Index>& TTi)
 {
-  assert(igl::is_manifold(V,F));
+  //assert(igl::is_manifold(V,F));
   std::vector<std::vector<int> > TTT;
   
   tt_preprocess(V,F,TTT);