mirror of
https://github.com/creyD/intelliphoto.git
synced 2026-04-14 12:20:32 +02:00
Earfolding bug
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user