fix: face_edges/edge_faces 改用 ID 查找替代数组下标
This commit is contained in:
+8
-4
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user