*/
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.
}
}
+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();