반응형
Openmesh 라이브러리를 이용하면 mesh에 관련된 기능을 상당히 많이 활용할 수 있는데, 그중에 가장 간단한 mesh의 모든 점들을 navigation 하는 방법을 소개해드리겠습니다.
Openmesh에 점(vertex), 선(edge), 면(face)을 navigation 하기 위해서는 iterator을 사용합니다.
MyMesh::VertexIter : vertex
MyMesh::FaceIter : face
MyMesh::EdgeIter : edge
이 iterator을 이용해서 mesh의 필요한 정보를 접근할 수 있습니다. 아래 코드는 sphere.stl 파일을 읽어 들여서 vertex iterator을 선언 후 mesh의 점 정보를 콘솔 창에 print 하는 코드입니다.
typedef OpenMesh::PolyMesh_ArrayKernelT<> MyMesh;
using namespace std;
int main()
{
MyMesh mesh;
if (!OpenMesh::IO::read_mesh(mesh, "sphere.stl"))
{
std::cerr << "read error " << std::endl;
return 1;
}
MyMesh::VertexIter v_it, v_end(mesh.vertices_end());
int i = 0;
for (v_it = mesh.vertices_sbegin(); v_it != v_end; ++v_it)
{
MyMesh::Point p = mesh.point(*v_it);
cout << i <<"th point:"<< p[0]<<"," << p[1] << "," << p[2] <<endl;
i++;
}
}
이렇게 Openmesh에서는 iterator를 이용해서 점 뿐만 아니라 선, 면도 모두 손쉽게 접근이 가능합니다.
반응형
'OpenMesh' 카테고리의 다른 글
Triangle Mesh 기본 구조 (0) | 2024.11.08 |
---|---|
OpenMesh Split (0) | 2024.10.24 |
Halfedge Data Structure(반모서리 자료구조) (0) | 2023.11.29 |
Cube Creation (0) | 2023.09.18 |
Mesh Subdivision (0) | 2023.09.18 |