MCPcopy Create free account
hub / github.com/PointCloudLibrary/pcl / TEST

Function TEST

test/io/test_io.cpp:60–163  ·  view source on GitHub ↗

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

58
59//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
60TEST (PCL, ComplexPCDFileASCII)
61{
62 std::ofstream fs;
63 fs.open ("complex_ascii.pcd");
64 fs << "# .PCD v0.7 - Point Cloud Data file format\n"
65 "VERSION 0.7\n"
66 "FIELDS fpfh _ x y z\n"
67 "SIZE 4 1 4 4 4\n"
68 "TYPE F F F F F\n"
69 "COUNT 33 10 1 1 1\n"
70 "WIDTH 1\n"
71 "HEIGHT 1\n"
72 "VIEWPOINT 0 0 0 1 0 0 0\n"
73 "POINTS 1\n"
74 "DATA ascii\n"
75 "0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 -69.234001 -65.460999 19.173";
76 fs.close ();
77
78 pcl::PCLPointCloud2 blob;
79 int res = loadPCDFile ("complex_ascii.pcd", blob);
80 EXPECT_NE (res, -1);
81 EXPECT_EQ (blob.width, 1);
82 EXPECT_EQ (blob.height, 1);
83 EXPECT_TRUE (blob.is_dense);
84 EXPECT_EQ (blob.data.size (), 4 * 33 + 10 * 1 + 4 * 3);
85
86 // Check fields
87 EXPECT_EQ (blob.fields[0].name, "fpfh");
88 EXPECT_EQ (blob.fields[0].offset, 0);
89 EXPECT_EQ (blob.fields[0].count, 33);
90 EXPECT_EQ (blob.fields[0].datatype, pcl::PCLPointField::FLOAT32);
91
92 EXPECT_EQ (blob.fields[1].name, "_");
93 EXPECT_EQ (blob.fields[1].offset, 4 * 33);
94 EXPECT_EQ (blob.fields[1].count, 10);
95 EXPECT_EQ (blob.fields[1].datatype, (std::uint8_t) -1);
96
97 EXPECT_EQ (blob.fields[2].name, "x");
98 EXPECT_EQ (blob.fields[2].offset, 4 * 33 + 10 * 1);
99 EXPECT_EQ (blob.fields[2].count, 1);
100 EXPECT_EQ (blob.fields[2].datatype, pcl::PCLPointField::FLOAT32);
101
102 EXPECT_EQ (blob.fields[3].name, "y");
103 EXPECT_EQ (blob.fields[3].offset, 4 * 33 + 10 * 1 + 4);
104 EXPECT_EQ (blob.fields[3].count, 1);
105 EXPECT_EQ (blob.fields[3].datatype, pcl::PCLPointField::FLOAT32);
106
107 EXPECT_EQ (blob.fields[4].name, "z");
108 EXPECT_EQ (blob.fields[4].offset, 4 * 33 + 10 * 1 + 4 + 4);
109 EXPECT_EQ (blob.fields[4].count, 1);
110 EXPECT_EQ (blob.fields[4].datatype, pcl::PCLPointField::FLOAT32);
111
112 int x_idx = pcl::getFieldIndex (blob, "x");
113 EXPECT_EQ (x_idx, 2);
114 float x, y, z;
115 memcpy (&x, &blob.data[0 * blob.point_step + blob.fields[x_idx + 0].offset], sizeof (float));
116 memcpy (&y, &blob.data[0 * blob.point_step + blob.fields[x_idx + 1].offset], sizeof (float));
117 memcpy (&z, &blob.data[0 * blob.point_step + blob.fields[x_idx + 2].offset], sizeof (float));

Callers

nothing calls this directly

Calls 15

loadPCDFileFunction · 0.85
concatenateFieldsFunction · 0.85
toPCLPointCloud2Function · 0.85
fromPCLPointCloud2Function · 0.85
savePCDFileFunction · 0.85
savePCDFileASCIIFunction · 0.85
savePCDFileBinaryFunction · 0.85
loadOBJFileFunction · 0.85
copyPointCloudFunction · 0.85
saveIFSFileFunction · 0.85
loadIFSFileFunction · 0.85

Tested by

no test coverage detected