fix(v1.0.1): VDE-016 root cause + VDE-017 submodule path
CI / Build & Test (push) Failing after 32s
CI / Release Build (push) Failing after 31s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled

VDE-016 (High): GCC two-phase lookup — root cause is anonymous namespace
- Move SSICurveData OUT of anonymous namespace into vde::brep
- Add #include <iterator> for std::begin/end
- Add using vde::brep::ClassResult

VDE-017 (Medium): Root CMakeLists configure_file CMAKE_SOURCE_DIR
- Change to CMAKE_CURRENT_SOURCE_DIR for submodule compatibility
This commit is contained in:
茂之钳
2026-07-27 23:34:18 +08:00
parent 7a955bac7f
commit b48ffec290
4 changed files with 91 additions and 27 deletions
+12 -10
View File
@@ -10,6 +10,7 @@
#include <algorithm>
#include <cmath>
#include <cstdint>
#include <iterator>
#include <limits>
#include <map>
#include <mutex>
@@ -40,6 +41,17 @@ using core::AABB3D;
AABB3D face_bounds(const BrepModel& body, int face_id);
Vector3D face_normal(const BrepModel& body, int face_id);
struct SSICurveData;
using vde::brep::ClassResult;
/// SSI curve data for a face pair
struct SSICurveData {
int face_a;
int face_b;
std::vector<Point3D> points;
Vector3D cutting_normal;
Point3D cutting_center;
bool valid = false;
};
namespace {
@@ -54,16 +66,6 @@ BrepModel extract_face_fragment(const BrepModel& body, int face_id);
ClassResult classify_point_adaptive(
const BrepModel& body, const Point3D& p, int& num_exact_upgrades);
/// SSI curve data for a face pair
struct SSICurveData {
int face_a;
int face_b;
std::vector<Point3D> points; ///< 3D intersection points
Vector3D cutting_normal; ///< best-fit plane normal for splitting
Point3D cutting_center; ///< centroid of intersection points
bool valid = false;
};
// ═══════════════════════════════════════════════════════════
// Mesh caching (shared with brep_boolean.cpp pattern)
// ═══════════════════════════════════════════════════════════