Skip to content

Commit ea87664

Browse files
authored
Merge pull request #916 from wildmeshing/dzint/image_simulation
Fix empty envelope bug after simplification
2 parents 0c36777 + 8d539dc commit ea87664

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

components/image_simulation/wmtk/components/image_simulation/EdgeCollapsing.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,11 @@ void ImageSimulationMesh::simplify()
389389
m_envelope = nullptr;
390390
m_V_envelope.clear();
391391
m_F_envelope.clear();
392-
init_envelope(V, F);
392+
if (V.size() > 0 && F.size() > 0) {
393+
init_envelope(V, F);
394+
} else {
395+
logger().warn("No surface faces left after simplification, skip re-building envelope");
396+
}
393397
}
394398
logger().info("===== Simplification done =====");
395399
}

components/image_simulation/wmtk/components/image_simulation/ImageSimulationMesh.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -586,8 +586,11 @@ void ImageSimulationMesh::init_envelope(const MatrixXd& V, const MatrixXi& F)
586586
if (m_envelope) {
587587
log_and_throw_error("Envelope was already initialized once.");
588588
}
589+
if (V.size() == 0 || F.size() == 0) {
590+
log_and_throw_error("Envelope vertices and faces cannot be empty.");
591+
}
592+
589593
assert(m_V_envelope.empty() && m_F_envelope.empty());
590-
assert(V.size() != 0 && F.size() != 0);
591594
assert(V.cols() == 3); // vertices must be in 3D
592595
assert(F.cols() == 3); // envelope must be triangles
593596

0 commit comments

Comments
 (0)