mirror of
https://github.com/opencv/opencv.git
synced 2025-06-11 03:33:28 +08:00
Merge pull request #7423 from grahamfyffe:leading_edges
This commit is contained in:
commit
3dc022ae84
@ -1012,6 +1012,14 @@ public:
|
||||
*/
|
||||
CV_WRAP void getEdgeList(CV_OUT std::vector<Vec4f>& edgeList) const;
|
||||
|
||||
/** @brief Returns a list of the leading edge ID connected to each triangle.
|
||||
|
||||
@param leadingEdgeList – Output vector.
|
||||
|
||||
The function gives one edge ID for each triangle.
|
||||
*/
|
||||
CV_WRAP void getLeadingEdgeList(CV_OUT std::vector<int>& leadingEdgeList) const;
|
||||
|
||||
/** @brief Returns a list of all triangles.
|
||||
|
||||
@param triangleList – Output vector.
|
||||
|
@ -733,6 +733,26 @@ void Subdiv2D::getEdgeList(std::vector<Vec4f>& edgeList) const
|
||||
}
|
||||
}
|
||||
|
||||
void Subdiv2D::getLeadingEdgeList(std::vector<int>& leadingEdgeList) const
|
||||
{
|
||||
leadingEdgeList.clear();
|
||||
int i, total = (int)(qedges.size()*4);
|
||||
std::vector<bool> edgemask(total, false);
|
||||
|
||||
for( i = 4; i < total; i += 2 )
|
||||
{
|
||||
if( edgemask[i] )
|
||||
continue;
|
||||
int edge = i;
|
||||
edgemask[edge] = true;
|
||||
edge = getEdge(edge, NEXT_AROUND_LEFT);
|
||||
edgemask[edge] = true;
|
||||
edge = getEdge(edge, NEXT_AROUND_LEFT);
|
||||
edgemask[edge] = true;
|
||||
leadingEdgeList.push_back(i);
|
||||
}
|
||||
}
|
||||
|
||||
void Subdiv2D::getTriangleList(std::vector<Vec6f>& triangleList) const
|
||||
{
|
||||
triangleList.clear();
|
||||
|
Loading…
Reference in New Issue
Block a user