Browse Source

fix bad templating breaking python build (#2489)

* fix bad templating breaking python build

* assumed int when python using Integer
Alec Jacobson 5 tháng trước cách đây
mục cha
commit
678e1fff76

+ 3 - 4
include/igl/exterior_edges.cpp

@@ -48,16 +48,15 @@ IGL_INLINE void igl::exterior_edges(
   Eigen::PlainObjectBase<DerivedE> & E)
 {
   using Index = typename DerivedF::Scalar;
-  using VectorXI = Eigen::Matrix<typename DerivedF::Scalar,Eigen::Dynamic,1>;
-  using MatrixXI = Eigen::Matrix<typename DerivedF::Scalar,Eigen::Dynamic,Eigen::Dynamic>;
   assert(F.cols() == 3);
   const Index m = F.rows();
-  Eigen::MatrixXi all_E,sall_E,sort_order;
+  PlainMatrix<DerivedF,Eigen::Dynamic,2> all_E,sall_E;
+  Eigen::MatrixXi sort_order;
   // Sort each edge by index
   oriented_facets(F,all_E);
   sort(all_E,2,true,sall_E,sort_order);
   // Find unique edges
-  PlainMatrix<DerivedF,Eigen::Dynamic> uE;
+  PlainMatrix<DerivedF,Eigen::Dynamic,2> uE;
   Eigen::VectorXi IA,EMAP;
   unique_rows(sall_E,uE,IA,EMAP);
   Eigen::VectorXi counts = Eigen::VectorXi::Zero(uE.rows());

+ 2 - 2
include/igl/split_nonmanifold.cpp

@@ -363,10 +363,10 @@ IGL_INLINE void igl::split_nonmanifold(
   // Consider each unique edge in the original mesh
 
   // number of faces incident on each unique edge
-  Eigen::VectorXi D = uEC.tail(uEC.rows()-1)-uEC.head(uEC.rows()-1);
+  VectorXI D = uEC.tail(uEC.rows()-1)-uEC.head(uEC.rows()-1);
   Eigen::VectorXi uI;
   {
-    Eigen::VectorXi sD;
+    VectorXI sD;
     igl::sort(D,1,true,sD,uI);
   }
 

+ 3 - 1
include/igl/unique_sparse_voxel_corners.cpp

@@ -101,7 +101,9 @@ IGL_INLINE void igl::unique_sparse_voxel_corners(
   unique_ijk.resize(I.size(),3);
   for(int c = 0;c<I.size();c++)
   {
-    code2ijk(codes_vec(I(c)),unique_ijk(c,0),unique_ijk(c,1),unique_ijk(c,2));
+    Eigen::RowVector3i ijk_c;
+    code2ijk(codes_vec(I(c)),ijk_c(0),ijk_c(1),ijk_c(2));
+    unique_ijk.row(c) = ijk_c.cast<typename Derivedunique_ijk::Scalar>();
   }
 }