MCPcopy Create free account
hub / github.com/creatale/node-dv / cvStartReadSeq

Function cvStartReadSeq

deps/opencv/modules/core/src/datastructs.cpp:925–977  ·  view source on GitHub ↗

Initialize sequence reader: */

Source from the content-addressed store, hash-verified

923
924/* Initialize sequence reader: */
925CV_IMPL void
926cvStartReadSeq( const CvSeq *seq, CvSeqReader * reader, int reverse )
927{
928 CvSeqBlock *first_block;
929 CvSeqBlock *last_block;
930
931 if( reader )
932 {
933 reader->seq = 0;
934 reader->block = 0;
935 reader->ptr = reader->block_max = reader->block_min = 0;
936 }
937
938 if( !seq || !reader )
939 CV_Error( CV_StsNullPtr, "" );
940
941 reader->header_size = sizeof( CvSeqReader );
942 reader->seq = (CvSeq*)seq;
943
944 first_block = seq->first;
945
946 if( first_block )
947 {
948 last_block = first_block->prev;
949 reader->ptr = first_block->data;
950 reader->prev_elem = CV_GET_LAST_ELEM( seq, last_block );
951 reader->delta_index = seq->first->start_index;
952
953 if( reverse )
954 {
955 schar *temp = reader->ptr;
956
957 reader->ptr = reader->prev_elem;
958 reader->prev_elem = temp;
959
960 reader->block = last_block;
961 }
962 else
963 {
964 reader->block = first_block;
965 }
966
967 reader->block_min = reader->block->data;
968 reader->block_max = reader->block_min + reader->block->count * seq->elem_size;
969 }
970 else
971 {
972 reader->delta_index = 0;
973 reader->block = 0;
974
975 reader->ptr = reader->prev_elem = reader->block_min = reader->block_max = 0;
976 }
977}
978
979
980/* Change the current reading block

Callers 15

cvDrawContoursFunction · 0.85
cvCvtSeqToArrayFunction · 0.85
cvSeqSliceFunction · 0.85
cvSeqRemoveSliceFunction · 0.85
cvSeqInsertSliceFunction · 0.85
cvSeqSortFunction · 0.85
cvSeqSearchFunction · 0.85
cvSeqInvertFunction · 0.85
cvSeqPartitionFunction · 0.85
icvSeqElemsClearFlagsFunction · 0.85
icvSeqFindNextElemFunction · 0.85
cvCloneGraphFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected