def fix_MolViewEditorBase(c, molview, props): c.decls( "removeProperty" ).call_policies = call_policies.return_self() c.decls( "removeMetadata" ).call_policies = call_policies.return_self() #now add the code to set properties and metadata for header in props.dependencies(): c.add_declaration_code( "#include %s" % header ) #add accessor functions for all of the atom properties for property in props.properties(): p = property[0] p_rep = p.replace("::","_").replace("<","_").replace(">","_") prop = property[1].replace("::","_").replace("<","_").replace(">","_") c.add_registration_code( """def( \"_set_property_%s\", &%s::setProperty< %s >, %s )""" \ % (p_rep, molview, p, return_self ) ) c.add_registration_code( "def( \"_set_metadata_%s\", &set_Metadata_%s_function1, %s)" \ % (p_rep, prop, return_self) ) c.add_registration_code( "def( \"_set_metadata_%s\", &set_Metadata_%s_function2, %s)" \ % (p_rep, prop, return_self) ) c.add_declaration_code( """%s& set_Metadata_%s_function1( %s &molview, const QString &metakey, const %s &p) { return molview.setMetadata< %s >(metakey, p); }""" \ % (molview, prop, molview, p, p) ) c.add_declaration_code( """%s& set_Metadata_%s_function2( %s &molview, const QString &key, const QString &metakey, const %s &p) { return molview.setMetadata< %s >(key, metakey, p); }""" \ % (molview, prop, molview, p, p) )
def fix_CGStructureEditor(c): fix_CGEditor(c) c.decls("reindex").call_policies = call_policies.return_self() c.decls("remove").call_policies = call_policies.return_self() c.decls("transfer").call_policies = call_policies.return_self() c.decls("transferAll").call_policies = call_policies.return_self()
def fix_MolEditorBase(c): c.decls("removeProperty").call_policies = call_policies.return_self() c.decls("removeMetadata").call_policies = call_policies.return_self() c.add_registration_code( """def( \"setProperty\", &SireMol::MolEditorBase::setProperty<SireBase::Property>, %s )""" % (return_self) ) c.add_registration_code('def( "setMetadata", &set_Metadata_function1, %s)' % (return_self)) c.add_registration_code('def( "setMetadata", &set_Metadata_function2, %s)' % (return_self)) c.add_declaration_code( """SireMol::MolEditorBase& set_Metadata_function1( SireMol::MolEditorBase &molview, const QString &metakey, const SireBase::Property &p) { return molview.setMetadata<SireBase::Property>(metakey, p); }""" ) c.add_declaration_code( """SireMol::MolEditorBase& set_Metadata_function2( SireMol::MolEditorBase &molview, const QString &key, const QString &metakey, const SireBase::Property &p) { return molview.setMetadata<SireBase::Property>(key, metakey, p); }""" )
def fix_MolEditorBase(c): c.decls("removeProperty").call_policies = call_policies.return_self() c.decls("removeMetadata").call_policies = call_policies.return_self() c.add_registration_code( """def( \"setProperty\", &SireMol::MolEditorBase::setProperty<SireBase::Property>, %s )""" \ % (return_self ) ) c.add_registration_code( "def( \"setMetadata\", &set_Metadata_function1, %s)" \ % (return_self) ) c.add_registration_code( "def( \"setMetadata\", &set_Metadata_function2, %s)" \ % (return_self) ) c.add_declaration_code("""SireMol::MolEditorBase& set_Metadata_function1( SireMol::MolEditorBase &molview, const QString &metakey, const SireBase::Property &p) { return molview.setMetadata<SireBase::Property>(metakey, p); }""" ) c.add_declaration_code("""SireMol::MolEditorBase& set_Metadata_function2( SireMol::MolEditorBase &molview, const QString &key, const QString &metakey, const SireBase::Property &p) { return molview.setMetadata<SireBase::Property>(key, metakey, p); }""" )
def fix_CGStructureEditor(c): fix_CGEditor(c) c.decls( "reindex" ).call_policies = call_policies.return_self() c.decls( "remove" ).call_policies = call_policies.return_self() c.decls( "transfer" ).call_policies = call_policies.return_self() c.decls( "transferAll" ).call_policies = call_policies.return_self()
def fix_Mover(c): c.decls("mapInto").call_policies = call_policies.return_self() c.decls("translate").call_policies = call_policies.return_self() c.decls("rotate").call_policies = call_policies.return_self() c.decls("transform").call_policies = call_policies.return_self() c.decls("changeFrame").call_policies = call_policies.return_self() c.decls("change").call_policies = call_policies.return_self() c.decls("set").call_policies = call_policies.return_self() c.decls("setAll").call_policies = call_policies.return_self() c.decls("alignTo").call_policies = call_policies.return_self() c.decls("align").call_policies = call_policies.return_self() # also include all of the header files included in mover.cpp for header in active_headers["mover.h"].dependencies(): c.add_declaration_code("#include %s" % header)
def filter_declarations(self ): self.__mb.global_ns.exclude() rational = self.__mb.class_('rational<long>') rational.include() rational.casting_operator( lambda decl: 'long int[2]' in str(decl) ).exclude() r_assign = rational.calldef( 'assign', recursive=False ) r_assign.call_policies = call_policies.return_self() foperators = self.__mb.free_operators( lambda decl: 'rational<long>' in decl.decl_string ) foperators.include() bad_rational = self.__mb.class_('bad_rational' ) bad_rational.include() self.__mb.namespace( 'boost' ).free_function( 'lcm<long>', recursive=False ).include() self.__mb.namespace( 'boost' ).free_function( 'gcd<long>', recursive=False ).include() self.__mb.free_function( 'rational_cast<double, long>' ).include() self.__mb.free_function( 'rational_cast<double, long>' ).alias = 'to_double' self.__mb.free_function( 'rational_cast<long, long>' ).include() self.__mb.free_function( 'rational_cast<long, long>' ).alias = 'to_long' self.__mb.free_function( 'abs<long>' ).include() self.__mb.global_ns.operators( '++' ).exclude() self.__mb.global_ns.operators( '--' ).exclude() self.__mb.global_ns.operators( '=' ).exclude()
def filter_declarations(self): self.__mb.global_ns.exclude() rational = self.__mb.class_('rational<long>') rational.include() rational.casting_operator( lambda decl: 'long int[2]' in str(decl)).exclude() r_assign = rational.calldef('assign', recursive=False) r_assign.call_policies = call_policies.return_self() foperators = self.__mb.free_operators( lambda decl: 'rational<long>' in decl.decl_string) foperators.include() bad_rational = self.__mb.class_('bad_rational') bad_rational.include() self.__mb.namespace('boost').free_function('lcm<long>', recursive=False).include() self.__mb.namespace('boost').free_function('gcd<long>', recursive=False).include() self.__mb.free_function('rational_cast<double, long>').include() self.__mb.free_function( 'rational_cast<double, long>').alias = 'to_double' self.__mb.free_function('rational_cast<long, long>').include() self.__mb.free_function('rational_cast<long, long>').alias = 'to_long' self.__mb.free_function('abs<long>').include() self.__mb.global_ns.operators('++').exclude() self.__mb.global_ns.operators('--').exclude() self.__mb.global_ns.operators('=').exclude()
def customize(self, mb ): mb.calldef( 'return_second_arg' ).call_policies = call_policies.return_arg( 2 ) mb.calldef( 'return_self' ).call_policies = call_policies.return_self() mb.class_( 'impl_details_t' ).opaque = True mb.calldef( 'get_opaque' ).call_policies \ = call_policies.return_value_policy( call_policies.return_opaque_pointer ) mb.calldef( 'get_fundamental_ptr_value' ).call_policies \ = call_policies.return_value_policy( call_policies.return_pointee_value ) mb.calldef( 'get_fundamental_ptr_value_null' ).call_policies \ = call_policies.return_value_policy( call_policies.return_pointee_value ) mb.calldef( 'create_arr_3' ).call_policies \ = call_policies.convert_array_to_tuple( 3, call_policies.memory_managers.delete_ ) image = mb.class_('return_range_image_t') image.add_declaration_code( get_size_code ) image.add_declaration_code( get_create_images_size ) get_raw_data = image.mem_fun( 'get_raw_data' ) get_raw_data.call_policies \ = call_policies.return_range( get_raw_data, 'raw_data_size_t' ) get_raw_data_const = image.mem_fun( 'get_raw_data_const' ) get_raw_data_const.call_policies \ = call_policies.return_range( get_raw_data_const, 'raw_data_size_t' ) create_images = image.mem_fun( 'create_images' ) create_images.call_policies \ = call_policies.return_range( create_images , 'get_create_images_size_t' , call_policies.return_value_policy(call_policies.reference_existing_object) )
def fix_Multi(c): try: c.decls( "multiplyAdd" ).call_policies = call_policies.return_self() except: pass c.add_declaration_code("#include \"multifloat.h\"") c.add_declaration_code("#include \"multiint.h\"")
def fix_Multi(c): try: c.decls("multiplyAdd").call_policies = call_policies.return_self() except: pass c.add_declaration_code("#include \"multifloat.h\"") c.add_declaration_code("#include \"multiint.h\"") c.add_declaration_code("#include \"multidouble.h\"") c.add_declaration_code("#include \"multivector.h\"") c.add_declaration_code("#include \"multiquaternion.h\"")
def fix_CoordGroupEditor(c): c.decls( "translate" ).call_policies = call_policies.return_self() c.decls( "rotate" ).call_policies = call_policies.return_self() c.decls( "transform" ).call_policies = call_policies.return_self() c.decls( "setCoordinates" ).call_policies = call_policies.return_self() c.decls( "mapInto" ).call_policies = call_policies.return_self() c.decls( "changeFrame" ).call_policies = call_policies.return_self()
def customize(self, mb): mb.global_ns.exclude() mb.free_function('create_randome_rationals').include() xxx = mb.class_('XXX') xxx.include() xxx_ref = declarations.reference_t( declarations.const_t(declarations.declarated_t(xxx))) oper = mb.global_ns.free_operator('<<', arg_types=[None, xxx_ref]) oper.include() mb.class_('YYY').include() rational = mb.class_('rational<long>') rational.include() rational.alias = "pyrational" #Test query api. #artificial declarations come back #rational.operator( '=' ) #rational.operator( name='operator=' ) #rational.operator( symbol='=' ) rational.operators('=') rational.operators(name='operator=') rational.operators(symbol='=') #artificial declarations come back #rational.member_operator( '=' ) #rational.member_operator( name='operator=' ) #rational.member_operator( symbol='=' ) rational.member_operators('=') rational.member_operators(name='operator=') rational.member_operators(symbol='=') mb.global_ns.free_operators('<<') mb.global_ns.free_operators(name='operator<<') mb.global_ns.free_operators(symbol='<<') r_assign = rational.calldef('assign', recursive=False) r_assign.call_policies = call_policies.return_self() foperators = mb.free_operators( lambda decl: 'rational<long>' in decl.decl_string) foperators.include() bad_rational = mb.class_('bad_rational') bad_rational.include() mb.namespace('Geometry').include() mb.namespace('Geometry').class_('VecOfInts').exclude() mb.namespace('Geometry2').include()
def fix_MolStructureEditor(c): fix_MolEditor(c) c.decls( "remove" ).call_policies = call_policies.return_self() c.decls( "removeAllAtoms" ).call_policies = call_policies.return_self() c.decls( "removeAllCutGroups" ).call_policies = call_policies.return_self() c.decls( "removeAllResidues" ).call_policies = call_policies.return_self() c.decls( "removeAllChains" ).call_policies = call_policies.return_self() c.decls( "removeAllSegments" ).call_policies = call_policies.return_self()
def fix_MolStructureEditor(c): fix_MolEditor(c) c.decls("remove").call_policies = call_policies.return_self() c.decls("removeAllAtoms").call_policies = call_policies.return_self() c.decls("removeAllCutGroups").call_policies = call_policies.return_self() c.decls("removeAllResidues").call_policies = call_policies.return_self() c.decls("removeAllChains").call_policies = call_policies.return_self() c.decls("removeAllSegments").call_policies = call_policies.return_self()
def customize( self, mb ): mb.global_ns.exclude() mb.free_function( 'create_randome_rationals' ).include() xxx = mb.class_( 'XXX' ) xxx.include() xxx_ref = declarations.reference_t( declarations.const_t( declarations.declarated_t( xxx ) ) ) oper = mb.global_ns.free_operator( '<<', arg_types=[None, xxx_ref] ) oper.include() mb.class_( 'YYY' ).include() rational = mb.class_('rational<long>') rational.include() rational.alias = "pyrational" #Test query api. #artificial declarations come back #rational.operator( '=' ) #rational.operator( name='operator=' ) #rational.operator( symbol='=' ) rational.operators( '=' ) rational.operators( name='operator=' ) rational.operators( symbol='=' ) #artificial declarations come back #rational.member_operator( '=' ) #rational.member_operator( name='operator=' ) #rational.member_operator( symbol='=' ) rational.member_operators( '=' ) rational.member_operators( name='operator=' ) rational.member_operators( symbol='=' ) mb.global_ns.free_operators( '<<' ) mb.global_ns.free_operators( name='operator<<' ) mb.global_ns.free_operators( symbol='<<' ) r_assign = rational.calldef( 'assign', recursive=False ) r_assign.call_policies = call_policies.return_self() foperators = mb.free_operators( lambda decl: 'rational<long>' in decl.decl_string ) foperators.include() bad_rational = mb.class_('bad_rational' ) bad_rational.include() mb.namespace( 'Geometry' ).include() mb.namespace( 'Geometry' ).class_( 'VecOfInts' ).exclude() mb.namespace( 'Geometry2' ).include()
def expose(cls, c): super(Bitset_Exposer, cls).expose(c) classes.add_numpy_construtor(c) c.disable_warnings(warnings_.W1008) for f in c.member_functions(): f.disable_warnings(warnings_.W1008, warnings_.W1050) c.mem_opers().include() c.allow_implicit_conversion = True c.include_files.append('pywrap/print_helper.hpp') c.add_registration_code('def(pywrap::PrintNice())') for f in c.member_functions( name=lambda x: x.name in ("set", "reset", "flip")): f.call_policies = call_policies.return_self() classes.add_array_operators(c, "bp::default_call_policies()", "bool()") c.operator(">>").disable_warnings(warnings_.W1014) c.operator("<<").disable_warnings(warnings_.W1014)
def builder_pattern(ns, name="Builder"): for cl in ns.classes(name, allow_empty=True): # chainable calls for fun in cl.mem_funs(allow_empty=True): if not isinstance(fun.return_type, reference_t): continue if not fun.return_type.base.declaration == cl: continue fun.call_policies = call_policies.return_self() # Explicitly set noncopyable of parent (i.e. built type) to # False. This is necessary, because parent may not have # public constructors, which leads py++ to the (wrong) # conclusion that the class is noncopyable. if isinstance(cl.parent, class_t): cl.parent.noncopyable = False else: return False return True
def customize(self, mb): mb.global_ns.exclude() xxx = mb.class_("XXX") xxx.include() xxx_ref = declarations.reference_t(declarations.const_t(declarations.declarated_t(xxx))) oper = mb.global_ns.free_operator("<<", arg_types=[None, xxx_ref]) oper.include() mb.class_("YYY").include() rational = mb.class_("rational<long>") rational.include() rational.alias = "pyrational" # Test query api. # artificial declarations come back # rational.operator( '=' ) # rational.operator( name='operator=' ) # rational.operator( symbol='=' ) rational.operators("=") rational.operators(name="operator=") rational.operators(symbol="=") # artificial declarations come back # rational.member_operator( '=' ) # rational.member_operator( name='operator=' ) # rational.member_operator( symbol='=' ) rational.member_operators("=") rational.member_operators(name="operator=") rational.member_operators(symbol="=") mb.global_ns.free_operators("<<") mb.global_ns.free_operators(name="operator<<") mb.global_ns.free_operators(symbol="<<") r_assign = rational.calldef("assign", recursive=False) r_assign.call_policies = call_policies.return_self() foperators = mb.free_operators(lambda decl: "rational<long>" in decl.decl_string) foperators.include() bad_rational = mb.class_("bad_rational") bad_rational.include()
def fix_MolViewProperty(c): c.decls("set").call_policies = call_policies.return_self()
sb.mb.decls(lambda x: 'CvTermCriteria' in x.partial_decl_string).exclude() # sb.asClass(z, sb.mb.class_('CvTermCriteria')) sb.cc.write(''' def _KLASS__repr__(self): return "KLASS(type=" + repr(self.type) + ", maxCount=" + repr(self.maxCount) + \\ ", epsilon=" + repr(self.epsilon) + ")" KLASS.__repr__ = _KLASS__repr__ '''.replace("KLASS", z.alias)) sb.finalize_class(z) # PCA and SVD for t in ('::cv::PCA', '::cv::SVD'): z = sb.mb.class_(t) sb.init_class(z) z.operator('()').call_policies = CP.return_self() sb.finalize_class(z) # LineIterator z = sb.mb.class_('LineIterator') sb.init_class(z) z.constructors().exclude() z.operators().exclude() z.var('ptr').exclude() z.add_wrapper_code(''' private: int iteration; int ws, es; uchar *ptr0; public:
sb.init_class(z) z.mem_fun('proceed').exclude() # TODO: expose this function z.var('rows').exclude() # TODO: expose this variable sb.finalize_class(z) sb.expose_class_Ptr('FilterEngine', 'cv') # Moments z = sb.mb.class_('Moments') z.include() z.decls(lambda x: 'CvMoments' in x.decl_string).exclude() # KalmanFilter z = sb.mb.class_('KalmanFilter') z.include() for t in ('predict', 'correct'): z.mem_fun(t).call_policies = CP.return_self() # FeatureEvaluator z = sb.mb.class_('FeatureEvaluator') sb.init_class(z) sb.finalize_class(z) sb.expose_class_Ptr('FeatureEvaluator', 'cv') # CascadeClassifier z = sb.mb.class_('CascadeClassifier') sb.init_class(z) z.mem_fun('detectMultiScale')._transformer_creators.append( FT.arg_output('objects')) sb.register_ti('CvHaarClassifierCascade') sb.expose_class_Ptr('CvHaarClassifierCascade') # modify runAt() and setImage() -- I need them able to support old cascade
def fix_AtomSelection(c): c.decls("selectAll").call_policies = call_policies.return_self() c.decls("deselectAll").call_policies = call_policies.return_self() c.decls("selectNone").call_policies = call_policies.return_self() c.decls("select").call_policies = call_policies.return_self() c.decls("deselect").call_policies = call_policies.return_self() c.decls("selectOnly").call_policies = call_policies.return_self() c.decls("invert").call_policies = call_policies.return_self() c.decls("intersect").call_policies = call_policies.return_self() c.decls("unite").call_policies = call_policies.return_self() c.decls("subtract").call_policies = call_policies.return_self() c.decls("mask").call_policies = call_policies.return_self()
sb.init_class(z) z.mem_fun('proceed').exclude() # TODO: expose this function z.var('rows').exclude() # TODO: expose this variable sb.finalize_class(z) sb.expose_class_Ptr('FilterEngine', 'cv') # Moments z = sb.mb.class_('Moments') z.include() z.decls(lambda x: 'CvMoments' in x.decl_string).exclude() # KalmanFilter z = sb.mb.class_('KalmanFilter') z.include() for t in ('predict', 'correct'): z.mem_fun(t).call_policies = CP.return_self() # FeatureEvaluator z = sb.mb.class_('FeatureEvaluator') sb.init_class(z) sb.finalize_class(z) sb.expose_class_Ptr('FeatureEvaluator', 'cv') # CascadeClassifier z = sb.mb.class_('CascadeClassifier') sb.init_class(z) z.mem_fun('detectMultiScale')._transformer_creators.append(FT.arg_output('objects')) sb.register_ti('CvHaarClassifierCascade') sb.expose_class_Ptr('CvHaarClassifierCascade') # modify runAt() and setImage() -- I need them able to support old cascade z.mem_fun('runAt').exclude()
def fix_CGEditor(c): c.decls( "rename" ).call_policies = call_policies.return_self()
def fix_AtomSelection(c): c.decls( "selectAll" ).call_policies = call_policies.return_self() c.decls( "deselectAll" ).call_policies = call_policies.return_self() c.decls( "selectNone" ).call_policies = call_policies.return_self() c.decls( "select" ).call_policies = call_policies.return_self() c.decls( "deselect" ).call_policies = call_policies.return_self() c.decls( "selectOnly" ).call_policies = call_policies.return_self() c.decls( "invert" ).call_policies = call_policies.return_self() c.decls( "intersect" ).call_policies = call_policies.return_self() c.decls( "unite" ).call_policies = call_policies.return_self() c.decls( "subtract" ).call_policies = call_policies.return_self() c.decls( "mask" ).call_policies = call_policies.return_self()
def fix_AtomStructureEditor(c): fix_AtomEditor(c) c.decls( "reindex" ).call_policies = call_policies.return_self() c.decls( "reparent" ).call_policies = call_policies.return_self()
c.add_registration_code('def("__rmul__", &__rmul__<double, CLASS> )' \ .replace("CLASS", a)) # Mat z = sb.mb.class_('Mat') z.include_files.append("opencv_converters.hpp") sb.init_class(z) sb.expose_class_vector('cv::Mat') for t in z.constructors(): if 'void *' in t.decl_string: t.exclude() for t in ('::IplImage', '::CvMat', 'MatExp'): z.decls(lambda x: t in x.decl_string).exclude() z.mem_funs('setTo').call_policies = CP.return_self() z.mem_funs('adjustROI').call_policies = CP.return_self() FT.add_data_interface(z, 'inst.data', 'inst.rows*inst.step', ['ptr', 'data', 'refcount', 'datastart', 'dataend', 'addref', 'release']) z.mem_fun(lambda x: x.name=='diag' and 'Mat' in x.arguments[0].type.partial_decl_string).rename('diagonalize') # rename static method 'diag' to 'diagonalize' to avoid a naming conflict in Python sb.add_ndarray_interface(z) sb.cc.write(''' def _Mat__repr__(self): return "Mat()" if self.empty() else "Mat(rows=" + repr(self.rows) \ + ", cols=" + repr(self.cols) + ", nchannels=" + repr(self.channels()) \ + ", depth=" + repr(self.depth()) + "):\\n" + repr(self.ndarray) Mat.__repr__ = _Mat__repr__ ''') z.add_declaration_code(''' static boost::shared_ptr<cv::Mat> Mat__init1__(bp::object const &arg1) { // None
def fix_AtomStructureEditor(c): fix_AtomEditor(c) c.decls("reindex").call_policies = call_policies.return_self() c.decls("reparent").call_policies = call_policies.return_self()
def fix_SelectResultMover(c): c.decls("translate").call_policies = call_policies.return_self()
def fix_CGEditor(c): c.decls("rename").call_policies = call_policies.return_self()
).call_policies = call_policies.return_internal_reference() mb.class_("Pack").member_function( "FindFile").call_policies = call_policies.return_internal_reference() mb.class_("Pack").member_function( "GetFirstFile").call_policies = call_policies.return_internal_reference() mb.class_("Pack").member_function( "GetLastFile").call_policies = call_policies.return_internal_reference() mb.class_("ParticleSystem").member_functions( "GetSubSystem").call_policies = call_policies.return_internal_reference() mb.class_("ParticleSystem").member_functions( "GetParticle").call_policies = call_policies.return_internal_reference() mb.class_("BaseParticleSystem").member_function( "EmitterTransformation", return_type='::xfx::Mat4 &' ).call_policies = call_policies.return_internal_reference() mb.class_("Quaternion").member_function( "FromAxisAngle").call_policies = call_policies.return_self() mb.class_("Mat3").member_functions( return_type='::xfx::Mat3 &').call_policies = call_policies.return_self() mb.class_("Mat4").member_functions( return_type='::xfx::Mat4 &').call_policies = call_policies.return_self() mb.class_("Euler").member_functions( lambda x: x.name in ("FromMat4", "FromVec3", "FromQuaternion" )).call_policies = call_policies.return_self() mb.class_("Renderer").member_function( "GetFrameStatistics", return_type='::xfx::Renderer::FrameStatistics &' ).call_policies = call_policies.return_internal_reference() mb.class_("Renderer").member_function( "GetDrawTools", return_type='::xfx::DrawTools &' ).call_policies = call_policies.return_internal_reference() mb.class_("MeshState").member_function( "GetShaderParams", return_type='::xfx::ShaderParams &'
def fix_MolEditor(c): c.decls("renumber").call_policies = call_policies.return_self() c.decls("rename").call_policies = call_policies.return_self()
def fix_MolViewProperty(c): c.add_declaration_code( "#include \"SireMaths/vector.h\"" ) c.decls("set").call_policies = call_policies.return_self()
def fix_ConnectivityEditor(c): c.decls("connect").call_policies = call_policies.return_self() c.decls("disconnect").call_policies = call_policies.return_self() c.decls("disconnectAll").call_policies = call_policies.return_self()
c.add_registration_code('def("__mul__", &__mul__<CLASS, double> )' \ .replace("CLASS", a)) c.add_registration_code('def("__rmul__", &__rmul__<double, CLASS> )' \ .replace("CLASS", a)) # Mat z = sb.mb.class_('Mat') z.include_files.append("opencv_converters.hpp") sb.init_class(z) sb.expose_class_vector('cv::Mat') for t in z.constructors(): if 'void *' in t.decl_string: t.exclude() for t in ('::IplImage', '::CvMat', 'MatExp'): z.decls(lambda x: t in x.decl_string).exclude() z.mem_funs('setTo').call_policies = CP.return_self() z.mem_funs('adjustROI').call_policies = CP.return_self() FT.add_data_interface( z, 'inst.data', 'inst.rows*inst.step', ['ptr', 'data', 'refcount', 'datastart', 'dataend', 'addref', 'release']) z.mem_fun(lambda x: x.name == 'diag' and 'Mat' in x.arguments[ 0 ].type.partial_decl_string).rename( 'diagonalize' ) # rename static method 'diag' to 'diagonalize' to avoid a naming conflict in Python sb.add_ndarray_interface(z) sb.cc.write(''' def _Mat__repr__(self): return "Mat()" if self.empty() else "Mat(rows=" + repr(self.rows) \ + ", cols=" + repr(self.cols) + ", nchannels=" + repr(self.channels()) \ + ", depth=" + repr(self.depth()) + "):\\n" + repr(self.ndarray)
def fix_MolViewProperty(c): c.add_declaration_code('#include "SireMaths/vector.h"') c.decls("set").call_policies = call_policies.return_self()
def fix_ConnectivityEditor(c): c.decls( "connect" ).call_policies = call_policies.return_self() c.decls( "disconnect" ).call_policies = call_policies.return_self() c.decls( "disconnectAll" ).call_policies = call_policies.return_self()
def fix_Mover(c): c.decls("mapInto").call_policies = call_policies.return_self() c.decls("transform").call_policies = call_policies.return_self() c.decls("translate").call_policies = call_policies.return_self() c.decls("rotate").call_policies = call_policies.return_self() c.decls("transform").call_policies = call_policies.return_self() c.decls("changeFrame").call_policies = call_policies.return_self() c.decls("change").call_policies = call_policies.return_self() c.decls("set").call_policies = call_policies.return_self() c.decls("setAll").call_policies = call_policies.return_self() c.decls("alignTo").call_policies = call_policies.return_self() c.decls("align").call_policies = call_policies.return_self() #also include all of the header files included in mover.cpp for header in active_headers["mover.h"].dependencies(): c.add_declaration_code( "#include %s" % header )
mb.class_( "DrawTools" ).member_functions( "PushDraw2DSprite" ).rename( "push_draw_2d_sprite" ) mb.class_( "DrawTools" ).member_functions( "PushDraw2DText" ).rename( "push_draw_2d_text" ) mb.class_( "DrawTools" ).member_functions( "PushDraw3DSprite" ).rename( "push_draw_3d_sprite" ) mb.class_( "DrawTools" ).member_functions( "PushDraw3DText" ).rename( "push_draw_3d_text" ) mb.member_functions( "Instance" ).call_policies = call_policies.return_value_policy( call_policies.reference_existing_object ) mb.free_function( "gGetApplication" ).call_policies = call_policies.return_value_policy( call_policies.reference_existing_object ) mb.class_( "BooksManager" ).member_function( "GetBook" ).call_policies = call_policies.return_internal_reference( ) mb.class_( "Shader" ).member_function( "GetTextureInfoOnStage" ).call_policies = call_policies.return_internal_reference( ) mb.class_( "Pack" ).member_function( "FindFile" ).call_policies = call_policies.return_internal_reference( ) mb.class_( "Pack" ).member_function( "GetFirstFile" ).call_policies = call_policies.return_internal_reference( ) mb.class_( "Pack" ).member_function( "GetLastFile" ).call_policies = call_policies.return_internal_reference( ) mb.class_( "ParticleSystem" ).member_functions( "GetSubSystem" ).call_policies = call_policies.return_internal_reference( ) mb.class_( "ParticleSystem" ).member_functions( "GetParticle" ).call_policies = call_policies.return_internal_reference( ) mb.class_( "BaseParticleSystem" ).member_function( "EmitterTransformation", return_type = '::xfx::Mat4 &' ).call_policies = call_policies.return_internal_reference( ) mb.class_( "Quaternion" ).member_function( "FromAxisAngle" ).call_policies = call_policies.return_self( ) mb.class_( "Mat3" ).member_functions( return_type = '::xfx::Mat3 &' ).call_policies = call_policies.return_self( ) mb.class_( "Mat4" ).member_functions( return_type = '::xfx::Mat4 &' ).call_policies = call_policies.return_self( ) mb.class_( "Euler" ).member_functions( lambda x: x.name in ( "FromMat4", "FromVec3", "FromQuaternion" ) ).call_policies = call_policies.return_self( ) mb.class_( "Renderer" ).member_function( "GetFrameStatistics", return_type = '::xfx::Renderer::FrameStatistics &' ).call_policies = call_policies.return_internal_reference( ) mb.class_( "Renderer" ).member_function( "GetDrawTools", return_type = '::xfx::DrawTools &' ).call_policies = call_policies.return_internal_reference( ) mb.class_( "MeshState" ).member_function( "GetShaderParams", return_type = '::xfx::ShaderParams &' ).call_policies = call_policies.return_internal_reference( ) mb.class_( "Application" ).member_function( "HWnd" ).call_policies = call_policies.return_value_policy( call_policies.return_opaque_pointer ) mb.class_( "Application" ).member_function( "GetTimer" ).call_policies = call_policies.return_internal_reference( ) mb.member_functions( "Cache", arg_types = [] ).call_policies = call_policies.return_value_policy( call_policies.reference_existing_object ) for c in mb.classes( lambda x: x.name.startswith( "Singleton" ) ): c.add_static_property( 'instance', fget = c.member_function( "Instance" ) ) for c in mb.classes( ): for f in c.member_functions( "Cache", arg_types = [], allow_empty = True ):
def fix_MolEditor(c): c.decls( "renumber" ).call_policies = call_policies.return_self() c.decls( "rename" ).call_policies = call_policies.return_self()