You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

29 lines
868 B

#include <test_common.h>
#include <igl/principal_curvature.h>
#include <igl/cylinder.h>
TEST_CASE("principal_curvature: cylinder", "[igl]")
{
using namespace igl;
const int axis_devisions = 20;
const int height_devisions = 20;
Eigen::MatrixXd V;
Eigen::MatrixXi F;
cylinder(axis_devisions,height_devisions,V,F);
Eigen::MatrixXd PD1,PD2;
Eigen::VectorXd PV1,PV2;
//PV1: maximal curvature value for each vertex.
//PV2: minimal curvature value for each vertex.
igl::principal_curvature(V,F,PD1,PD2,PV1,PV2);
REQUIRE (PD1.rows() == V.rows());
REQUIRE (PD2.rows() == V.rows());
REQUIRE (PD1.cols() == 3);
REQUIRE (PD2.cols() == 3);
REQUIRE (PV1.size() == V.rows());
REQUIRE (PV2.size() == V.rows());
for(int i = 0; i<PV1.size(); ++i)
{
//max curvature is greater than or equal to min curvature
REQUIRE (PV1[i]>=PV2[i]);
}
}