c5ed3d6dd9
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
21 lines
745 B
C++
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
|