@@ -303,13 +303,25 @@ TEST (SampleConsensusModelCone, RANSAC)
303303 Eigen::VectorXf coeff;
304304 sac.getModelCoefficients (coeff);
305305 EXPECT_EQ (7 , coeff.size ());
306+ // apex
306307 EXPECT_NEAR (0.000000 , coeff[0 ], 1e-2 );
307308 EXPECT_NEAR (0.100000 , coeff[1 ], 1e-2 );
308- EXPECT_NEAR (0.510614 , coeff[6 ], 1e-2 );
309+ EXPECT_NEAR (1.000000 , coeff[2 ], 1e-2 );
310+ // axis, defined as a normal to a given plane
311+ EXPECT_NEAR (1 .f , std::abs (Eigen::Vector3f (0 .f , 1 .f , 0 .f ).dot (coeff.segment <3 > (3 ).normalized ())), 1e-2 );
312+ // cones opening angle
313+ EXPECT_NEAR (0.349066 , coeff[6 ], 1e-2 );
309314
310315 Eigen::VectorXf coeff_refined;
311316 model->optimizeModelCoefficients (inliers, coeff, coeff_refined);
312317 EXPECT_EQ (7 , coeff_refined.size ());
318+ // apex
319+ EXPECT_NEAR (0.000000 , coeff_refined[0 ], 1e-2 );
320+ EXPECT_NEAR (0.100000 , coeff_refined[1 ], 1e-2 );
321+ EXPECT_NEAR (1.000000 , coeff_refined[2 ], 1e-2 );
322+ // axis, defined as a normal to a given plane
323+ EXPECT_NEAR (1 .f , std::abs (Eigen::Vector3f (0 .f , 1 .f , 0 .f ).dot (coeff.segment <3 > (3 ).normalized ())), 1e-2 );
324+ // cones opening angle
313325 EXPECT_NEAR (0.349066 , coeff_refined[6 ], 1e-2 );
314326}
315327
@@ -387,9 +399,9 @@ TEST (SampleConsensusModelCylinder, RANSAC)
387399 Eigen::VectorXf coeff;
388400 sac.getModelCoefficients (coeff);
389401 EXPECT_EQ (7 , coeff.size ());
390- EXPECT_NEAR (-0.49 , coeff[0 ], 1e-3 );
391- EXPECT_NEAR ( 1.69 , coeff[1 ], 1e-3 );
392- EXPECT_NEAR ( 0.49 , coeff[6 ], 1e-3 );
402+ EXPECT_NEAR (-0.5 , coeff[0 ], 1e-3 );
403+ EXPECT_NEAR ( 1.7 , coeff[1 ], 1e-3 );
404+ EXPECT_NEAR ( 0.5 , coeff[6 ], 1e-3 );
393405
394406 Eigen::VectorXf coeff_refined;
395407 model->optimizeModelCoefficients (inliers, coeff, coeff_refined);
0 commit comments