debug: is_valid() 添加诊断输出
CI / Build & Test (push) Failing after 26s
CI / Release Build (push) Failing after 34s

This commit is contained in:
茂之钳
2026-07-23 16:38:59 +00:00
parent d60f36dfc2
commit 5c4002620a
+13 -5
View File
@@ -59,16 +59,24 @@ core::AABB3D BrepModel::bounds() const {
}
bool BrepModel::is_valid() const {
// Basic validity: all referenced IDs must exist
for (const auto& e : edges_) {
if (e.v_start >= static_cast<int>(vertices_.size()) ||
e.v_end >= static_cast<int>(vertices_.size()))
e.v_end >= static_cast<int>(vertices_.size())) {
fprintf(stderr, "is_valid FAIL: edge v=%d/%d vs %zu verts\n", e.v_start, e.v_end, vertices_.size());
return false;
}
}
for (const auto& f : faces_) {
if (f.surface_id >= static_cast<int>(surfaces_.size())) return false;
for (int li : f.loops)
if (li >= static_cast<int>(loops_.size())) return false;
if (f.surface_id >= static_cast<int>(surfaces_.size())) {
fprintf(stderr, "is_valid FAIL: face.surface_id=%d vs %zu surfaces\n", f.surface_id, surfaces_.size());
return false;
}
for (int li : f.loops) {
if (li >= static_cast<int>(loops_.size())) {
fprintf(stderr, "is_valid FAIL: loop=%d vs %zu loops\n", li, loops_.size());
return false;
}
}
}
return true;
}