본문 바로가기
OpenMesh

Openmesh Iterators(Mesh Navigation)

by DarkRock 2023. 12. 11.
반응형

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