Files
ViewDesignEngine/docs/feedback/VDE-025.md
T
茂之钳 cc20369ff5 fix: mark VDE-025 as Fixed (MeshData→Assembly batch API), fix VDE-022 YAML formatting
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
2026-07-28 18:10:36 +08:00

1.2 KiB
Raw Blame History

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);

批量构建内部优化:

  1. 批量 mesh→BrepModel 转换(并行或流水线)
  2. 统一内存管理(避免碎片化)
  3. 可选的 transform 应用(避免事后逐个调用 apply_transform