Files
ViewDesignEngine/include/vde/brep/feature_recognition.h
T

21 lines
745 B
C++
Raw Normal View History

#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