added a unittest that checks if the VertexFaceIter also works at boundaries after replacing current_halfedge_handle
closes #1718 git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@964 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
@@ -275,4 +275,77 @@ TEST_F(OpenMeshTrimeshCirculatorCurrentHalfedgeHandleReplacement, fe_iter) {
|
|||||||
EXPECT_EQ(heh0[i], heh1[i]) << "halfedge handles do not match";
|
EXPECT_EQ(heh0[i], heh1[i]) << "halfedge handles do not match";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Small BoundaryVertexFaceIterator Test
|
||||||
|
*/
|
||||||
|
TEST_F(OpenMeshTrimeshCirculatorCurrentHalfedgeHandleReplacement, vf_iter_boundary) {
|
||||||
|
|
||||||
|
mesh_.clear();
|
||||||
|
|
||||||
|
// Add some vertices
|
||||||
|
Mesh::VertexHandle vhandle[6];
|
||||||
|
|
||||||
|
vhandle[0] = mesh_.add_vertex(Mesh::Point(0, 1, 0));
|
||||||
|
vhandle[1] = mesh_.add_vertex(Mesh::Point(1, 0, 0));
|
||||||
|
vhandle[2] = mesh_.add_vertex(Mesh::Point(2, 1, 0));
|
||||||
|
vhandle[3] = mesh_.add_vertex(Mesh::Point(3, 0, 0));
|
||||||
|
vhandle[4] = mesh_.add_vertex(Mesh::Point(4, 1, 0));
|
||||||
|
vhandle[5] = mesh_.add_vertex(Mesh::Point(2,-1, 0));
|
||||||
|
|
||||||
|
// Add three faces
|
||||||
|
std::vector<Mesh::VertexHandle> face_vhandles;
|
||||||
|
|
||||||
|
face_vhandles.push_back(vhandle[0]);
|
||||||
|
face_vhandles.push_back(vhandle[1]);
|
||||||
|
face_vhandles.push_back(vhandle[2]);
|
||||||
|
mesh_.add_face(face_vhandles);
|
||||||
|
|
||||||
|
face_vhandles.clear();
|
||||||
|
|
||||||
|
face_vhandles.push_back(vhandle[2]);
|
||||||
|
face_vhandles.push_back(vhandle[3]);
|
||||||
|
face_vhandles.push_back(vhandle[4]);
|
||||||
|
mesh_.add_face(face_vhandles);
|
||||||
|
|
||||||
|
face_vhandles.clear();
|
||||||
|
|
||||||
|
face_vhandles.push_back(vhandle[1]);
|
||||||
|
face_vhandles.push_back(vhandle[5]);
|
||||||
|
face_vhandles.push_back(vhandle[3]);
|
||||||
|
mesh_.add_face(face_vhandles);
|
||||||
|
|
||||||
|
/* Test setup:
|
||||||
|
*
|
||||||
|
* 0 ------ 2 ------ 4
|
||||||
|
* \ / \ /
|
||||||
|
* \ 0 / \ 1 /
|
||||||
|
* \ / \ /
|
||||||
|
* 1 ------- 3
|
||||||
|
* \ /
|
||||||
|
* \ 2 /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* 5
|
||||||
|
*/
|
||||||
|
size_t current_halfedge_handles[9] = {
|
||||||
|
0,2,12,4,6,8,16,10,14
|
||||||
|
};
|
||||||
|
std::vector<Mesh::FaceHandle> fh0;
|
||||||
|
std::vector<Mesh::FaceHandle> fh1;
|
||||||
|
size_t i(0);
|
||||||
|
for (Mesh::VertexIter v_it = mesh_.vertices_begin(); v_it != mesh_.vertices_end(); ++v_it) {
|
||||||
|
for (Mesh::VertexFaceIter vf_it = mesh_.vf_iter(*v_it); vf_it.is_valid(); ++vf_it, ++i)
|
||||||
|
fh0.push_back(mesh_.face_handle(Mesh::HalfedgeHandle(current_halfedge_handles[i])));
|
||||||
|
}
|
||||||
|
for (Mesh::VertexIter v_it = mesh_.vertices_begin(); v_it != mesh_.vertices_end(); ++v_it) {
|
||||||
|
for (Mesh::VertexFaceIter vf_it = mesh_.vf_iter(*v_it); vf_it.is_valid(); ++vf_it)
|
||||||
|
fh1.push_back(*vf_it);
|
||||||
|
}
|
||||||
|
|
||||||
|
EXPECT_EQ(fh0.size(), fh1.size()) << "size of vectors does not match";
|
||||||
|
for (size_t i = 0; i < fh0.size(); ++i)
|
||||||
|
EXPECT_EQ(fh0[i], fh1[i]) << "face handles do not match";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user