z.var('deltas').exclude() # wait until requested sb.finalize_class(z) # CvContourTree z = sb.mb.class_('CvContourTree') sb.init_class(z) MT.expose_CvSeq_members(z, FT) sb.finalize_class(z) #CvConvexityDefect z = sb.mb.class_('CvConvexityDefect') sb.init_class(z) for t in ( 'start', 'end', 'depth_point', ): FT.expose_member_as_pointee(z, t) sb.finalize_class(z) def expose_QuadEdge2D_members(z): FT.expose_member_as_array_of_pointees(z, 'pt', 4) FT.set_array_item_type_as_size_t(z, 'next') z = sb.mb.class_('CvQuadEdge2D') sb.init_class(z) expose_QuadEdge2D_members(z) sb.finalize_class(z) # CvSubdiv2DPoint z = sb.mb.class_('CvSubdiv2DPoint') sb.init_class(z) sb.mb.decl('CvSubdiv2DEdge').include()
sb.init_class(z) for t in ('train', 'predict'): for t2 in z.mem_funs(t): t2._transformer_kwds['alias'] = t z.mem_fun('get_covs').exclude() # TODO: expose this function sb.finalize_class(z) # CvPair16u32s # do not expose this old struct # z = sb.mb.class_('CvPair16u32s') # z.include() # z.decls().exclude() # CvDTreeSplit z = sb.mb.class_('CvDTreeSplit') sb.init_class(z) FT.expose_member_as_pointee(z, 'next') FT.expose_member_as_ndarray1d(z, 'subset', 2) for t in ('c', 'split_point'): # workaround for unnamed union z.var(t).exclude() z.add_declaration_code(''' static float CvDTreeSplit_get_c(CvDTreeSplit const &inst) { return inst.ord.c; } static void CvDTreeSplit_set_c(CvDTreeSplit &inst, float _c) { inst.ord.c = _c; } static int CvDTreeSplit_get_split_point(CvDTreeSplit const &inst) { return inst.ord.split_point; } static void CvDTreeSplit_set_split_point(CvDTreeSplit &inst, int _split_point) { inst.ord.split_point = _split_point; } ''') z.add_registration_code('add_property( "c", &CvDTreeSplit_get_c, &CvDTreeSplit_set_c )') z.add_registration_code('add_property( "split_point", &CvDTreeSplit_get_split_point, &CvDTreeSplit_set_split_point )') sb.finalize_class(z)
CV_SET_ELEM_FREE_FLAG = (1 << (_CT.sizeof(_CT.c_int)*8-1)) # Checks whether the element pointed by ptr belongs to a set or not def CV_IS_SET_ELEM(ptr): return cast(ptr, CvSetElem_p)[0].flags >= 0 CV_TYPE_NAME_GRAPH = "opencv-graph" ''') # CvMemBlock z = sb.mb.class_('CvMemBlock') sb.init_class(z) for t in ('prev', 'next'): FT.expose_member_as_pointee(z, t) sb.finalize_class(z) # CvMemStorage -- now managed by cv::MemStorage # this class is enabled only to let cv::MemStorage function properly z = sb.mb.class_('CvMemStorage') sb.init_class(z) for t in ('bottom', 'top'): FT.expose_member_as_pointee(z, t) sb.finalize_class(z) # cv::MemStorage sb.register_ti('cv::Ptr', ['CvMemStorage'], 'MemStorage') sb.expose_class_Ptr('CvMemStorage') sb.cc.write(''' def _MemStorage__repr__(self):
# cvChangeSeqBlock # these functions are now obsolete, use Seq<T> instead # cvCreateSet FT.expose_func(sb.mb.free_fun('cvCreateSet'), ward_indices=(4, )) # cvSetAdd, cvSetNew, cvSetRemoveByPtr # TODO: fix # cvGetSetElem FT.expose_func(sb.mb.free_fun('cvGetSetElem'), ward_indices=(1, )) # CvGraphScanner z = sb.mb.class_('CvGraphScanner') z.include() for t in ('vtx', 'dst', 'edge', 'graph', 'stack'): FT.expose_member_as_pointee(z, t) sb.insert_del_interface('CvGraphScanner', '_PE._cvReleaseGraphScanner') # this whole set of functions cvGraph*, # TODO: fix these funcs # CvTreeNodeIterator z = sb.mb.class_('CvTreeNodeIterator') z.include() z.var('node').expose_address = True # wait until requested # this whole set of functions cvTree* # Drawing Functions sb.cc.write(''' #----------------------------------------------------------------------------- # Drawing Functions
CV_BLOB_MINW = 5 CV_BLOB_MINH = 5 ''') #============================================================================= # Structures #============================================================================= # CvDefParam # TODO: fix the rest of the member declarations z = sb.mb.class_('CvDefParam') z.include() FT.expose_member_as_pointee(z, 'next') for t in ('pName', 'pComment', 'Str'): FT.expose_member_as_str(z, t) for t in ('pDouble', 'pFloat', 'pInt', 'pStr'): z.var(t).exclude() # CvVSModule z = sb.mb.class_('CvVSModule') sb.init_class(z) z.mem_fun('GetModuleName').exclude() z.add_declaration_code(''' inline bp::str CvVSModule_GetModuleName(CvVSModule &inst) { return bp::str(inst.GetModuleName()); } ''') z.add_registration_code('def("GetModuleName", &::CvVSModule_GetModuleName)') sb.finalize_class(z)
# CvContourTree z = sb.mb.class_('CvContourTree') sb.init_class(z) MT.expose_CvSeq_members(z, FT) sb.finalize_class(z) #CvConvexityDefect z = sb.mb.class_('CvConvexityDefect') sb.init_class(z) for t in ( 'start', 'end', 'depth_point', ): FT.expose_member_as_pointee(z, t) sb.finalize_class(z) def expose_QuadEdge2D_members(z): FT.expose_member_as_array_of_pointees(z, 'pt', 4) FT.set_array_item_type_as_size_t(z, 'next') z = sb.mb.class_('CvQuadEdge2D') sb.init_class(z) expose_QuadEdge2D_members(z) sb.finalize_class(z) # CvSubdiv2DPoint z = sb.mb.class_('CvSubdiv2DPoint')