Browse Source

Update random_points_on_mesh.h

Alec Jacobson 6 years ago
parent
commit
4b3a874276
1 changed files with 20 additions and 7 deletions
  1. 20 7
      include/igl/random_points_on_mesh.h

+ 20 - 7
include/igl/random_points_on_mesh.h

@@ -1,9 +1,9 @@
 // This file is part of libigl, a simple c++ geometry processing library.
 // This file is part of libigl, a simple c++ geometry processing library.
-//
+// 
 // Copyright (C) 2013 Alec Jacobson <[email protected]>
 // Copyright (C) 2013 Alec Jacobson <[email protected]>
-//
-// This Source Code Form is subject to the terms of the Mozilla Public License
-// v. 2.0. If a copy of the MPL was not distributed with this file, You can
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public License 
+// v. 2.0. If a copy of the MPL was not distributed with this file, You can 
 // obtain one at http://mozilla.org/MPL/2.0/.
 // obtain one at http://mozilla.org/MPL/2.0/.
 #ifndef IGL_RANDOM_POINTS_ON_MESH_H
 #ifndef IGL_RANDOM_POINTS_ON_MESH_H
 #define IGL_RANDOM_POINTS_ON_MESH_H
 #define IGL_RANDOM_POINTS_ON_MESH_H
@@ -23,7 +23,7 @@ namespace igl
   // Outputs:
   // Outputs:
   //   B  n by 3 list of barycentric coordinates, ith row are coordinates of
   //   B  n by 3 list of barycentric coordinates, ith row are coordinates of
   //     ith sampled point in face FI(i)
   //     ith sampled point in face FI(i)
-  //   FI  n list of indices into F
+  //   FI  n list of indices into F 
   //
   //
   template <typename DerivedV, typename DerivedF, typename DerivedB, typename DerivedFI>
   template <typename DerivedV, typename DerivedF, typename DerivedB, typename DerivedFI>
   IGL_INLINE void random_points_on_mesh(
   IGL_INLINE void random_points_on_mesh(
@@ -33,6 +33,21 @@ namespace igl
     Eigen::PlainObjectBase<DerivedB > & B,
     Eigen::PlainObjectBase<DerivedB > & B,
     Eigen::PlainObjectBase<DerivedFI > & FI);
     Eigen::PlainObjectBase<DerivedFI > & FI);
   // Outputs:
   // Outputs:
+  //   X  n by dim list of sample positions.
+  template <
+    typename DerivedV, 
+    typename DerivedF, 
+    typename DerivedB, 
+    typename DerivedFI,
+    typename DerivedX>
+  IGL_INLINE void random_points_on_mesh(
+    const int n,
+    const Eigen::MatrixBase<DerivedV > & V,
+    const Eigen::MatrixBase<DerivedF > & F,
+    Eigen::PlainObjectBase<DerivedB > & B,
+    Eigen::PlainObjectBase<DerivedFI > & FI,
+    Eigen::PlainObjectBase<DerivedX> & X);
+  // Outputs:
   //   B n by #V sparse matrix so that  B*V produces a list of sample points
   //   B n by #V sparse matrix so that  B*V produces a list of sample points
   template <typename DerivedV, typename DerivedF, typename ScalarB, typename DerivedFI>
   template <typename DerivedV, typename DerivedF, typename ScalarB, typename DerivedFI>
   IGL_INLINE void random_points_on_mesh(
   IGL_INLINE void random_points_on_mesh(
@@ -48,5 +63,3 @@ namespace igl
 #endif
 #endif
 
 
 #endif
 #endif
-
-