본문 바로가기
OpenMesh

Delete Vertex

by DarkRock 2024. 11. 23.
반응형

OpenMesh에서 Vertex 삭제

OpenMesh는 메쉬 데이터의 동적 편집을 지원하며, Vertex 삭제는 메쉬 조작에서 중요한 작업 중 하나입니다. Vertex를 삭제하려면 반드시 삭제하려는 Vertex가 다른 요소(Edge, Face 등)와 연결되어 있지 않아야 하며, 삭제 후 메쉬의 정리를 위해 garbage_collection()을 호출해야 합니다.

 

 

 


예제 코드

다음 코드는 특정 Vertex를 삭제하는 예제입니다.

  if (!OpenMesh::IO::read_mesh(mesh, "example.obj")) 
   {
        std::cerr << "Error: Cannot read mesh file." << std::endl;
        return 1;
    }
   
    MyMesh::VertexHandle vh = mesh.vertex_handle(0);    
    if (!mesh.is_isolated(vh)) 
    {
        std::cerr << "Error: Vertex " << vh.idx() << " is not isolated. It has connected edges or faces." << std::endl;
        return 1;
    }    
    mesh.delete_vertex(vh, false);
    std::cout << "Vertex " << vh.idx() << " marked for deletion." << std::endl;    
    mesh.garbage_collection();    
    
    if (!OpenMesh::IO::write_mesh(mesh, "output_without_vertex.obj")) 
    {
        std::cerr << "Error: Could not write mesh to file." << std::endl;
        return 1;
    }

 

 

Vertex 삭제는 OpenMesh를 사용한 메쉬 편집에서 자주 수행되는 작업입니다. 삭제 시 Vertex의 연결 상태를 확인하고, 삭제 후 정리 작업을 수행하는 것이 중요합니다. 위 예제는 삭제 프로세스를 간결하게 설명하며, 다양한 응용 프로그램에서 활용될 수 있습니다.

반응형

'OpenMesh' 카테고리의 다른 글

Bounding Box  (0) 2024.11.25
Delete Face  (0) 2024.11.24
Incoming and outgoing halfedges  (1) 2024.11.22
Normal  (0) 2024.11.21
To from vertices  (0) 2024.11.20