MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / TEST

Function TEST

source/MRTest/MRFillHoleTests.cpp:10–50  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8{
9
10TEST( MRMesh, stitchHoles )
11{
12 Triangulation t{
13 { 0_v, 1_v, 2_v },
14 { 3_v, 4_v, 5_v }
15 };
16 Mesh mesh;
17 mesh.topology = MeshBuilder::fromTriangles( t );
18 EXPECT_EQ( mesh.topology.numValidVerts(), 6 );
19 EXPECT_EQ( mesh.topology.numValidFaces(), 2 );
20
21 mesh.points.emplace_back( 0.f, 0.f, 0.f ); // VertId{0}
22 mesh.points.emplace_back( 1.f, 0.f, 0.f ); // VertId{1}
23 mesh.points.emplace_back( 0.f, 1.f, 0.f ); // VertId{2}
24 mesh.points.emplace_back( 0.f, 0.f, 1.f ); // VertId{3}
25 mesh.points.emplace_back( 1.f, 0.f, 1.f ); // VertId{4}
26 mesh.points.emplace_back( 0.f, 1.f, 1.f ); // VertId{5}
27 EXPECT_EQ( mesh.points.size(), 6 );
28
29 auto bdEdges = mesh.topology.findHoleRepresentiveEdges();
30 EXPECT_EQ( bdEdges.size(), 2 );
31 EXPECT_FALSE( mesh.topology.left( bdEdges[0] ).valid() );
32 EXPECT_FALSE( mesh.topology.left( bdEdges[1] ).valid() );
33
34 FaceBitSet newFaces;
35 StitchHolesParams params;
36 auto fsz0 = mesh.topology.faceSize();
37 params.outNewFaces = &newFaces;
38 stitchHoles( mesh, bdEdges[0], bdEdges[1], params );
39 auto numNewFaces = mesh.topology.faceSize() - fsz0;
40
41 EXPECT_EQ( mesh.topology.numValidVerts(), 6 );
42 EXPECT_EQ( mesh.topology.numValidFaces(), 8 );
43 EXPECT_EQ( mesh.points.size(), 6 );
44 EXPECT_EQ( numNewFaces, 6 );
45 EXPECT_EQ( newFaces.count(), 6 );
46 EXPECT_EQ( newFaces.size(), 8 );
47
48 bdEdges = mesh.topology.findHoleRepresentiveEdges();
49 EXPECT_EQ( bdEdges.size(), 0 );
50}
51
52TEST( MRMesh, makeBridge )
53{

Callers

nothing calls this directly

Calls 15

fromTrianglesFunction · 0.85
stitchHolesFunction · 0.85
makeBridgeFunction · 0.85
MeshTopologyClass · 0.85
makeBridgeEdgeFunction · 0.85
getPlanarHoleFillPlanFunction · 0.85
executeHoleFillPlanFunction · 0.85
hasMultipleEdgesFunction · 0.85
numValidFacesMethod · 0.80
leftMethod · 0.80

Tested by

no test coverage detected