|
@@ -29,7 +29,6 @@ TEST(intrinsic_delaunay_triangulation, two_triangles)
|
|
Eigen::MatrixXd lext;
|
|
Eigen::MatrixXd lext;
|
|
igl::edge_lengths(V,F,lext);
|
|
igl::edge_lengths(V,F,lext);
|
|
test_common::assert_near(l,lext,1e-10);
|
|
test_common::assert_near(l,lext,1e-10);
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
TEST(intrinsic_delaunay_triangulation, skewed_grid)
|
|
TEST(intrinsic_delaunay_triangulation, skewed_grid)
|
|
@@ -58,7 +57,7 @@ TEST(intrinsic_delaunay_triangulation, peaks)
|
|
{
|
|
{
|
|
Eigen::MatrixXd V2;
|
|
Eigen::MatrixXd V2;
|
|
Eigen::MatrixXi F_in;
|
|
Eigen::MatrixXi F_in;
|
|
- igl::triangulated_grid(6,6,V2,F_in);
|
|
|
|
|
|
+ igl::triangulated_grid(20,20,V2,F_in);
|
|
Eigen::MatrixXd V(V2.rows(),3);
|
|
Eigen::MatrixXd V(V2.rows(),3);
|
|
for(int v=0;v<V.rows();v++)
|
|
for(int v=0;v<V.rows();v++)
|
|
{
|
|
{
|
|
@@ -79,61 +78,46 @@ TEST(intrinsic_delaunay_triangulation, peaks)
|
|
Eigen::MatrixXi E,uE;
|
|
Eigen::MatrixXi E,uE;
|
|
Eigen::VectorXi EMAP;
|
|
Eigen::VectorXi EMAP;
|
|
std::vector<std::vector<int> > uE2E;
|
|
std::vector<std::vector<int> > uE2E;
|
|
- igl::intrinsic_delaunay_triangulation(
|
|
|
|
- l_in, F_in, l, F, E, uE, EMAP, uE2E);
|
|
|
|
- //Eigen::MatrixXd lext;
|
|
|
|
- //igl::edge_lengths(V,F,lext);
|
|
|
|
- //std::cout<<igl::matlab_format(V,"V")<<std::endl;
|
|
|
|
- //std::cout<<igl::matlab_format(F_in.array()+1,"F_in")<<std::endl;
|
|
|
|
- //std::cout<<igl::matlab_format(F.array()+1,"F")<<std::endl;
|
|
|
|
- //std::cout<<igl::matlab_format(l,"l")<<std::endl;
|
|
|
|
|
|
+ igl::intrinsic_delaunay_triangulation(l_in,F_in,l,F,E,uE,EMAP,uE2E);
|
|
Eigen::Matrix<bool,Eigen::Dynamic,3> D;
|
|
Eigen::Matrix<bool,Eigen::Dynamic,3> D;
|
|
const Eigen::Matrix<bool,Eigen::Dynamic,3> D_gt =
|
|
const Eigen::Matrix<bool,Eigen::Dynamic,3> D_gt =
|
|
Eigen::Matrix<bool,Eigen::Dynamic,3>::Constant(F.rows(),F.cols(),true);
|
|
Eigen::Matrix<bool,Eigen::Dynamic,3>::Constant(F.rows(),F.cols(),true);
|
|
igl::is_intrinsic_delaunay(l,F,uE2E,D);
|
|
igl::is_intrinsic_delaunay(l,F,uE2E,D);
|
|
test_common::assert_eq(D,D_gt);
|
|
test_common::assert_eq(D,D_gt);
|
|
|
|
+}
|
|
|
|
|
|
- //{
|
|
|
|
- // Eigen::MatrixXi Fu;
|
|
|
|
- // Eigen::VectorXi IA,IC;
|
|
|
|
- // igl::unique_simplices(F,Fu,IA,IC);
|
|
|
|
- // ASSERT_EQ(F.rows(),Fu.rows());
|
|
|
|
- //}
|
|
|
|
- // Input better have started manifold, otherwise this test doesn't make sense
|
|
|
|
- //assert(igl::is_edge_manifold(F_in));
|
|
|
|
- //ASSERT_TRUE(igl::is_edge_manifold(F));
|
|
|
|
|
|
+TEST(intrinsic_delaunay_triangulation,tet)
|
|
|
|
+{
|
|
|
|
+ const Eigen::MatrixXd V = (Eigen::MatrixXd(4,3)<<
|
|
|
|
+ 10, 4,7,
|
|
|
|
+ 5, 9,0,
|
|
|
|
+ 8, 8,8,
|
|
|
|
+ 1,10,9).finished();
|
|
|
|
+ const Eigen::MatrixXi F_in = (Eigen::MatrixXi(4,3)<<
|
|
|
|
+ 0,1,2,
|
|
|
|
+ 0,2,3,
|
|
|
|
+ 0,3,1,
|
|
|
|
+ 1,3,2).finished();
|
|
|
|
+ const Eigen::Matrix<bool,Eigen::Dynamic,3> D_before =
|
|
|
|
+ (Eigen::Matrix<bool,Eigen::Dynamic,3>(4,3)<<
|
|
|
|
+ 1,1,1,
|
|
|
|
+ 1,0,1,
|
|
|
|
+ 1,1,0,
|
|
|
|
+ 1,1,1).finished();
|
|
|
|
+ Eigen::Matrix<bool,Eigen::Dynamic,3> D;
|
|
|
|
+ Eigen::MatrixXd l_in;
|
|
|
|
+ igl::edge_lengths(V,F_in,l_in);
|
|
|
|
+ igl::is_intrinsic_delaunay(l_in,F_in,D);
|
|
|
|
+ test_common::assert_eq(D,D_before);
|
|
|
|
+ Eigen::MatrixXd l;
|
|
|
|
+ Eigen::MatrixXi F;
|
|
|
|
+ Eigen::MatrixXi E,uE;
|
|
|
|
+ Eigen::VectorXi EMAP;
|
|
|
|
+ std::vector<std::vector<int> > uE2E;
|
|
|
|
+ igl::intrinsic_delaunay_triangulation(l_in,F_in,l,F,E,uE,EMAP,uE2E);
|
|
|
|
|
|
|
|
+ const Eigen::Matrix<bool,Eigen::Dynamic,3> D_after =
|
|
|
|
+ Eigen::Matrix<bool,Eigen::Dynamic,3>::Constant(F.rows(),F.cols(),true);
|
|
|
|
+ igl::is_intrinsic_delaunay(l,F,uE2E,D);
|
|
|
|
+ test_common::assert_eq(D,D_after);
|
|
}
|
|
}
|
|
-
|
|
|
|
-//// Not sure if this is a good test... Even though the edge will exist twice
|
|
|
|
-//the intrinsic triangles on either edge are different...
|
|
|
|
-//TEST(intrinsic_delaunay_triangulation,unflippable_tet)
|
|
|
|
-//{
|
|
|
|
-// const Eigen::MatrixXd V = (Eigen::MatrixXd(4,3)<<
|
|
|
|
-// 10, 4,7,
|
|
|
|
-// 5, 9,0,
|
|
|
|
-// 8, 8,8,
|
|
|
|
-// 1,10,9).finished();
|
|
|
|
-// const Eigen::MatrixXi F_in = (Eigen::MatrixXi(4,3)<<
|
|
|
|
-// 0,1,2,
|
|
|
|
-// 0,2,3,
|
|
|
|
-// 0,3,1,
|
|
|
|
-// 1,3,2).finished();
|
|
|
|
-// const Eigen::Matrix<bool,Eigen::Dynamic,3> Dgt =
|
|
|
|
-// (Eigen::Matrix<bool,Eigen::Dynamic,3>(4,3)<<
|
|
|
|
-// 1,1,1,
|
|
|
|
-// 1,0,1,
|
|
|
|
-// 1,1,0,
|
|
|
|
-// 1,1,1).finished();
|
|
|
|
-// Eigen::Matrix<bool,Eigen::Dynamic,3> D;
|
|
|
|
-// Eigen::MatrixXd l_in;
|
|
|
|
-// igl::edge_lengths(V,F_in,l_in);
|
|
|
|
-// igl::is_intrinsic_delaunay(l_in,F_in,D);
|
|
|
|
-// test_common::assert_eq(D,Dgt);
|
|
|
|
-// Eigen::MatrixXd l;
|
|
|
|
-// Eigen::MatrixXi F;
|
|
|
|
-// igl::intrinsic_delaunay_triangulation( l_in, F_in, l, F);
|
|
|
|
-// // Nothing should have changed: no edges are flippable.
|
|
|
|
-// test_common::assert_eq(F,F_in);
|
|
|
|
-// test_common::assert_eq(l,l_in);
|
|
|
|
-//}
|
|
|