#pragma once #include "vde/brep/brep.h" #include #include namespace vde::brep { enum class RecognizedFeatureType { Hole, Slot, Pocket, Boss, Fillet, Chamfer, Rib, Unknown }; struct RecognizedFeature { RecognizedFeatureType type = RecognizedFeatureType::Unknown; std::vector 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 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