Earfolding bug

This commit is contained in:
Sonaion
2019-12-19 17:39:10 +01:00
parent bf47934bbe
commit 3252ec4404

View File

@@ -25,17 +25,18 @@ std::vector<Triangle> IntelliHelper::calculateTriangles(std::vector<QPoint> poly
// gets the first element of vec for which element.isTip == true holds // gets the first element of vec for which element.isTip == true holds
auto getTip= [](const std::vector<TriangleHelper>& vec){ auto getTip= [](const std::vector<TriangleHelper>& vec){
for(auto element:vec){ size_t min = 0;
if(element.isTip){ for(size_t i=0; i<vec.size(); i++){
return element; if(vec[i].interiorAngle<vec[min].interiorAngle){
min = i;
} }
} }
return vec[0]; return vec[min];
}; };
// get the vertex Index bevor index in relation to the container length // get the vertex Index bevor index in relation to the container length
auto getPrev = [](int index, int length){ auto getPrev = [](int index, int length){
return (index-1)>0?(index-1):(length-1); return (index-1)>=0?(index-1):(length-1);
}; };
// get the vertex Index after index in relation to the container lenght // get the vertex Index after index in relation to the container lenght
@@ -45,7 +46,7 @@ std::vector<Triangle> IntelliHelper::calculateTriangles(std::vector<QPoint> poly
// return if the vertex is a tip // return if the vertex is a tip
auto isTip = [](float angle){ auto isTip = [](float angle){
return angle<180.f; return static_cast<double>(angle)<(M_PI/2.);
}; };
std::vector<TriangleHelper> Vertices; std::vector<TriangleHelper> Vertices;