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

Function TEST

source/MRTest/MRMeshTests.cpp:12–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10{
11
12TEST(MRMesh, Pack)
13{
14 Triangulation t{
15 { 0_v, 1_v, 2_v },
16 { 0_v, 2_v, 3_v }
17 };
18 Mesh mesh;
19 EXPECT_TRUE( mesh.topology.checkValidity() );
20
21 mesh.topology = MeshBuilder::fromTriangles( t );
22 mesh.points.emplace_back( 0.f, 0.f, 0.f );
23 mesh.points.emplace_back( 1.f, 0.f, 0.f );
24 mesh.points.emplace_back( 1.f, 1.f, 0.f );
25 mesh.points.emplace_back( 0.f, 1.f, 0.f );
26
27 EXPECT_TRUE( mesh.topology.checkValidity() );
28 EXPECT_EQ( mesh.points.size(), 4 );
29 EXPECT_EQ( mesh.topology.edgePerVertex().size(), 4 );
30 EXPECT_EQ( mesh.topology.edgePerFace().size(), 2 );
31 EXPECT_EQ( mesh.topology.lastNotLoneEdge(), EdgeId(9) ); // 5*2 = 10 half-edges in total
32
33 Mesh dbl = mesh;
34 dbl.addMesh( mesh );
35 EXPECT_TRUE( dbl.topology.checkValidity() );
36 EXPECT_EQ( dbl.points.size(), 8 );
37 EXPECT_EQ( dbl.topology.numValidVerts(), 8 );
38 EXPECT_EQ( dbl.topology.numValidFaces(), 4 );
39 EXPECT_EQ( dbl.topology.lastNotLoneEdge(), EdgeId(19) ); // 10*2 = 20 half-edges in total
40
41 mesh.topology.deleteFace( 1_f );
42 EXPECT_TRUE( mesh.topology.checkValidity() );
43 EXPECT_EQ( mesh.points.size(), 4 );
44 EXPECT_EQ( mesh.topology.edgePerVertex().size(), 4 );
45 EXPECT_EQ( mesh.topology.edgePerFace().size(), 2 );
46
47 mesh.pack();
48 EXPECT_TRUE( mesh.topology.checkValidity() );
49 EXPECT_EQ( mesh.points.size(), 3 );
50 EXPECT_EQ( mesh.topology.edgePerVertex().size(), 3 );
51 EXPECT_EQ( mesh.topology.numValidVerts(), 3 );
52 EXPECT_EQ( mesh.topology.edgePerFace().size(), 1 );
53 EXPECT_EQ( mesh.topology.numValidFaces(), 1 );
54 EXPECT_EQ( mesh.topology.lastNotLoneEdge(), EdgeId(5) ); // 3*2 = 6 half-edges in total
55
56 mesh.topology.deleteFace( FaceId( 0 ) );
57 EXPECT_TRUE( mesh.topology.checkValidity() );
58 EXPECT_EQ( mesh.points.size(), 3 );
59 EXPECT_EQ( mesh.topology.edgePerVertex().size(), 3 );
60 EXPECT_EQ( mesh.topology.edgePerFace().size(), 1 );
61
62 mesh.pack();
63 EXPECT_TRUE( mesh.topology.checkValidity() );
64 EXPECT_EQ( mesh.points.size(), 0 );
65 EXPECT_EQ( mesh.topology.edgePerVertex().size(), 0 );
66 EXPECT_EQ( mesh.topology.edgePerFace().size(), 0 );
67 EXPECT_EQ( mesh.topology.lastNotLoneEdge(), EdgeId() );
68}
69

Callers

nothing calls this directly

Calls 15

fromTrianglesFunction · 0.85
makeCubeFunction · 0.85
Tgt2SrcMapsClass · 0.85
BitSetParallelForAllFunction · 0.85
addMeshMethod · 0.80
numValidFacesMethod · 0.80
deleteFaceMethod · 0.80
faceSizeMethod · 0.80
addMeshPartMethod · 0.80
getHashMapMethod · 0.80
countMethod · 0.80
getAllTriVertsMethod · 0.80

Tested by

no test coverage detected