Home | History | Annotate | Download | only in src

Lines Matching refs:scanner

3450     CvGraphScanner* scanner = 0;
3462 CV_CALL( scanner = (CvGraphScanner*)cvAlloc( sizeof(*scanner) ));
3463 memset( scanner, 0, sizeof(*scanner));
3465 scanner->graph = graph;
3466 scanner->mask = mask;
3467 scanner->vtx = vtx;
3468 scanner->index = vtx == 0 ? 0 : -1;
3472 CV_CALL( scanner->stack = cvCreateSeq( 0, sizeof(CvSet),
3489 cvFree( &scanner );
3492 return scanner;
3497 cvReleaseGraphScanner( CvGraphScanner** scanner )
3503 if( !scanner )
3504 CV_ERROR( CV_StsNullPtr, "Null double pointer to graph scanner" );
3506 if( *scanner )
3508 if( (*scanner)->stack )
3509 CV_CALL( cvReleaseMemStorage( &((*scanner)->stack->storage)));
3510 cvFree( scanner );
3518 cvNextGraphItem( CvGraphScanner* scanner )
3531 if( !scanner || !(scanner->stack))
3532 CV_ERROR( CV_StsNullPtr, "Null graph scanner" );
3534 dst = scanner->dst;
3535 vtx = scanner->vtx;
3536 edge = scanner->edge;
3544 scanner->vtx = vtx = dst;
3548 if((scanner->mask & CV_GRAPH_VERTEX))
3550 scanner->vtx = vtx;
3551 scanner->edge = vtx->first;
3552 scanner->dst = 0;
3565 if( !CV_IS_GRAPH_ORIENTED( scanner->graph ) || dst != edge->vtx[0] )
3576 cvSeqPush( scanner->stack, &item );
3578 if( scanner->mask & CV_GRAPH_TREE_EDGE )
3581 scanner->vtx = vtx;
3582 scanner->dst = dst;
3583 scanner->edge = edge;
3590 if( scanner->mask & (CV_GRAPH_BACK_EDGE|
3599 if( scanner->mask & code )
3601 scanner->vtx = vtx;
3602 scanner->dst = dst;
3603 scanner->edge = edge;
3623 if( scanner->stack->total == 0 )
3625 if( scanner->index >= 0 )
3628 scanner->index = 0;
3631 cvSeqPop( scanner->stack, &item );
3637 if( scanner->mask & CV_GRAPH_BACKTRACKING )
3639 scanner->vtx = vtx;
3640 scanner->edge = edge;
3641 scanner->dst = edge->vtx[vtx == edge->vtx[0]];
3650 vtx = (CvGraphVtx*)icvSeqFindNextElem( (CvSeq*)(scanner->graph),
3652 0, &(scanner->index) );
3662 if( scanner->mask & CV_GRAPH_NEW_TREE )
3664 scanner->dst = dst;
3665 scanner->edge = 0;
3666 scanner->vtx = 0;