/// <summary> /// /// </summary> /// <param name="img"></param> /// <param name="edge"></param> private void DrawSubdivFacet(IplImage img, CvSubdiv2DEdge edge) { CvSubdiv2DEdge t = edge; int count = 0; // count number of edges in facet do { count++; t = t.GetEdge(CvNextEdgeType.NextAroundLeft); } while (t != edge); CvPoint[] buf = new CvPoint[count]; // gather points t = edge; int i; for (i = 0; i < count; i++) { CvSubdiv2DPoint pt = t.Org(); if (pt == null) { break; } buf[i] = pt.Pt; t = t.GetEdge(CvNextEdgeType.NextAroundLeft); } if (i == count) { Random rand = new Random(); CvSubdiv2DPoint pt = edge.RotateEdge(RotateEdgeFlag.Rotate).Dst(); img.FillConvexPoly(buf, CvColor.Random(), LineType.AntiAlias, 0); img.PolyLine(new CvPoint[][] { buf }, true, CvColor.Black, 1, LineType.AntiAlias, 0); DrawSubdivPoint(img, pt.Pt, CvColor.Black); } }