Browse Source

allow empty entries

Former-commit-id: 95b72bb52bd9d7ad91f47f0f389fa4573cd807d0
Alec Jacobson 7 years ago
parent
commit
da696d8256
1 changed files with 10 additions and 4 deletions
  1. 10 4
      include/igl/combine.cpp

+ 10 - 4
include/igl/combine.cpp

@@ -39,10 +39,10 @@ IGL_INLINE void igl::combine(
     const auto & Fi = FF[i];
     Vsizes(i) = Vi.rows();
     n+=Vi.rows();
-    assert(dim == Vi.cols() && "All vertex lists should have same #columns");
+    assert((Vi.size()==0 || dim == Vi.cols()) && "All vertex lists should have same #columns");
     Fsizes(i) = Fi.rows();
     m+=Fi.rows();
-    assert(ss == Fi.cols() && "All face lists should have same #columns");
+    assert((Fi.size()==0 || ss == Fi.cols()) && "All face lists should have same #columns");
   }
   V.resize(n,dim);
   F.resize(m,ss);
@@ -55,9 +55,15 @@ IGL_INLINE void igl::combine(
       const int ni = Vi.rows();
       const auto & Fi = FF[i];
       const int mi = Fi.rows();
-      F.block(kf,0,mi,ss) = Fi.array()+kv;
+      if(Fi.size() >0)
+      {
+        F.block(kf,0,mi,ss) = Fi.array()+kv;
+      }
       kf+=mi;
-      V.block(kv,0,ni,dim) = Vi;
+      if(Vi.size() >0)
+      {
+        V.block(kv,0,ni,dim) = Vi;
+      }
       kv+=ni;
     }
     assert(kv == V.rows());