From 5c4002620ad7358a06bf4690075c8e77c8f2277a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=82=E4=B9=8B=E9=92=B3?= Date: Thu, 23 Jul 2026 16:38:59 +0000 Subject: [PATCH] =?UTF-8?q?debug:=20is=5Fvalid()=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/brep/brep.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/brep/brep.cpp b/src/brep/brep.cpp index 2fe969d..cc284c6 100644 --- a/src/brep/brep.cpp +++ b/src/brep/brep.cpp @@ -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(vertices_.size()) || - e.v_end >= static_cast(vertices_.size())) + e.v_end >= static_cast(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(surfaces_.size())) return false; - for (int li : f.loops) - if (li >= static_cast(loops_.size())) return false; + if (f.surface_id >= static_cast(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(loops_.size())) { + fprintf(stderr, "is_valid FAIL: loop=%d vs %zu loops\n", li, loops_.size()); + return false; + } + } } return true; }