ViewDesignEngine  3.1.0
高性能 CAD 计算几何引擎
brep_validate.h
浏览该文件的文档.
1 #pragma once
22 #include "vde/brep/brep.h"
23 #include <vector>
24 #include <string>
25 #include <limits>
26 
27 namespace vde::brep {
28 
42  bool valid = true;
43 
45  std::vector<std::string> errors;
46 
48  std::vector<std::string> warnings;
49 
51  double watertightness = 1.0;
52 
54  double self_intersection_free = 1.0;
55 
57  double min_edge_length = std::numeric_limits<double>::max();
58 
60  double max_edge_length = 0.0;
61 
63  size_t non_manifold_edges = 0;
64 
66  size_t dangling_edges = 0;
67 
70 
72  size_t total_edges = 0;
73 
75  size_t total_faces = 0;
76 };
77 
110 [[nodiscard]] ValidationResult validate(const BrepModel& body);
111 
112 } // namespace vde::brep
边界表示(B-Rep)核心数据结构
B-Rep 模型
Definition: brep.h:177
Definition: brep.h:54
ValidationResult validate(const BrepModel &body)
对 BrepModel 执行综合验证
B-Rep 模型的综合验证结果
Definition: brep_validate.h:40
size_t total_edges
总边数
Definition: brep_validate.h:72
std::vector< std::string > warnings
警告信息列表(不影响 valid)
Definition: brep_validate.h:48
size_t inconsistent_orientations
方向不一致的面数
Definition: brep_validate.h:69
size_t dangling_edges
悬挂边数(无相邻面的边)
Definition: brep_validate.h:66
std::vector< std::string > errors
错误信息列表(导致 valid = false)
Definition: brep_validate.h:45
bool valid
是否通过所有必要检查
Definition: brep_validate.h:42
double min_edge_length
最短边的长度(用于检测退化边)
Definition: brep_validate.h:57
size_t total_faces
总面数
Definition: brep_validate.h:75
double max_edge_length
最长边的长度(用于检测超长边)
Definition: brep_validate.h:60
double self_intersection_free
无自交比率:不与其他面内部相交的面对比例(1.0 = 无自交)
Definition: brep_validate.h:54
double watertightness
水密性比率:恰好有 2 个相邻面的边的比例(1.0 = 完美水密)
Definition: brep_validate.h:51
size_t non_manifold_edges
非流形边数(相邻面 ≠ 2 的边)
Definition: brep_validate.h:63