Commit 57be99ff authored by Graham Fyffe's avatar Graham Fyffe

Added getLeadingEdges function to subdivision2d

parent dd379ec9
......@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment