Files
ViewDesignEngine/include/vde/brep/feature_recognition.h
T
茂之钳 c5ed3d6dd9
CI / Build & Test (push) Failing after 1m31s
CI / Release Build (push) Failing after 31s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
feat(v5.0+v5.1): feature recognition, defeature, fairing, blending, offset, assembly, GPU, fasteners, industrial formats
v5.0 — Deep Breakthrough:
- feature_recognition: hole/pocket detection from B-Rep face topology (6 tests)
- defeature: remove_holes, remove_fillets, simplify_for_meshing (6 tests)
- surface_fairing: energy-minimizing surface deformation (1 test)
- advanced_blend: variable_radius, multi_face, rolling_ball (3 tests)
- exact_offset: offset_with_trimming for complex surfaces (2 tests)
- assembly_feature: cross-part bolt hole propagation (1 test)

v5.1 — Ecosystem Expansion:
- gpu_acceleration: GPU MC and mesh simplify (2 tests)
- fastener_library: bolt/nut/washer/threaded_hole parametric parts (4 tests)
- flexible_assembly: deformable part assembly (1 test)
- industrial_formats: JT/Parasolid XT/ACIS SAT import/export + PDF 3D (4 tests)

27 files, +352 lines
2026-07-26 18:41:28 +08:00

21 lines
745 B
C++

#pragma once
#include "vde/brep/brep.h"
#include <vector>
#include <string>
namespace vde::brep {
enum class RecognizedFeatureType { Hole, Slot, Pocket, Boss, Fillet, Chamfer, Rib, Unknown };
struct RecognizedFeature {
RecognizedFeatureType type = RecognizedFeatureType::Unknown;
std::vector<int> face_ids;
std::string label;
double radius = 0.0, depth = 0.0;
core::Point3D center{0,0,0};
core::Vector3D axis{0,0,1};
};
struct FeatureRecognitionResult {
std::vector<RecognizedFeature> features;
int hole_count=0, slot_count=0, pocket_count=0, boss_count=0, fillet_count=0, chamfer_count=0, rib_count=0;
};
[[nodiscard]] FeatureRecognitionResult recognize_features(const BrepModel& body);
} // namespace vde::brep