bbw.cpp 893 B

123456789101112131415161718192021222324252627
  1. #include <gtest/gtest.h>
  2. #include <test_common.h>
  3. #include <igl/boundary_conditions.h>
  4. #include <igl/readMESH.h>
  5. #include <igl/writeDMAT.h>
  6. #include <igl/readTGF.h>
  7. #include <igl/bbw.h>
  8. TEST(bbw, decimated_knight)
  9. {
  10. Eigen::MatrixXd V,C;
  11. Eigen::MatrixXi T,F,E;
  12. igl::readMESH(test_common::data_path("decimated-knight.mesh"),V,T,F);
  13. igl::readTGF(test_common::data_path("decimated-knight.tgf"),C,E);
  14. Eigen::MatrixXd W_groundtruth, Was, Wmo;
  15. igl::readDMAT(
  16. test_common::data_path("decimated-knight-matlab-active-set.dmat"),W_groundtruth);
  17. Eigen::VectorXi b;
  18. Eigen::MatrixXd bc;
  19. igl::boundary_conditions(V,T,C,Eigen::VectorXi(),E,Eigen::MatrixXi(),b,bc);
  20. igl::BBWData params;
  21. params.active_set_params.max_iter = 100;
  22. igl::bbw(V,T,b,bc,params,Was);
  23. // igl::writeDMAT("decimated-knight-as.dmat",Was);
  24. ASSERT_LT( (Was-W_groundtruth).array().abs().maxCoeff() ,1e-4);
  25. }