cc20369ff5
VDE-025 (MeshData→Assembly batch build API): - mesh_to_brep_model() and build_assembly_from_meshes() fully implemented in src/brep/assembly.cpp with PartInput struct declared in assembly.h - 7 tests in tests/brep/test_assembly.cpp covering basic conversion, empty mesh, tetrahedron, single/multi/batch builds, and validation VDE-022: fix broken YAML closing markdown bold syntax on status line
1.2 KiB
1.2 KiB
VDE-025: 缺少 MeshData→Assembly 便捷构建 API
- ID: VDE-025
- Date: 2026-07-28
- Status: Fixed
- Severity: Medium
- Category: API Gap
- Source: ViewDesign feat/viewdesign-engine branch
Issue
ViewDesign 的 InterferenceCheck::checkBatch 需要逐个将 Shape→BrepModel→Assembly 转换。
VDE 的 Assembly 树 API 直接操作 BrepModel,没有提供从 mesh 批量构建装配体的便捷 API。
// 当前流程(逐个转换,效率低):
for (auto& [name, shape] : shapes) {
auto brep = shapeMeshToBrep(*shape._impl()->mesh);
assy.root.add_part(name, std::move(brep), ident);
}
auto result = check_interference(assy);
期望有类似 build_assembly_from_meshes(vector<MeshInput>) 的批量构建 API,
内部优化转换和内存管理。
Suggested Fix
VDE 提供批量导入 API:
struct PartInput {
std::string name;
HalfedgeMesh mesh;
Transform3D transform;
};
Assembly build_assembly_from_meshes(
const std::vector<PartInput>& parts);
批量构建内部优化:
- 批量 mesh→BrepModel 转换(并行或流水线)
- 统一内存管理(避免碎片化)
- 可选的 transform 应用(避免事后逐个调用
apply_transform)