반응형 오블완8 HalfedgeIterator HalfedgeIterator 사용법HalfedgeIterator는 OpenMesh에서 메쉬의 모든 Halfedge를 순회하는 데 사용됩니다. Halfedge는 OpenMesh의 가장 기본적인 요소 중 하나로, 각 Edge를 두 개의 방향성 있는 Halfedge로 나누어 메쉬를 관리합니다. Halfedge는 메쉬의 Topology와 관련된 많은 정보를 담고 있기 때문에, 메쉬의 구조를 분석하거나 변형하는 데 매우 유용합니다. Halfedge 개념은 아래글을 참고하세요.2023.11.29 - [OpenMesh] - Halfedge Data Structure(반모서리 자료구조) Halfedge Data Structure(반모서리 자료구조)OpenMesh는 Halfedge Data Structure를 사용하.. 2024. 11. 14. FaceIterator FaceIterator 사용법FaceIterator는 OpenMesh에서 메쉬의 모든 Face(면)를 순회하는 데 사용됩니다. 이 이터레이터를 사용하면 메쉬의 모든 Face에 접근할 수 있으며, 각 Face의 정보를 읽거나 수정할 수 있습니다. 이를 통해 메쉬의 표면에 대해 특정 작업을 수행하거나, 각 Face의 속성을 수집하는 작업을 효율적으로 처리할 수 있습니다. C++ 예제 코드다음은 OpenMesh에서 FaceIterator를 사용해 메쉬의 모든 Face를 순회하면서 각 Face의 Vertex 정보를 출력하는 간단한 예제입니다. MyMesh mesh; if (!OpenMesh::IO::read_mesh(mesh, "example.obj")) { std::cerr idx() 코드 설명.. 2024. 11. 13. Edge Flip Flipping EdgesOpenMesh의 Edge Flip은 아래 그림과 같이 edge를 뒤집는 기능을 합니다. 이 기능은 메쉬의 구조를 변경하는데 유용하면 특히 메쉬를 remeshing 하거나 최적화할 때 자주 사용됩니다. 예제코드 TriMesh mesh; TriMesh::VertexHandle vhandle[4]; vhandle[0] = mesh.add_vertex(TriMesh::Point(0, 0, 0)); vhandle[1] = mesh.add_vertex(TriMesh::Point(0, 1, 0)); vhandle[2] = mesh.add_vertex(TriMesh::Point(1, 1, 0)); vhandle[3] = mesh.add_vertex(TriMesh::Point(1, 0.. 2024. 11. 12. Collapsing Edges Edge CollapseEdge Collapse는 메쉬 단순화(simplification)를 위한 기법 중 하나로, 선택한 Edge를 제거하고 그 두 끝점(Vertex)을 하나로 병합하는 과정입니다. 이 작업을 통해 메쉬의 복잡성을 줄이고, 메쉬의 데이터 크기나 연산 부하를 줄일 수 있습니다. 코드 예제아래 그림과 같이 빨간색 edge를 collapse 하는 예제 코드입니다. collapse 할 edge 길이는 0.233이며, 이 edge를 찾기 위해 if 문을 사용했습니다. cout 하는 부분은 collapse 할 edge 두 점이 한 개의 점으로 합쳐지는 것을 확인하기 위한 코드입니다. MyMesh mesh; if (!OpenMesh::IO::read_mesh(mesh, "Mesh.st.. 2024. 11. 11. EdgeIterator EdgeIterator 사용법EdgeIterator는 OpenMesh에서 메쉬의 모든 Edge(변)를 순회하는 데 사용됩니다. 이를 통해 메쉬에 포함된 모든 Edge를 처음부터 끝까지 방문하면서 특정 작업을 수행하거나, 필요한 정보를 수집할 수 있습니다. OpenMesh에서는 MyMesh::EdgeIter를 사용해 EdgeIterator를 사용할 수 있습니다. EdgeIterator를 통해 메쉬에 포함된 각 Edge를 하나씩 방문하면서, Edge의 정보를 읽거나 수정할 수 있습니다. 예를 들어, 메쉬의 모든 Edge 길이를 출력하거나 특정 속성을 수정할 때 유용하게 활용됩니다. C++ 예제 코드다음은 OpenMesh에서 EdgeIterator를 사용해 메쉬의 모든 Edge를 순회하며 각 Edge의 길이.. 2024. 11. 10. VertexIterator VertexIterator 사용법 VertexIterator는 OpenMesh에서 메쉬의 모든 Vertex(정점)를 순회하는 데 사용됩니다. VertexIterator는 메쉬에 포함된 각 Vertex를 하나씩 방문하며, 정점의 정보를 읽거나 수정할 수 있게 해 줍니다. 이를 통해 메쉬의 모든 Vertex에 대해 특정 작업을 수행하거나, 필요한 정보를 수집할 수 있습니다. OpenMesh에서는 MyMesh::VertexIter를 통해 VertexIterator를 사용할 수 있습니다. 이 Iterator를 사용하면 메쉬에 포함된 모든 Vertex를 처음부터 끝까지 순회하면서 접근할 수 있습니다. 예를 들어, 메쉬의 모든 Vertex 위치를 출력하거나 특정 속성을 수정할 때 유용하게 활용됩니다. C++ 예.. 2024. 11. 9. Triangle Mesh 기본 구조 Triangle MeshTriangle Mesh(삼각형 메쉬)는 컴퓨터 그래픽스와 3D 모델링에서 가장 기본적인 메쉬 구조 중 하나로, 각 면이 삼각형으로 구성된 메쉬입니다. 이 구조는 복잡한 3D 형상을 간단한 삼각형 면들의 집합으로 나타낼 수 있게 해 주며, 그래픽 엔진에서의 효율적인 렌더링이 가능합니다. OpenMesh는 이러한 삼각형 메쉬의 데이터를 쉽게 다룰 수 있도록 설계된 C++ 라이브러리입니다. OpenMesh에서는 메쉬의 각 요소를 Vertex(정점), Edge(변), Face(면)이라는 기본 단위로 정의하여 관리합니다. Vertex (정점): Vertex는 메쉬의 꼭짓점을 나타내며, 3D 공간 상의 위치 좌표를 가지고 있습니다. 각 Vertex는 삼각형의 모서리를 연결하는 중요한 역할.. 2024. 11. 8. 중년 사무직이 애플워치를 사용해야 하는 이유(사용 후기) 애플워치1024년 9월에 구입해서 2개월 동안 사용해 보았는데, 그동안 느꼈던 점을 작성해 보겠습니다. 구입 고려하시는 분들은 도움이 되지 않을까 생각됩니다. 1. 수면 측정수면은 스트레스 관리와 치매 예방에 큰 영향을 미치고, 나이가 들수록 수면의 질은 건강에 중요한 역할을 합니다. 특히 중년 이후 수면 부족은 면역력 저하로 만성질환을 유발할 가능성을 높입니다. 따라서 충분한 수면은 중요하다고 볼 수 있습니다. 워치는 수면 패턴을 분석해 깊은 수면, 얕은 수면 깨는 시간등을 기록합니다. 기록된 시간을 참고해서 몇 시부터 잠을 자야 충분히 잘 수 있는지 파악을 할 수 있어 상당히 좋았습니다. 참고로 잠을 바로 자도록 하는 기능은 없습니다. ㅎㅎ 2. 심박수 모니터링애플워치는 심박수 모니터링 기능을 제공합.. 2024. 11. 7. 이전 1 다음 반응형