fix: face_edges/edge_faces 改用 ID 查找替代数组下标
CI / Build & Test (push) Failing after 24s
CI / Release Build (push) Failing after 38s

This commit is contained in:
茂之钳
2026-07-23 16:43:33 +00:00
parent 9e4c1b1f54
commit be76f495dc
+8 -4
View File
@@ -110,8 +110,10 @@ std::vector<int> BrepModel::face_edges(int face_id) const {
std::vector<int> result;
if (face_id < 0 || face_id >= static_cast<int>(faces_.size())) return result;
for (int li : faces_[face_id].loops)
for (int ei : loops_[li].edges)
result.push_back(ei);
for (const auto& lop : loops_)
if (lop.id == li)
for (int ei : lop.edges)
result.push_back(ei);
return result;
}
@@ -119,8 +121,10 @@ std::vector<int> BrepModel::edge_faces(int edge_id) const {
std::vector<int> result;
for (size_t fi = 0; fi < faces_.size(); ++fi)
for (int li : faces_[fi].loops)
for (int ei : loops_[li].edges)
if (ei == edge_id) result.push_back(static_cast<int>(fi));
for (const auto& lop : loops_)
if (lop.id == li)
for (int ei : lop.edges)
if (ei == edge_id) result.push_back(static_cast<int>(fi));
return result;
}