Lines Matching refs:reader

646     CvSeqReader reader;
658 cvStartReadSeq( seq, &reader, 0 );
659 CV_CALL( cvSetSeqReaderPos( &reader, slice.start_index, 0 ));
663 int count = (int)(reader.block_max - reader.ptr);
667 memcpy( dst, reader.ptr, count );
669 reader.block = reader.block->next;
670 reader.ptr = reader.block->data;
671 reader.block_max = reader.ptr + reader.block->count*elem_size;
1088 /* Initialize sequence reader: */
1090 cvStartReadSeq( const CvSeq *seq, CvSeqReader * reader, int reverse )
1097 if( reader )
1099 reader->seq = 0;
1100 reader->block = 0;
1101 reader->ptr = reader->block_max = reader->block_min = 0;
1106 if( !seq || !reader )
1109 reader->header_size = sizeof( CvSeqReader );
1110 reader->seq = (CvSeq*)seq;
1117 reader->ptr = first_block->data;
1118 reader->prev_elem = CV_GET_LAST_ELEM( seq, last_block );
1119 reader->delta_index = seq->first->start_index;
1123 schar *temp = reader->ptr;
1125 reader->ptr = reader->prev_elem;
1126 reader->prev_elem = temp;
1128 reader->block = last_block;
1132 reader->block = first_block;
1135 reader->block_min = reader->block->data;
1136 reader->block_max = reader->block_min + reader->block->count * seq->elem_size;
1140 reader->delta_index = 0;
1141 reader->block = 0;
1143 reader->ptr = reader->prev_elem = reader->block_min = reader->block_max = 0;
1160 CvSeqReader* reader = (CvSeqReader*)_reader;
1162 if( !reader )
1167 reader->block = reader->block->next;
1168 reader->ptr = reader->block->data;
1172 reader->block = reader->block->prev;
1173 reader->ptr = CV_GET_LAST_ELEM( reader->seq, reader->block );
1175 reader->block_min = reader->block->data;
1176 reader->block_max = reader->block_min + reader->block->count * reader->seq->elem_size;
1182 /* Return the current reader position: */
1184 cvGetSeqReaderPos( CvSeqReader* reader )
1193 if( !reader || !reader->ptr )
1196 elem_size = reader->seq->elem_size;
1198 index = (int)((reader->ptr - reader->block_min) >> index);
1200 index = (int)((reader->ptr - reader->block_min) / elem_size);
1202 index += reader->block->start_index - reader->delta_index;
1210 /* Set reader position to given position,
1215 cvSetSeqReaderPos( CvSeqReader* reader, int index, int is_relative )
1224 if( !reader || !reader->seq )
1227 total = reader->seq->total;
1228 elem_size = reader->seq->elem_size;
1245 block = reader->seq->first;
1268 reader->ptr = block->data + index * elem_size;
1269 if( reader->block != block )
1271 reader->block = block;
1272 reader->block_min = block->data;
1273 reader->block_max = block->data + block->count * elem_size;
1278 schar* ptr = reader->ptr;
1280 block = reader->block;
1284 while( ptr + index >= reader->block_max )
1286 int delta = (int)(reader->block_max - ptr);
1288 reader->block = block = block->next;
1289 reader->block_min = ptr = block->data;
1290 reader->block_max = block->data + block->count*elem_size;
1292 reader->ptr = ptr + index;
1296 while( ptr + index < reader->block_min )
1298 int delta = (int)(ptr - reader->block_min);
1300 reader->block = block = block->prev;
1301 reader->block_min = block->data;
1302 reader->block_max = ptr = block->data + block->count*elem_size;
1304 reader->ptr = ptr + index;
1850 CvSeqReader reader;
1877 cvStartReadSeq( seq, &reader, 0 );
1878 cvSetSeqReaderPos( &reader, slice.start_index, 0 );
1879 count = (int)((reader.block_max - reader.ptr)/elem_size);
1901 block->data = reader.ptr;
1906 cvSeqPushMulti( subseq, reader.ptr, bl, 0 );
1908 reader.block = reader.block->next;
1909 reader.ptr = reader.block->data;
1910 count = reader.block->count;
2137 #define CV_SAVE_READER_POS( reader, pos ) \
2139 (pos).block = (reader).block; \
2140 (pos).ptr = (reader).ptr; \
2141 (pos).block_min = (reader).block_min; \
2142 (pos).block_max = (reader).block_max; \
2145 #define CV_RESTORE_READER_POS( reader, pos )\
2147 (reader).block = (pos).block; \
2148 (reader).ptr = (pos).ptr; \
2149 (reader).block_min = (pos).block_min; \
2150 (reader).block_max = (pos).block_max; \
2475 CvSeqReader reader;
2476 cvStartReadSeq( seq, &reader, 0 );
2482 if( cmp_func( elem, reader.ptr, userdata ) == 0 )
2484 CV_NEXT_SEQ_ELEM( elem_size, reader );
2493 if( *(const int*)(reader.ptr + j) != *(const int*)(elem + j) )
2498 CV_NEXT_SEQ_ELEM( elem_size, reader );
2507 if( reader.ptr[j] != elem[j] )
2512 CV_NEXT_SEQ_ELEM( elem_size, reader );
2518 result = reader.ptr;
2611 CvSeqReader reader, reader0;
2634 cvStartReadSeq( seq, &reader );
2642 if( !is_set || CV_IS_SET_ELEM( reader.ptr ))
2643 node.element = reader.ptr;
2645 CV_NEXT_SEQ_ELEM( seq->elem_size, reader );
2652 // we do not need to initialize reader every time:
2653 cvStartReadSeq( nodes, &reader );
2672 CvPTreeNode* node2 = (CvPTreeNode*)reader.ptr;
2714 CV_NEXT_SEQ_ELEM( sizeof(*node), reader );
2719 // Reuse reader one more time
2725 CvPTreeNode* node = (CvPTreeNode*)reader.ptr;
2737 CV_NEXT_SEQ_ELEM( sizeof(*node), reader );
3362 CvSeqReader reader;
3374 CV_CALL( cvStartReadSeq( seq, &reader ));
3378 int* flag_ptr = (int*)(reader.ptr + offset);
3381 CV_NEXT_SEQ_ELEM( elem_size, reader );
3398 CvSeqReader reader;
3420 CV_CALL( cvStartReadSeq( seq, &reader ));
3423 CV_CALL( cvSetSeqReaderPos( &reader, index ));
3427 int* flag_ptr = (int*)(reader.ptr + offset);
3431 CV_NEXT_SEQ_ELEM( elem_size, reader );
3436 elem_ptr = reader.ptr;
3691 CvSeqReader reader;
3713 cvStartReadSeq( (CvSeq*)graph, &reader );
3716 if( CV_IS_SET_ELEM( reader.ptr ))
3718 CvGraphVtx* vtx = (CvGraphVtx*)reader.ptr;
3725 CV_NEXT_SEQ_ELEM( vtx_size, reader );
3729 cvStartReadSeq( (CvSeq*)graph->edges, &reader );
3732 if( CV_IS_SET_ELEM( reader.ptr ))
3734 CvGraphEdge* edge = (CvGraphEdge*)reader.ptr;
3741 CV_NEXT_SEQ_ELEM( edge_size, reader );
3745 cvStartReadSeq( (CvSeq*)graph, &reader );
3748 if( CV_IS_SET_ELEM( reader.ptr ))
3750 CvGraphVtx* vtx = (CvGraphVtx*)reader.ptr;
3753 CV_NEXT_SEQ_ELEM( vtx_size, reader );