Home | History | Annotate | Download | only in src

Lines Matching refs:subdiv

47     CvSubdiv2D *subdiv = 0;
56 if( header_size < (int)sizeof( *subdiv ) ||
61 subdiv = (CvSubdiv2D *) cvCreateGraph( subdiv_type, header_size,
67 return subdiv;
76 cvSubdiv2DMakeEdge( CvSubdiv2D * subdiv )
85 if( !subdiv )
88 edge = (CvQuadEdge2D*)cvSetNew( (CvSet*)subdiv->edges );
99 subdiv->quad_edges++;
109 cvSubdiv2DAddPoint( CvSubdiv2D * subdiv, CvPoint2D32f pt, int is_virtual )
113 subdiv_point = (CvSubdiv2DPoint*)cvSetNew( (CvSet*)subdiv );
116 memset( subdiv_point, 0, subdiv->elem_size );
164 cvSubdiv2DDeleteEdge( CvSubdiv2D * subdiv, CvSubdiv2DEdge edge )
172 if( !subdiv || !quadedge )
182 cvSetRemoveByPtr( (CvSet*)(subdiv->edges), quadedge );
183 subdiv->quad_edges--;
191 cvSubdiv2DConnectEdges( CvSubdiv2D * subdiv, CvSubdiv2DEdge edgeA, CvSubdiv2DEdge edgeB )
201 if( !subdiv )
204 new_edge = cvSubdiv2DMakeEdge( subdiv );
251 cvSubdiv2DLocate( CvSubdiv2D * subdiv, CvPoint2D32f pt,
265 if( !subdiv )
268 if( !CV_IS_SUBDIV2D(subdiv) )
271 max_edges = subdiv->quad_edges * 4;
272 edge = subdiv->recent_edge;
280 if( pt.x < subdiv->topleft.x || pt.y < subdiv->topleft.y ||
281 pt.x >= subdiv->bottomright.x || pt.y >= subdiv->bottomright.y )
345 subdiv->recent_edge = edge;
408 cvSubdivDelaunay2DInsert( CvSubdiv2D * subdiv, CvPoint2D32f pt )
421 if( !subdiv )
424 if( !CV_IS_SUBDIV2D(subdiv) )
428 location = cvSubdiv2DLocate( subdiv, pt, &curr_edge, &curr_point );
444 subdiv->recent_edge = curr_edge = cvSubdiv2DGetEdge( curr_edge, CV_PREV_AROUND_ORG );
445 cvSubdiv2DDeleteEdge( subdiv, deleted_edge );
451 subdiv->is_geometry_valid = 0;
453 curr_point = cvSubdiv2DAddPoint( subdiv, pt, 0 );
456 base_edge = cvSubdiv2DMakeEdge( subdiv );
463 base_edge = cvSubdiv2DConnectEdges( subdiv, curr_edge,
471 max_edges = subdiv->quad_edges * 4;
510 //icvSubdiv2DCheck( subdiv );
517 cvInitSubdivDelaunay2D( CvSubdiv2D * subdiv, CvRect rect )
530 if( !subdiv )
533 cvClearSet( (CvSet *) (subdiv->edges) );
534 cvClearSet( (CvSet *) subdiv );
536 subdiv->quad_edges = 0;
537 subdiv->recent_edge = 0;
538 subdiv->is_geometry_valid = 0;
540 subdiv->topleft = cvPoint2D32f( rx, ry );
541 subdiv->bottomright = cvPoint2D32f( rx + rect.width, ry + rect.height );
547 pA = cvSubdiv2DAddPoint( subdiv, ppA, 0 );
548 pB = cvSubdiv2DAddPoint( subdiv, ppB, 0 );
549 pC = cvSubdiv2DAddPoint( subdiv, ppC, 0 );
551 edge_AB = cvSubdiv2DMakeEdge( subdiv );
552 edge_BC = cvSubdiv2DMakeEdge( subdiv );
553 edge_CA = cvSubdiv2DMakeEdge( subdiv );
563 subdiv->recent_edge = edge_AB;
571 subdiv )
581 if( !subdiv )
585 total = subdiv->edges->total;
586 elem_size = subdiv->edges->elem_size;
588 cvStartReadSeq( (CvSeq *) (subdiv->edges), &reader, 0 );
599 total = subdiv->total;
600 elem_size = subdiv->elem_size;
602 cvStartReadSeq( (CvSeq *) subdiv, &reader, 0 );
611 cvSetRemoveByPtr( (CvSet*)subdiv, pt );
616 subdiv->is_geometry_valid = 0;
624 cvCalcSubdivVoronoi2D( CvSubdiv2D * subdiv )
633 if( !subdiv )
637 if( subdiv->is_geometry_valid )
640 total = subdiv->edges->total;
641 elem_size = subdiv->edges->elem_size;
643 cvClearSubdivVoronoi2D( subdiv );
645 cvStartReadSeq( (CvSeq *) (subdiv->edges), &reader, 0 );
678 voronoi_point = cvSubdiv2DAddPoint( subdiv, virt_point, 1 );
699 voronoi_point = cvSubdiv2DAddPoint( subdiv, virt_point, 1 );
711 subdiv->is_geometry_valid = 1;
728 cvFindNearestPoint2D( CvSubdiv2D* subdiv, CvPoint2D32f pt )
741 if( !subdiv )
744 if( !CV_IS_SUBDIV2D( subdiv ))
747 if( !subdiv->is_geometry_valid )
748 cvCalcSubdivVoronoi2D( subdiv );
750 loc = cvSubdiv2DLocate( subdiv, pt, &edge, &point );
769 for( i = 0; i < subdiv->total; i++ )
820 OPENCVAPI CvSubdiv2DEdge cvSubdiv2DMakeEdge( CvSubdiv2D* subdiv );
824 OPENCVAPI CvSubdiv2DPoint* cvSubdiv2DAddPoint( CvSubdiv2D* subdiv,
838 OPENCVAPI void cvSubdiv2DDeleteEdge( CvSubdiv2D* subdiv, CvSubdiv2DEdge edge );
842 OPENCVAPI CvSubdiv2DEdge cvSubdiv2DConnectEdges( CvSubdiv2D* subdiv,