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
|