CV_IMPL CvSubdiv2D * cvCreateSubdiv2D( int subdiv_type, int header_size, int vtx_size, int quadedge_size, CvMemStorage * storage ) { CvSubdiv2D *subdiv = 0; CV_FUNCNAME( "cvCleateSubdiv2D" ); __BEGIN__; if( !storage ) CV_ERROR( CV_StsNullPtr, "" ); if( header_size < (int)sizeof( *subdiv ) || quadedge_size < (int)sizeof( CvQuadEdge2D ) || vtx_size < (int)sizeof( CvSubdiv2DPoint )) CV_ERROR_FROM_STATUS( CV_BADSIZE_ERR ); subdiv = (CvSubdiv2D *) cvCreateGraph( subdiv_type, header_size, vtx_size, quadedge_size, storage ); __END__; return subdiv; }
CV_IMPL CvSubdiv2D * cvCreateSubdiv2D( int subdiv_type, int header_size, int vtx_size, int quadedge_size, CvMemStorage * storage ) { if( !storage ) CV_Error( CV_StsNullPtr, "" ); if( header_size < (int)sizeof( CvSubdiv2D ) || quadedge_size < (int)sizeof( CvQuadEdge2D ) || vtx_size < (int)sizeof( CvSubdiv2DPoint )) CV_Error( CV_StsBadSize, "" ); return (CvSubdiv2D *)cvCreateGraph( subdiv_type, header_size, vtx_size, quadedge_size, storage ); }
CV_IMPL CvGraph* cvLinearContorModelFromVoronoiDiagram(CvVoronoiDiagram2D* VoronoiDiagram, float maxWidth) { CvMemStorage* LCMstorage; CvSet* SiteSet; CvLCM LCM = {NULL, VoronoiDiagram,NULL,NULL,maxWidth}; CV_FUNCNAME( "cvLinearContorModelFromVoronoiDiagram" ); __BEGIN__; if( !VoronoiDiagram ) CV_ERROR( CV_StsBadArg,"Voronoi Diagram is not defined" ); if( maxWidth < 0 ) CV_ERROR( CV_StsBadArg,"Treshold parameter must be non negative" ); for(SiteSet = VoronoiDiagram->sites; SiteSet != NULL; SiteSet = (CvSet*)SiteSet->h_next) { if(SiteSet->v_next) CV_ERROR( CV_StsBadArg,"Can't operate with multiconnected domains" ); if(SiteSet->total > 70000) CV_ERROR( CV_StsBadArg,"Can't operate with large domains" ); } LCMstorage = cvCreateMemStorage(0); LCM.EdgeStorage = cvCreateChildMemStorage(LCMstorage); LCM.ContourStorage = cvCreateChildMemStorage(LCMstorage); LCM.Graph = cvCreateGraph(CV_SEQ_KIND_GRAPH|CV_GRAPH_FLAG_ORIENTED, sizeof(CvGraph), sizeof(CvLCMNode), sizeof(CvLCMEdge), LCMstorage); if(!_cvConstructLCM(&LCM)) cvReleaseLinearContorModelStorage(&LCM.Graph); __END__; return LCM.Graph; }//end of cvLinearContorModelFromVoronoiDiagram